- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
警务应用中基于双向最大匹配法中文分词算法实现
警务应用中基于双向最大匹配法中文分词算法实现
摘 要 中文分词是信息提取、信息检索、机器翻译、文本分类、自动文摘、自然语言理解等中文信息处理领域的基础。目前中文分词依然是中文信息处理的瓶颈之一,本文对常见中文分词算法进行研究,并针对警务应用的场景,在经典的Jieba中文分词算法的逆向匹配法基础上提出双向最大匹配法,最后验证改进后的算法在中文分词准确度方面的提升。
【关键词】中文分词 双向最大匹配法 警务应用
1 研究背景
公安机关日常工作中采集到的数据,大多为碎片化数据,具多源、量大、且又离散如何有效提取这些非结构化数据中的有效信息以方便警务应用系统进行进一步分析处理,为案件侦破、情报分析等提供服务,关键技术就是利用中文分词算法将这些描述性的中文语句转变为结构化数据。
2 中文分词技术简介
2.1 中文分词算法分类
中文分词技术属于自然语言处理技术范畴,现有分词算法分为基于规则的分词方法、基于统计的分词算法和基于理解的分词方法。
基于规则的分词方法中占主流地位的是正向最大匹配法和逆向最大匹配法。由于汉语单字成词的特点, 正向最小匹配和逆向最小匹配一般很少使用。逆向匹配的切分精度一般高于正向匹配,遇到的歧义现象也比较少。由大数据量的统计表明正向和逆向最大匹配的错误率分别为1/ 169和1/ 245,但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。
基于统计的方法是基于多个汉字同时出现的概率, 通过对语料库有监督或无监督的学习, 得到描述一种语言的语言模型 (常用一阶隐马尔可夫模型( 1stHMM) ) ,该方法优点是只要有足够的训练文本即可降低未登录词的影响。
2.2 Jieba分词算法
Jieba分词算法基于规则与统计相结合,利用前缀词典实现高效的词图扫描,生成句子中所有可能成词情况所构成的有向无环图 (DAG),要生成有向无环图必须有语料库的辅助,语料库中每条记录会包含词、词频、词性等属性。Jieba分词试图查找树结构中的最大概率路径, 找出基于词频的最大切分组合;对于未登录词,采用基于汉字成词能力的 HMM 模型,使用 Viterbi 算法。
Jieba分词在HMM中有两种状态,一种是具有决定性的隐含状态,另一种的显性输出的状态。在Jieba分词中状态有4种,分别是B,M,E,S,对应于一个汉字在词语中的地位即是B(开头),M(中间 ),E(结尾),S(独立成词),而输出就是一个汉字。
在HMM中还有三种概率分别是状态分布概率,状态转移概率和发射概率(发射概率是一个条件概率,表示在某一状态下得到某一输出的概率)。图1为二状态的马尔科夫模型。
要对一串汉字进行分词,首先使用Viterbi 算法判断这串汉字最有可能的BMES组合形式。在Jieba分词中作者经过大量的实验在文件中中预存好了汉语的一些概率值。prob_start.py 中预存了每种状态的概率。
对于一个中文语句,第一个汉字的状态概率称为初始概率,可以用贝叶斯公式得到:
其中P(i1)表示第一个字的状态概率,P(i2)表示第二个字的状态概率,P(i2|i1)表示状态i1到i2的转移概率,P(k2|i2)表示发射概率。
以此类推,由于每一个状态都有4种选择,所以根据每种选择导致的状态转移路径计算得出的概率值也不同,Viterbi算法的目的是找出概率最大的一种转移路径。如果语句长度为2,那么算法的目的就是使上面的P(i2)最大化。到达某一种中间状态的路径可能有多条,如在第三个节点到达状态M可能路径有 S-B-M、B-M-M等,Viterbi 算法在中间这一步中就进行“剪枝”,只记住路径中概率最大的那条。
3 警务应用系统中对Jieba分词算法的改进
警务应用系统对分词算法准确度的要求远远高于对分词算法速度的要求。本文基于Python3.4+Jieba0.37分词包,选择在中文词库、最大匹配算法等方面进行改进以提高分词准确度。
3.1 词库优化
词库是中文自动分词的基础,词库机制的优劣直接影响到分词的速度和准确度。
(1)枪械,盗窃,抢劫这些事警务应用中的常见词汇,通过合理调高这些词的比重,能够快速将其识别提取。
(2)利用二次分词法可以提高城市名、路名、车牌号、时间等警务应用中较为关心的词汇的识别度。在基本词库中添加当地地名和地址库,地名地址词库保存城市特有地名、路名、机构名、小区名、兴趣点和大地名。通用词主要用于对词典中有重复的词或是分词后的具有歧义或不准确的词进行修复,如“华夏二路”在词典并不存在,但是“华夏”却在词典中,“二”为数量
文档评论(0)