word segmentation
1.概述
*◆ 何为中文分词?*
中文分词指的是将一个汉字序列切分成一个个单独的词。
句子1:北京人在纽约
分词结果:**北京人**/**在**/**纽约**
*◆ 出现分词歧义怎么办?*
句子2:地面积了厚厚的雪
分词结果1:**地面**/**积**/**了**/**厚厚的**/**雪**
分词结果2:**地**/**面积**/**了**/**厚厚的**/**雪**
由人来判断,结果1是分词正确的,但是对于计算机来说,两者都有可能,那该如何分词?
2.分词方法
(1)基于词典的机械分词法
基于词典匹配的机械分词方法,主要依据词典的信息,根据一定的规则将输入的字符串与词典中的词逐条匹配,匹配成功则进行相应的切分处理。
①正向最大匹配(FMM)
假设自动分词词典中最长的词所含字数为M,则将字符串前M个字作为待匹配字符串,在词典中进行查找,如果该M个字与词典中的某个词匹配成功,则将其切分出来;若未匹配成功,则将最后一个字从待匹配字符串中删除,再将待匹配字符串与词典进行匹配,以此类推,直到匹配成功为止。
*举例*
输入句子:S1="计算语言学课程有意思"
定义:MaxLen=5;S2="";J="/";
词表:计算语言学,课程,意思,有意,思......;
原始句子:计算语言学课程有意思
第1次分词:**计算语言学**/课程有意思
第2次分词:**计算语言学**/**课程**/有意思
第3次分词:**计算语言学**/**课程**/**有意**/思
第4次分词:**计算语言学**/**课程**/**有意**/**思**
②逆向最大匹配(BMM)
从句子的右边取候选子串,匹配不成功时去掉候选子串最前面的一个字,其他规则与FMM相同。
*举例*
输入句子:S1="计算语言学课程有意思"
定义:MaxLen=5;S2="";J="/";
词表:计算语言学,课程,意思,有意,思......;
原始句子:计算语言学课程有意思
第1次分词:计算语言学课程有/**意思**
第2次分词:计算语言学课程/**有**/**意思**
第3次分词:计算语言学/**课程**/**有**/**意思**
第4次分词:**计算语言学**/**课程**/**有**/**意思**
③双向最大匹配
先根据标点对文档进行粗切分,把文档分解成若干个句子,然后再对这些句子用正向最大匹配法和逆向最大匹配法进行扫描切分。如果两种分词方法得到的匹配结果相同,则认为分词正确,否则,按最小分词集处理。如果两种方法切分的次数一样时,则采用一些规则处理。
正向分词结果:计算语言学/课程/有意/*思*
逆向分词结果:**计算语言学**/**课程**/**有**/**意思**
(2)基于统计的分词法
统计分词以概率论为理论基础,将汉字上下文中汉字组合串的出现抽象成随机过程,随机过程的参数需要通过大规模语料库训练得到。
①基于互信息的分词方法
◆ 方法
根据字与字同时出现的概率大小来判断是否为一个词,几个相邻的字同时出现的次数越多,则其构成词的概率越大。
◆ 公式
对于字符串x和字符串y,计算其互信息值 M𝐼(𝑥,𝑦),用互信值得大小判断x和y之间的结合程度。M𝐼(𝑥,𝑦)= log2(𝑝(𝑥, 𝑦)/𝑝(𝑥,𝑦) )
如果M𝐼(𝑥,𝑦)>0,表示x和y会同时出现,MI值越大,共同出现程度越大;
如果M𝐼(𝑥,𝑦)=0,表示x和y是独立出现;
如果M𝐼(𝑥,𝑦)
Original: https://blog.csdn.net/weixin_47936614/article/details/123380857
Author: CS_木成河
Title: 【NLP学习】中文分词
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547901/
转载文章受原作者版权保护。转载请注明原作者出处!