b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

图像识别 神经网络 输入法引擎 AI 化已成为输入法产品发展的趋势。[好网角文章(2)

电脑杂谈  发布时间:2018-02-17 01:56:23  来源:网络整理

所谓「预测」,指的是用户没有输入任何字母时直接预测用户接下来会输入什么,比如输入「What’s the 」,预测出用户会输入「weather today?」。

同时,在拉丁等语系的输入法中,会提供滑行输入的功能。

用户在键盘上快速滑行词的字母序列,即便滑行轨迹有所偏差(因为滑行速度很快,用户较难准确定位各个字母的位置),也可以准确预测用户所想输入的词。在滑行输入中,引擎的输入是滑行点的轨迹,输出是预测的词。在本文中,我们不会深入探讨滑行输入的引擎实现逻辑。

更进一步,随着用户越来越多地倾向于利用 Emoji、表情图片等非文字内容表达自己的情感,引擎也需要能够根据用户输入词 / 键码序列来预测 Emoji 或表情图片。而 Emoji 往往具有多义性(表情图片也类似),此类预测的复杂度会更高,我们已经利用基于深度学习的建模技术较好地解决了这一问题。本文不会深入探讨,有兴趣的小伙伴可以单独谈讨。

本文主要讨论在手机的按键文本输入场景下,输入法引擎高效准确地预测的相关技术。

此类技术的演化可以分两个阶段:

1)N-gram 统计语言模型阶段;

2)深度神经网络语言模型阶段。

前者主要基于语料进行统计,获取一个词在 N-1 个词组成的序列 (N-gram) 之后紧邻出现的条件概率;但由于手机内存和 CPU 的限制,仅能对 N 较小 (N <= 3) 的 N-gram 进行计算,预测效果存在明显天花板。后者通过构建深度神经网络,利用语料数据集进行训练,不仅可以突破 N-gram 中 N 的限制,且可利用词与词的语义关系,准确预测在训练语料中未出现的词序列,达到远超统计语言模型的预测效果。

基于传统 N-gram 语言模型的输入法引擎

在输入「What’s the weather today?」的这个 case 中,当用户输入到「weather」的第一个字母「w」时,引擎要做的事情,就是根据前面输入的词序列「What’s the」来预测下一个最可能的以「w」打头的单词,而其中最关键的就是如何预测下一个最可能的词。

图像识别 神经网络_matlab树叶识别_python车牌识别

假设输入词序列为 w1,??,wN-1,预测下一个词的问题实际上变成了 argmaxWNP(WN |w1,??,wN-1 ),这个简单的模型称为输入法引擎的语言模型。

根据条件概率计算公式,P(WN |w1,??,wN-1 )=P(w1,??,wN-1, WN )/P(w1,??,wN-1, WN ),,根据最大似然估计原则,只有在语料数据规模足够大以至于具备统计意义时,上述概率计算才会具有意义。

但事实上,如果 N 值过大,并不存在「足够大」的语料数据可以支撑所有概率值的计算;并且,由于 WN 实际上仅同 w1,??,wN-1 中的部分词相关,上述计算会造成大量的计算资源浪费。

因此,实际计算中,一种方式是引入马尔科夫假设:当前词出现的概率只与它前面有限的几个词有关,来简化计算。如果当前词出现的概率只与它前面的 N-1 个词相关,我们就称得到的语言模型为 N-gram 模型。常用的 N-gram 模型有 Unigram (N=1),Bigram (N=2),Trigram (N=3)。显然,随着 N 的增大,语言模型的信息量会指数级增加。

为了得到有效的 N-gram 语言模型,一方面需要确保语料数据规模足够大且有统计意义,另一方面也需要处理「数据稀疏」问题。所谓数据稀疏,指的是词序列 w1,??,wN 并没有在语料数据中 出现,所以导致条件概率 P(WN |w1,??,wN-1 ) 为 0 的情况出现。这显然是不合理的,如果数据规模继续扩大,这些词序列可能就会出现。我们可以引入平滑技术来解决数据稀疏问题。平滑技术通过把在训练语料集中 出现过的 N-gram 概率适当减小,而把未出现的概率适当增大,使得全部的 N-gram 概率之和为 1,且全部的 N-gram 概率都不为 0。经典的平滑算法有很多种,个人推荐 Laplace 平滑和 Good-Turing 平滑技术。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-81276-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...