BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #7028同步于 2010/7/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖

QU输入法1.8.3版本 项目介绍 产品录屏(7.11比赛供稿修正版)

eaglebaby
2010/7/12镜像同步6 回复
http://v.youku.com/v_show/id_XMTg5MTI5MTE2.html QU输入法项目说明书 1、项目概况 QU输入法是一个运行于Windows平台的PC端输入法。 QU输入法项目是北京邮电大学腾讯创新俱乐部的项目实践成果。 我们依托调研数据,分析出当前用户在安全、错别字、结合语意更新候选词等方面的需求,以及发现了频率较高的具体细节需求。例如:1和亲友聊天时,误发不雅词汇引起尴尬。2 短时间内需要较频繁使用某些词汇,而这些词汇存在于部分文档中。3 在不同的场景中,我希望自己的输入具备“更酷”“更安全”等。 “输用户之所想,做用户之所需”,我们的愿景是设计出一款具有创新功能的输入法,务求为用户带来更舒适、更安全、更智能、更有乐趣的输入体验。 2、团队概况 项目研发历时12周,核心成员仅以名字拼音分先后。范捷(负责长句联想,大三)、冯文中(负责词库搭建、新词识别,研一)、郭帅(产品经理,并负责智能选词和IME接口设计与整合,大三)、黄洁(负责前期的调研策划,大二),华雄(负责拼音切分与补全,Bigram词库,大三),赵欢(负责前台的设计,大二)。 3、技术概况 开发语言(c++) 运行环境:windows 项目架构:独立的dll,供操作系统IME模块调用。 其它第三方工具:msxml4 关键技术: 1、 长句联想算法 通过已有的拼音输入串建一个图,其中,所有可能的子串划分都定义为图中的一个节点。而节点之间的边就是节点之间的转移成本(与bigram词库中的转移概率相关)。则寻找前K个最优切分的问题就是寻找K条从起点到达终点的转移成本之和最小的道路。有向无环图求最短路和K短路(前K条最短的路) 有向无环图求最短路只需要沿着边的方向进行广度优先搜索(退化的dijkstra算法)即可,不需要使用Dijkstra类的最短路算法。同样的求K短路也是一样沿着边的方向动态规划求解即可。这样,理论上运算速度比传统的思路大幅提升,内存使用也比现有的少许多,当用户增加输入时,之前的数据和运算结果都可以继续使用,而不需要重新建图,减少大量重复计算。 2、通过常用办公文档更新用户词库 该功能的实现主要是为了提高用户词典的质量与用户适用度。 a.识别办公文件格式信息,获取纯文本。 微软公开了office2007以上版本的信息以及压缩方法。使用对应的ZIP解压缩算法,可以获得原始的office文档类型。根据各类型文档文本相对路径以及文本标签,可以使用MSXML解析获取纯文本。 2、对纯文本进行中文分词,获取新文本。 项目中使用的方式是双向的最大匹配配合概率统计最佳分词结果的方式。若分词结果不一致,则认为出现歧义,使用概率算法计算最大匹配概率,获取分词结果。 3、辨别新词。 新词识别基于统计概率的结果处理分词结果的组合。使用基于互信息的方式对偶然聚集在一起的词语进行筛选,提取相关性较高的词语进行进一步的识别。 识别方式原理是使用互信息来衡量的是某个词和类别之间的统计独立关系, 与多元对数似然比检验以及皮尔森χ2校验有着密切的联系。基于互信息的新词识别统计度量两个词语之间的相互性,比较适合于文本分类的特征和类别的配准工作。对两个相邻的分词结果X,Y,计算他们的互信息I(X,Y) = H(X) + H(Y) -- ∑ p(x,y)logp(x,y)。其中- ∑ p(x,y)logp(x,y)是联合熵。通过在计算中根据背景语料,调节词语组合的新词阈值,就可以获取组合型的新词。 另外鉴于某些特定办公文件本身格式的特殊性,很有可能直接就形成了新词(例如学生名单,单位名称等等),因此我们可以采取提取文档单元格内容等方式对文档进行新词的识别。 4、项目亮点 创新点 创新类型 介绍 技术原创性与功能首创性 长句联想算法 技术 采用非语义的手段,通过二元词库计算出最高频句子联想结果。返回长句结果不超过10ms 算法原创。 读取办公文档更新词库 技术/产品 可以从office文件中导入语料进行分词,更快更准识别新词;能解析docx,xlsx,pptx等常用办公文件的内容如单位名称、学生名单等加入用户词库,使办公室职员可以更快速地输入常用词汇。 功能首创 智能选词&倒退纠错 技术 智能选词:后续输入的首个候选词结果会根据已选词以及前一输入结果,结合语意而调整: case 1无上字时输入“zuokuang”做狂 已上字“工” 输入“zuokuang”工作狂 case 2无上字时输入 “yizhi”:一直 已上字 “千金” 输入 “yizhi”:千金一掷 倒退纠错:结合后续输入,对前面已上字结果进行检查,并纠正错别字情况。 case 1已上字 “我们都使” 输入“haohaizi”:首个候选词为“<是好孩子”结果为“我们都是好孩子” 输入“yonggongju”首个候选词为“用工具”结果为:“我们都使用工具” case 2已上字 "前端" 输入“shijian”首个候选词为“<段时间”,结果为“前段时间” 技术原创 倒退纠错功能首创 不雅词汇双提醒 产品 敏感词汇出现在候选项中会以红色警示,一旦选择进入输入框时,整个输入框会变红。case:玩遍师姐 可以迅速提醒用户手误打出的不雅词汇,防止在与异性或尊长之间的交流或沟通产生尴尬。 功能首创 多模式输入场景 产品 用户模式:输入法识别并记录新词。 商务模式:仿浏览器session概念,输入法识别新词,但将新词依托于于进程中,既方便,又安全。 逆序模式:将文本倒置输出。 密语模式:会将文本以低频字输出,以通过某些网站或应用对敏感词内容的过滤。 功能首创 5、其他 QU输入法能够做得更好: 1、搜集更大规模的语料对词库进行训练,生成质量更好的词库。现阶段的词库的训练语料是1998年的人民日报语料,以及2006年搜狗实验室公开的互联网词语。由于网络新词的更迭周期非常快,因此涉及到网络流行词的联想,效果欠佳。考虑设计一个运行在校园论坛上的爬虫,对热点的词语进行监视和筛选。 2、BUPT TIC有很好的WPF积累,但是由于输入法工程的特殊性,我们到合并WPF以及IME系统接口工程的时候才发现,为操作系统为了避免加载时出现死锁,DLLMain(拼音输入法的成品库是动态链接库)的attach过程中,不能够混合托管与非托管代码(准确的说是不能在以DLLMain为根的函数树中使用托管代码),所以在此无法绘制前台面板。这是比较遗憾的。 3、新词识别的准确程度。 新词识别的课题也是业界一直研究的难题之一,大部分的新词识别算法只能达到60%左右的识别率。项目中的新词识别准确性表现也一般,因为我们在项目中并没有考虑汉语中语义上的因素。项目之后反思,其实对于输入法用户来说,某些常用词语的组合,其实在用户进行上字以后,进入用户词库就可以被用户打出。因此,我们可以考虑更多的是,如何智能地去理解用户给我们的语料,判断哪些是用户需要的词语,哪些应该被纳入用户词库。
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
gootyking机器人#1 · 2010/7/12
哇 【 在 eaglebaby (天鹰宝宝) 的大作中提到: 】 : http://v.youku.com/v_show/id_XMTg5MTI5MTE2.html : QU输入法项目说明书 : 1、项目概况 : ...................
allen0308机器人#2 · 2010/7/12
赞一个~~ 现在最好的new word detection算法应该是基于CRF的。 MI我做过,效果还可以。FSCP算法也不错,复杂度不高,比MI考虑得更全面
cclive机器人#3 · 2010/7/13
楼上CRF学的如何。学习CRF搞得我头疼。云里雾里的。
allen0308机器人#4 · 2010/7/13
我可不学CRF那个东西,大概知道怎么回事儿就行了,反正也不是做理论的 【 在 cclive 的大作中提到: 】 : 楼上CRF学的如何。学习CRF搞得我头疼。云里雾里的。 : --
cclive机器人#5 · 2010/7/13
科研还是要自己搞啊。。。
liyus机器人#6 · 2010/7/13
【 在 cclive 的大作中提到: 】 : 科研还是要自己搞啊。。。 : -- 看你昵称就知道你是大牛啦 好(三声)强