写点什么

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

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

关注

评论

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

MobTech MobLink Web端快速集成指南

MobTech袤博科技

JavaScript 集成 跳转访问网页

东莞等保测评多少钱及格?哪里可以做等保测评?

行云管家

等保 等级保护 等保测评 安全等级保护

元宇宙的未来商机和应用

智捷云

Spark Optimizer 规则下的 BUG 排查与修复全记录

观远数据

saprk

喜报 | 博睿数据两项发明专利获得国家知识产权局授权,累计发明专利11项

博睿数据

APM 可观测性 博睿数据 智能运维AIOps 发明专利

发展场景金融需要重视生态能力建设,加深对场景的渗透程度

易观分析

金融 客户 场景生态建设

快照有哪几种意思?如何统一管理各云主机快照,实现快速配置与回滚?

行云管家

运维 云主机 快照 IT运维

KubeEdge:下一代云原生边缘设备管理标准DMI的设计与实现

华为云开发者联盟

云计算 云原生 后端

拒绝加班:巧用前端电子表格中构建公式树

葡萄城技术团队

腾讯云数据安全中台保护方案获“首届全国商用密码应用优秀案例”

腾讯安全云鼎实验室

云安全

Java更改 PDF 页面大小

在下毛毛雨

浅聊一下邮件通知的批量推送

为自己带盐

dotnetcore 8月月更 邮件发送

兆骑科创承办创业赛事活动,双创服务,创业服务平台

兆骑科创凤阁

TDengine3.0 新架构设计思路

TDengine

数据库 tdengine 时序数据库

ARM 内核寄存器 和 基本汇编语言讲解

矜辰所致

汇编语言 8月月更 ARM内核 内核寄存器

《中国车联网TSP行业发展洞察2022》案例征集

易观分析

车联网 案例征集

Shuttle + Alluxio 加速内存Shuffle起飞

Alluxio

开源 OPPO Alluxio spark SQL 8月月更

Python自学笔记6-列表有哪些常用操作

和牛

Python 测试 8月月更

如果重新学计算机

价投小邱

Linux 计算机网络 操作系统

腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

Geek_Yin

编程 程序员 架构师 #java redis 底层原理

在公司内部,做了一次 HTTP(S) 的分享

程序员小毕

程序员 面试 程序人生 https 计算机网络

招行架构师徐佳航:金融云原生与开源标准的共同生长

阿里巴巴云原生

阿里云 开源 容器 云原生 KubeVela

商派oneX新零售系统上架华为云云商店,首次参与“828企业节”

神奇视野

高性能计算在处理和吞吐量方面的重大突破

Finovy Cloud

计算 高性能计算架构

SPL:跑批有这么难么

华为云开发者联盟

Java 开发

Python 教程之输入输出(10)—— 输出格式

海拥(haiyong.site)

Python 8月月更

MySQL基础笔记

楠羽

#开源

一次纯线上接口异常的排查过程

南城FE

node.js 前端

追一科技携手华为云助力中小企业数字化,Face虚拟数字人亮相828企业节

sofiya

“中国建筑业竞争力百强”中化二建如何做知识管理?

sofiya

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