sogou输入法智能组词技术

Download Report

Transcript sogou输入法智能组词技术

探索中的搜狗智能组词
(1)智能组词技术介绍
输入法结构
外围开发:兼容性,皮肤,网络,用户帐号,
UNICODE,64位,软件冲突..
内核开发:音字转换,南方音,笔画,五笔,
用户词频,智能组词,长词联想,简拼
后台开发:注音,bigram模型和统计,语料,
词源管理,新词发现
音字转换
zuibukesiyideshiqing
Zui’bu’ke’si’yi’de’shi’qing
智能组词
最不可思议的事情是
系统词库
最不,嘴部,最,
嘴,
用户词库
。。。。
1. 最不可思议的事情是 2 最不 3 嘴部 4 …..
细胞词库
。。。。
智能组词
Zui’bu’ke’si’yi’de’shi’qing
?
最不可思议的事情是
1)在同音的所有可
能的组合中,取最
大概率;
2)对字和词来说,对
应于词频分布在总
词频中的比例
Unigram模型(1元模型)
henfangan
hen
很
恨
狠
Fan’gan
反感
hen
Fang’an
很
方案
恨
狠
原理:认为
相邻的两个
字(词)是
独立事件,
概率相乘
代表:
Sogou1.0
紫光输入法
拼音加加
Bigram模型(2元模型)
wo
hen
Fan’gan
ta
Fang’an
我
很
恨
喔
狠
方案
反感
原理:认为
相邻的两个
字(词)是
非独立事件,
存在一定组
合概率
他
它
代表:
Sogou1.5以上
Google输入法
Qq输入法
从Unigram到Bigram
• 空间问题
10w词条
Unigram
100亿组合
10G byte?
Bigram
空间:10M
时间:100Ms
• 计算时间问题
线性时间
(近似)
平方时间
Unigram
Bigram
两大核心问题
• Bigram表的制作
– 搜狗输入法的词库
– 网页搜索引擎的分词引擎
– 网页搜索引擎提供的大量文本语料
• Bigram表的使用
文本集
元词汇选取
统计方法
2gram选取
前台计算模
型
网页文本
(10G)
单双字词
(32768维)
全局wf统计
根据频率过
滤
词频,相关
度分级
网页文本扩
充(100G)
单,双字
(65536维)
Wf->df(不一
致问题)
根据同音歧
义过滤
半命中模型
精选网页文
本(消重,过
滤乱码)
所有词(按照
频率选择
65536)
Df->sf
根据风险过
滤
Unigram和
Bigram的平
滑
精选多源文
本(网页,论
坛,新闻)
优选词(频率+
规则)
文本集合选择
• 1)10G左右的summary文本,未经任何处理,1.5的水平
– 没有纵向对比,unigram->bigram的飞跃;
• 2)扩大文本集合数量,增加至100G
– 整体指标未变,但无效模板,重复网页,乱码等的影响显现
– 运营复杂,整体指标下滑;
• 3)关注文本集合质量
– 去除乱码,去除重复网页,去除无效模板,控制在20G
– 整体指标明显提升
• 4)关注句式
– 考虑句子前后标点符号
• 5)关注文本类型
– 论坛语料,博客语料
– 多文本混合
统计方法
• WF->DF->SF
– WF的问题:镜像网站,转帖,内容型网页,小
说人名太高
– DF的问题:对高频字不公平,模型难以一致
– SF的问题:介于2者之间,相当于消重后的WF
Bigram词汇选取
• 1)选择所有1字,2字词
– 没有纵向对比,但发现诸如“俱乐部对,爱丽
丝学院”的case;
• 2)选择高频的1,2,3字词(32768)
– 一些不常见的词(如某小说中高频出现的人名)
被选入,导致效率下降
• 3)选择df高的词
– 无效模板的影响
• 4)选择sf高的词
Bigram选取
• 1)根据频率高低选择
• 2)根据转移概率选择
• 3)根据同音组词过滤
– 原理:如果这个2gram不记录,所对应的词组
能成为首选,则不保留这个2gram(清华+大学)
– 效果:能减少40%的2gram数量
– 风险:实际上降低了很多高频Bigram的权重,
在长句时会受到影响
Bigram使用
• 1)float->byte?
– Log0.95x
– 精度损失?
• 2)Bigram在客户端的数据结构
– Hash+顺序表(2分查找,O(logn))
– 局部数组(O(1))
• 3)Bigram和Unigram的混合
– 半命中(一枚导弹,两枚导弹,枚导弹)
– 非命中时,使用unigram+惩罚
– 惩罚值的取值问题!!!
Fang’an
wo
hen
ta
Fan’gan
我
很
恨
喔
方案
反感
它
狠
基本方法:DP,从前向后,依次计算每个词节点为结尾的
最佳路径。(DP原则讨论)
剪枝原则:1)unigram排序;2)路径长短;3)限时
稀疏矩阵的惩罚因子
• 原因:任何一个语料集合都无法覆盖高元
• 惩罚方法:
– 1)全局默认惩罚;
– 2)基于邻接词的惩罚;
• 可能的改进方法
– 1)半词匹配方法
– 2)Markov模型
其他模型
trigram模型
马尔科夫模型(词性状态转移)
基于规则的模型
多模型混合
当前(IME3.0f)的现状
• 现状
–
–
–
–
–
40w词条,160w bigram pair,压缩后8.5m
短句准确率超过google,ms,位列第一
长句准确率略差于google,ms
简拼和模糊音问题
多模型组合能力差
• 研发有一定的积累
– 字,词,注音资源
– 分词,统计方法,筛选方法
– 各种失败的尝试,对现存问题的理解
(2)智能组词研发历程的思考
各版本改进流程
IME1.0
IME1.5
IME2.0
IME3.0b1
IME3.0f
• Unigram模型
• 引入基于双字的2gram
• 基本的2gram选取策略
• 2gram有损压缩
• 扩充语料集合
• 2gram选取的改进
• 大幅度扩充语料集合
• 改进词频统计
• 2gram选取的改进
• 改进语料选择
• 改进2gram元组选择
• 2gram选取的改进
历程
IME1.5
IME2.0
IME3.0b1
IME 1.0
反思:专注,连续,正确的人?
IME3.0f
IME3.1
指标与用户评估
指标评价
用户评价
反思:我们是否采用了正确的评价方法?
智能性?
智能组词
词频调整
简拼能力
新词记忆
自造词参与组词
上下文学习…
智能组词
反思:我们是否真正把握住了用户需求?
反思:我们是否采用了正确的方法?
TODO…