编译:chux
出品:ATYUN订阅号
本周推出的最新版谷歌移动操作系统Android Pie,其最轻松的功能之一就是Smart Linkify。它是一种API,可在文本中检测到地址,电话号码和其他此类实体时添加可点击链接。虽然这可能听起来像是魔法一般,但这一切都归功于AI。
“在文本中寻找电话号码和邮政地址是一个难题,”Google AI的软件工程师Lukas Zilka在一篇博文中写道,“不仅人们如何编写它们有很多变化,而且代表什么类型的实体也常常不明确(例如’确认号码:857-555-3556’并不是电话号码,即使它采用类似的形式)。”
Zilka解释说,Smart Linkify是现有Android Linkify API的演变,并且由两个紧凑的,低延迟的前馈神经网络组成,它由多个简单的处理单元组成,称为节点,这些单元是从Android的智能文本选择功能的基础上借用的。
这两个网络都对第三个模型生成的数据进行了训练,这些数据从网络中抓取电话号码、地址、产品、位置和业务名称,并向它们添加随机的文本上下文和短语(例如,确认号和ID)。Google AI团队使用一种算法来处理拉丁文字(英语、德语、波兰语和捷克语),以及日语、韩语、泰国语、阿拉伯语和俄语的个人模型。
以下是整个过程的工作原理:要分析的文本被分成单词,从这些单词中,生成特定最大长度的所有可能子序列。然后,系统中的第一神经网络为每个子序列分配一个值(在0和1之间),表示其对其身份的置信度(例如,给定的数字串是否是密码或电话号码)。
从列表中丢弃具有最低分数的实体,然后第二神经网络进入,按类型对实体进行分类,即电话号码,地址或非实体。
对于给定的文本字符串,第一个网络将低分数分配给非实体,并为正确选择整个电话号码的候选者提供高分数
Zilka写道。“网络需要知道实体周围的情境(除了实体本身的文本字符串)。在机器学习中,这是通过将这些部分表示为单独的特征来完成的,实际上,输入文本被分成几个部分,分别馈送到网络。”
为此,将单词转换为字符n-gram,这种技术将它们表示为一定长度的所有字符子序列的集合。并且神经网络特征指示这些单词是否以大写字母开头,这是邮政地址的显着特征。
在实践中,鉴于句子“John应该在星期二打电话1-800-944-9494”,Smart Linkify将(1)将“John应该打电话”与“1-800-944-9494”分开,(2)将“John”分类应将“和“1-800-944-9494”为非实体和电话号码,(3)在网络浏览器或应用程序中通过电话号码创建可点击链接。
在智能手机硬件的限制下工作对团队来说是一个额外的挑战。他们通过量化(一种将连续范围的值转换为有限范围的离散值的压缩技术)以及通过在系统的两个神经网络之间共享某些数值表示以及其他技术来解决它。
在不久的将来,该团队希望创建日期和时间的机器学习模型,特别是用于识别“下周四”或“三周”等非正式短语。
Zilka表示,“我们相信这种架构可以扩展到其他设备上的文本注释问题,我们期待看到新的用例。”
领取专属 10元无门槛券
私享最新 技术干货