写点什么

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

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

关注

评论

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

开源一夏 | 使用 JavaScript 将文本转换为文件

海拥(haiyong.site)

JavaScript GitHub 开源 前端 8月月更

如何在企业数字化团队内部实现分析建模过程全要素的可获得与成果可复现

ModelWhale

团队协作 数字化转型 全要素场景 代码复现 金融场景

组件解析:基础组件button的实现

独来独往

大前端 低代码 可视化 组件化 低代码平台

借我 1 小时,与 1000 人一起参与开源

腾源会

开源 腾源会

从入门到高手,数据从业者成长一般经过哪些阶段?

雨果

数据工程师必备技能

什么是文件存储?与对象存储有什么区别?

wljslmz

文件存储 8月月更

乔布斯之后,下一代触控交互由一家中国公司重新定义

硬科技星球

OpenHarmony轻量设备Hi3861芯片开发板启动流程分析

OpenHarmony开发者

OpenHarmony

阿里最新的Spring Boot项目开发实战手册,掀起了项目实战变革狂潮

Java面试那些事儿

Java 编程 程序员 面试 架构师

数据工程师越做越有成就感的7点经验分享

雨果

数据工程师

Linux 6.0 第一个候选版本发布

雨果

Liunx

Solana上的结算协议龙头,Zebec潜力颇受看好

小哈区块

Promise.allSettled 的 Polyfill 处理

汪子熙

JavaScript Promise Async 8月月更 web编程

设备管理|风机的日常运行与维护

PreMaint

企业设备管理 预测性维护 设备健康管理 风机的日常运维

GitHub标星139K的:“嵌入式Linux系统开发教程”

收到请回复

Java Linux 程序员 嵌入式 #运维

AntDB基于WAL日志的DML数据闪回实现

亚信AntDB数据库

AntDB 国产数据库 AISWare AIDB

C#/VB.NET 替换 PDF 文件上的现有图像

在下毛毛雨

C# .net PDF 替换图像

美国商务部宣布:EDA等四项技术实施新的出口管制,8月15日生效!

雨果

芯片技术

JSON 之父:JavaScript 已经成为了进步的障碍

雨果

JavaScript

Node 之父着急宣布Deno 将迎来重大变革,疑为针对最近大火的“Bun”

雨果

node.js

为Bert注入知识的力量 Baidu-ERNIE & THU-ERNIE & KBert

了不起的程序猿

Java 编程 后端 java程序员 BERT

少儿编程是智商税吗?不花钱让孩子赢在起跑线!

博文视点Broadview

QCA9882 wallys 802.11AC 802.11AN wifi QCA9882 Module Wireless AC/AN MiniPCIE Standard Card

wallys-wifi6

QCA9882

TiFlash 源码阅读(六)DeltaTree Index 的设计和实现分析

PingCAP

TiDB TiDB 源码解读

区块链带你避“坑”,电信诈骗退!退!退!

旺链科技

区块链 产业区块链 电信诈骗

QCA9880 wallys 2×2 MIMO 802.11ac Mini PCIe 2,4GHz / 5GHz Designed for E

wallys-wifi6

迄今为止最完整的DDD实践

阿里技术

DDD 经验分享

怎么分辨企业转型是“真数字化”还是 “伪数字化”?

雨果

数字化转型

泄露了,Alibaba697页的MySQL应用实战与性能调优手册,太强了

Java编程日记

Java 编程 程序员 面试 架构师

一文搞定架构思维,DFD 的结构化分析,只需明白这3点

老崔说架构

CSS

武师叔

8月月更

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