写点什么

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

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

关注

评论

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

Python|字符串操作

AXYZdong

7月月更

第十八届IET交直流输电国际会议(ACDC2022)于线上成功举办

E科讯

OPPO 小布预训练大模型揭秘:可大规模工业化应用的十亿级模型

OPPO小布助手

AI 智能助手 预训练模型 预训练

五千字讲清楚团队自组织建设 | Liga 妙谈

LigaAI

团队管理 个人提升 敏捷开发管理 LigaAI 自组织协作

TCP两次挥手,你见过吗?那四次握手呢?

C++后台开发

网络编程 网络协议 TCP/IP 后端开发 C++开发

被忽视的问题:测试环境配置管理

老张

软件测试 测试环境治理

2022年国内云管平台厂商哪家好?为什么?

行云管家

云计算 云管平台 云管平台厂商

智捷云——元宇宙综合解决方案服务商

智捷云

区块链 元宇宙 智捷云 区块链技术开发

Python 入门指南之使用 Python 解释器

海拥(haiyong.site)

7月月更

深入JS中几种数据类型的解构赋值细节

猪痞恶霸

前端 js ES6 7月月更

【Unity UGUI】ScrollRect 动态缩放格子大小,自动定位到中间的格子

萧然🐳

游戏开发 Unity ScrollView 7月月更 UGUI

容器环境minor gc异常频繁分析

wgy

Java minor gc

一加10 Pro和iPhone 13怎么选?

Geek_8a195c

图像检索(image retrieval)

Geek_e369a5

图像搜索 图像检索

华为云ModelArts的使用教程(附详细图解)

逝缘~

华为 华为云 7月月更

PingCode 性能测试之负载测试实践

PingCode研发中心

软件测试 PingCode

DataKit——真正的统一可观测性 Agent

观测云

同事悄悄告诉我,飞书通知还能这样玩

Jianmu

自动化 建木CI 飞书通知 定时

31年前的Beyond演唱会,是如何超清修复的?

字节跳动视频云技术团队

多年锤炼,迈向Kata 3.0 !走进开箱即用的安全容器体验之旅| 龙蜥技术

OpenAnolis小助手

开源 容器 云原生 龙蜥技术 Kata Containers

如何实现一个延时队列 ?

领创集团Advance Intelligence Group

延时队列 Redis 数据结构 redis 底层原理

什么是低代码开发?

AIRIOT

低代码 物联网 低代码,项目开发

LeetCode-168. Excel表列名称(java)

bug菌

LeetCode 7月月更

输入的查询SQL语句,是如何执行的?

华为云开发者联盟

MySQL sql 开发 语句

【一库】vueuse:我不许身为vuer,你的工具集只有lodash!

摸鱼的春哥

Vue 前端 Vue3 7月月更

太方便了,钉钉上就可完成代码发布审批啦!

阿里云云效

云计算 阿里云 钉钉 jenkins 代码

uni-app与uviewUI实现仿小米商城app(附源码)

优秀的李

小程序 uniapp 7月月更 uviewui

华为云数据库DDS产品深度赋能

程思扬

数据库 华为云 DDS

Lombok使用引发的血案

技术小生

7月月更

科普达人丨一文看懂阿里云的秘密武器“神龙架构”

阿里云弹性计算

云计算 虚拟化 资源管理 神龙架构

Numpy 的仿制 2

祖维

c slice Numpy

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