自然语言处理1-4: 文本处理的流程

一:分词

常用的分词工具有jieba分词,snowNLP,LTP,HanNLP

 1.前向最大匹配算法

现在假设我们有一个词典库{‘这些’,“这些年”,‘年’,‘的’, ‘情’,‘与’,‘爱’,‘终究’,‘是’, ‘错’,‘错付’,‘了’, ‘甄嬛’,。。。}

我们对“这些年的情与爱终究是错付了”利用前向最大匹配法进行分词。

1.首先需要设置max-len,这个参数表示每次分词时候的窗口大小。例如我这里设置为5

2.首先开始划分,将原句划分为"[这些年的情]与爱终究是错付了",但是“这些年的情”并没有在词典库中,所以需要对这5个字逐渐缩小范围

3.缩小一个字,将2中的句子进一步划分为“[这些年的]情与爱终究是错付了”,发现“这些年的”也不在词典库中,所以要再次缩小范围

4.继续缩小范围,将3中的句子划分为“[这些年]的情与爱终究是错付了”,“这些年”在词典库中,所以可以划分出来。我们得到了第一个划分的词汇:这些年

5.接下来继续使用max_len指示的长度划分出5个字符,即“这些年[的情与爱终]究是错付了”,词典库找不到,继续缩小范围

6.缩小成“这些年[的情与爱]终究是错付了”,词典库找不到,继续缩小范围

7.缩小成“这些年[的情与]爱终究是错付了”,词典库找不到,继续缩小范围

8.缩小成“这些年[的情]与爱终究是错付了”,词典库找不到,继续缩小范围

9.缩小成“这些年[的]情与爱终究是错付了”,词典库找到了,所以得到第二个划分的词汇:

10.接下来继续使用max_len指示的长度划分出5个字符,即“这些年的[情与爱终究]是错付了”,词典库找不到,继续缩小范围

11.缩小成“这些年的[情与爱终]究是错付了”,词典库找不到,继续缩小范围

12.缩小成“这些年的[情与爱]终究是错付了”,词典库找不到,继续缩小范围

13.缩小成“这些年的[情与]爱终究是错付了”,词典库找不到,继续缩小范围

14.缩小成“这些年的[情]与爱终究是错付了”,词典库找到,所以得到第三个划分的词汇:

依次划分下去便可以得到“这些年 的 情 与 爱 终究 是 错付 了”

前向最大匹配算法是基于贪心算法的。

二:后向匹配算法

就是前向匹配算法倒着来啦。举个例子,划分“我们经常有意见分歧”,词典库中有{‘我们’,‘经常’,‘有’,‘有意见’,‘分歧’},maxlen = 5

1. 划分成“我们经常[有意见分歧]”, 词典库中找不到

2.划分成“我们经常有[意见分歧]”,词典库中找不到

3.划分成“我们经常有意[见分歧]”,词典库中找不到

4.划分成“我们经常有意见[分歧]”, 词典库中找到了,所以分出来

5.继续划分“我们[经常有意见]分歧”,词典库中找不到

6.划分成“我们经[常有意见]分歧”,词典库中找不到

7.划分成“我们经常[有意见]分歧”,词典库中找到了,所以分出来

依次划分下去,将原句划分为“我们 经常 有意见 分歧”

原文地址:https://www.cnblogs.com/loubin/p/13675909.html