文 / Lukas Zilka,软件工程师,谷歌人工智能,苏黎世
上半周,我们发布了 Android 9 Pie,这是 Android 的最新版本,它的机器学习应用使您的手机更简单易用。 Android 9 中有一项功能是 Smart Linkify,这是一种新的 API,可在文本中检测到某些类型的实体时添加可点击链接。 这个功能很有用,例如,当您从朋友的消息传递 app 中收到一个地址,想要在地图上查找时,如果使用 Smart Linkify-annotated 文本,它就变得容易多了!
在 Android 中,Smart Linkify 作为开源文本分类 API 推出(作为生成链接的方法)。 使用 TensorFlow 训练模型并将其导出到由 TensorFlow Lite 和 FlatBuffers 支持的自定义推理库。 这些模型的 C ++ 推理库在此处作为 Android 开源框架的一部分提供,并在每个文本选择和 Smart Linkify API calls 上运行。
寻找对象
在文本中查找电话号码和邮寄地址是一个难题。 不仅是因为人们五花八门的编写方式,而且各类对象的呈现方式通常也很模糊(例如:“确认号码:857-555-3556” 不是电话号码,即便它呈现了与电话号码类似的形格式)。
为了寻求解决方案,我们设计了一种推理算法,其核心是两个小的前馈神经网络。 该算法足以执行除地址和电话号码外的各种实体对象的程序分块。
总的来说,该系统架构如下:给定的输入文本首先被分成单词(基于空格分离),然后生成所有可能的限定最大长度的单词子序列(在我们的示例中为 15 个单词),并且对于每个候选单词,打分神经网络根据它是否代表有效对象来分配一个值(介于 0 和 1 之间):