2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:441872
用户头像

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

关注

评论

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

智慧党建平台解决方案--高效开展党建工作

13530558032

15 分钟部署一个 CAS 服务并对接 Shibboleth-IdP 3.4.6

冯骐

CAS 认证 Shibboleth 统一身份认证

Promise原理及常用操作

花明

世界经济论坛:四大区块链趋势将在今年绽放异彩

CECBC

区块链

一场关于代码注释的争执,引发的三点思考

架构精进之路

编码 经验分享 七日更 3月日更

9.hooks源码(想知道Function Component是怎样保存状态的嘛)

全栈潇晨

源码分析 React React Hooks

四面阿里成功斩获offer,在此分享我的复盘经验总结!

Java架构之路

Java 程序员 架构 面试 编程语言

【科创人】Testin云测总裁徐琨:创业必须要创造出肉眼可见的价值

科创人

Mysql安装

Sakura

牛掰,阿里P8这份笔记不就相当于金三银四中的原子弹吗?已经帮助13位同行拿到了一线大厂的offer!

Java架构师迁哥

Shibboleth-IdP 的 OAuth2 对接方案详解

冯骐

OAuth2 SAML Shibboleth CARSI

Docker的三言两语-基础篇

一个大红包

Docker 28天写作 3月日更

git 教程 --git cherry-pick 命令

生之欢愉,时间同行

git 程序员 git cherry-pick

APICloud Avm.js前端框架的优势

YonBuilder低代码开发平台

小程序 大前端 移动开发 跨端开发 多端开发

Semaphore实战

叫练

CountDownLatch CyclicBarrier Semaphore 线程协作

Python学习心得

张鹤羽

28天写作 3月日更

科学的互联网思想 指引我国网络强国建设稳步前行

CECBC

网络安全

11.react concurrent mode(并发模式是什么样的)

全栈潇晨

React React Hooks

10.scheduler&lane模型(来看看react是暂停、继续和插队的)

全栈潇晨

源码分析 React React Hooks

园区网中 IPv6 地址的终端 mac 地址追溯

冯骐

Python 运维 日志 网络 ipv6

5 分钟部署一个 OAuth2 服务并对接 Shibboleth-IdP 3.4.6

冯骐

运维 开发 OAuth2 Shibboleth Go 语言

白话Go内存模型&Happen-Before

Gopher指北

Go 语言

通俗易懂!看了不会忘的网络面试知识点

编程 架构 面试

2021年最新京东技术岗现场三面:jvm调优+高并发+算法+网络+数据库+设计模式

Java架构之路

Java 程序员 架构 面试 编程语言

beego + nginx 实现反向代理统一认证

冯骐

nginx 开发 ldap auth_request Go 语言

区块链电子合同--电子合同区块链签约平台

13530558032

区块链产业革命:解决融资租赁之谜

CECBC

区块链

怎样在自己的 Web 中加入强大的日志系统?slf4j 的日志插件必须要知道!

老王说编程

slf4j java 日志 日志管理 日志框架

程序员之禅(二)

每天读本书

读书笔记 每天读本书

一桶食用油的数字化

吴俊宇

数字化转型 鲁花

12.手写迷你react(短小精悍就是我)

全栈潇晨

源码分析 React React Hooks

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