写点什么

Android Smart Linkify API 背后的机器学习

  • 2018-08-23
  • 本文字数:918 字

    阅读完需:约 3 分钟

上周,谷歌发布了代号为 Pie 的 Android 9 。Android 正在推出一系列由人工智能提供支持的新功能。 Android Smart Linkify 是最重要的新 AI 功能之一。

Smart Linkify 建立在先前版本 Android Oreo 发布的 Smart Text Selection 之上。Smart Linkify 可以检测文本中的某些类型的实体(例如地址、电话号码)并添加可点击的链接,允许用户直接启动地图或拨打电话。它由设备内的前馈神经网络提供支持,每种语言大小仅 500KB,推理代码不超过 250KB。这个系统为几近实时的系统,在 Google Pixel 手机上计算时间短于 20 毫秒。

系统首先通过空格将输入文本拆分为单词,并计算最多 15 个单词所有可能的单词子序列。每个子序列被提供给神经网络,神经网络基于其有效性为它们分配 [0 … 1] 范围的值。在删除重叠实体后,系统为子序列打较高的分数。在整个过程的第一部分结束时,每个未知类型都有一个不重复单词子序列。

然后使用第二个神经网络来识别每个单词子序列的类型,无论是电话号码、地址还是未识别的实体。神经网络将上下文中的单词子序列作为输入。通过将子序列的前三个和后三个单词作为实体,将它们前面的五个单词作为左上下文,将随后的五个单词作为右上下文,然后将它们作为不同的特征来识别单词的含义。这个神经网络中一个有趣的优化是使用二进制特征来识别以大写字母开头的单词。其背后的原因是,邮政地址非常独特,使用这种方式更容易识别出来。

为了训练神经网络,谷歌团队从真实数据中生成了虚假样本。他们使用 Schema.org 注解的实体、地址、电话号码和随机单词的自定义列表合成了一个训练集。他们采用可观察的实体并用随机单词围绕它们达到更理想的结果。另外,有意生成负数据训练样本,让神经网络避免将“ID:”识别为电话号码。

国际化是这个功能的一个重要方面,根据测试,一种模型适用于所有拉丁语言,并可以为中文、日文、韩文、泰文、阿拉伯文和俄文添加单独的模型。目前,API 支持 16 种语言,未来几个月将支持更多语言。这些模型使用 TensorFlow 进行训练,自定义的推理库由 TensorFlow Lite 和 FlatBuffers 提供支持。开发人员可以通过 TextClassifier API generateLinks 方法开始使用 Smart Linkify。

查看英文原文 The Machine Learning behind Android Smart Linkify API

2018-08-23 07:441880
用户头像

发布了 731 篇内容, 共 481.8 次阅读, 收获喜欢 2008 次。

关注

评论

发布
暂无评论
发现更多内容

【Vuex 源码学习】第三篇 - Vuex 中 State 状态的实现

Brave

源码 vuex 9月日更

普通二本的辛酸Java面试之路,34岁Java程序员裸辞

Java 程序员 后端

Apache ShenYu源码阅读系列-基于WebSocket的数据同步

子夜2104

Java 开源 网关 shenyu

ShardingSphere 分片利器 AutoTable:为用户带来「管家式」分片配置体验

SphereEx

数据库 开源

我用MRS-ClickHouse构建的用户画像系统,让老板拍手称赞

华为云开发者联盟

数据库 标签 用户画像 MRS ClickHouse 列式存储

每个程序员都必须掌握的8种数据结构,2021Java开发面试解答

Java 程序员 后端

译介:《电动滑板车的崛起》

姬翔

三年开发经验,从抖音组离职后,一口气拿到15家公司Offer

Java架构师迁哥

包头市企业如何申请等保测评?去哪里申请?联系电话是多少?

行云管家

网络安全 等级保护 等保测评 等保评测 包头

某大厂开发者对于Java多线程的总结,Java排序算法面试

Java 程序员 后端

【预告】网络研讨会|下一代汽车操作系统微内核seL4:seL4基金会主席谈物理系统安全工程实践

鉴释

自动驾驶 操作系统 微内核

通过线路输入功能快速创建吉他谱

懒得勤快

普通二本的辛酸Java面试之路,Java程序员架构之路该如何继续学习

Java 程序员 后端

每个程序员都必须掌握的8种数据结构,springmvc源码流程总结

Java 程序员 后端

从 0 到 1 开发一个聊天通讯 服务 复盘总结分享

程序员海军

Vue 大前端 websocket 实时通讯 引航计划

玩转anyRTC用户控制台

anyRTC开发者

音视频 WebRTC 语音通话 视频通话 用户后台

垃圾弹窗广告,如何清除互联网世界的牛皮癣

石头IT视角

闲鱼消息发展回顾

OpenIM

来自阿里巴巴佛系Java程序员的指南,惊喜

Java 程序员 后端

在外包做开发3年,为了进大厂,耗时半年,整合出25W字Java全栈面试题,这就是我的决心

Java架构师迁哥

主机监控用什么软件好?监控机制是怎样的?

行云管家

运维 IT运维 主机监控

不愧是阿里内部“千亿级并发系统架构设计笔记”面面俱到,太全了

Java 架构 面试 后端 高并发

“人类高质量数据”如何训练计算机视觉模型?

澳鹏Appen

计算机视觉

没想到专科的我也能拿到年薪30W的offer,仅凭阿里这份JDK源码笔记

Java架构师迁哥

60w“跳”进腾讯!你知道我经历了什么吗?

Java架构师迁哥

DBA:介里有你没有用过的“CHUAN”新社区版本Redis6.0

华为云开发者联盟

redis 开源 多线程 Redis 6.0 华为云DCS

Android音频API

轻口味

android 音视频 引航计划 9月日更

一期投资30亿!“中国—东盟星动云算力中心项目”将落地广西巴马

旺链科技

数字经济 产业区块链 一带一路

来一份全面的面试宝典练练手,6年老Java面经总结

Java 程序员 后端

作业八:设计消息队列存储消息数据的 MySQL 表格

燕燕 yen yen

#架构实战营

鲲鹏BoostKit虚拟化使能套件,让数据加密更安全

华为云开发者联盟

鲲鹏

Android Smart Linkify API背后的机器学习_移动_Alex Giamas_InfoQ精选文章