文本预处理技术

自然语言处理简介:
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向 。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法 。自然语言处理是一门融语言学、计算机科学、数学于一体的科学 。
自然语言处理(NLP)=自然语言理解(NLU)+ 自然语言生成(NLG) 。
这三者的关系如下图:
在NLP工程中,文本预处理通常包含以下几个步骤:
分词: 一、分词需要工具,以下是常用开源分词工具:
Jieba分词
LTP
二、一般的分词方法: 1 最大匹配算法 1.1 正向最大匹配
正向先从左到右取个词,每次右边减一个字,直到词典中存在或剩下1个单字 。
比如:
= ‘今天要学习自然语言处理’
= [‘今天’, ‘要’, ‘学习’, ‘自然’, ‘语言’, ‘处理’, ‘自然语言处理’]
词典最大长度= 5
第1轮扫描:
第1次:“今天要学习”,扫描词典,无
?第2次:“今天要学”,扫描词典,无
?第3次:“今天要”,扫描词典,无
?第4次:“今天”,扫描词典,有
至此切分出“今天”,然后再对剩下“要学习自然语言处理”句子继续上面操作,这里需要注意的是,要切分出最大匹配的词 。
最后切分结果:=[‘今天’,‘要’,‘学习’,‘自然语言处理’]
1.2、逆向最大匹配
逆向先从右到左取个词,每次左边减一个字,取右边跟词典匹配,直到词典中存在或剩下1个单字 。
比如:
= ‘今天要学习自然语言处理’
= [‘今天’, ‘要’, ‘学习’, ‘自然’, ‘语言’, ‘处理’, ‘自然语言处理’]
词典最大长度= 5
第1轮扫描:
第1次:“然语言处理”,扫描词典,无
?第2次:“语言处理”,扫描词典,无
?第3次:“言处理”,扫描词典,无
?第4次:“处理”,扫描词典,有

文本预处理技术

文章插图
至此切分出“处理”,然后再对剩下“要学习自然语言处理”句子继续上面操作,这里需要注意的是,要切分出最大匹配的词 。
最后切分结果:back=[‘今天’,‘要’,‘学习’,‘自然’,‘语言’,‘处理’]
1.3、双向最大匹配
双向最大匹配法是将正向最大匹配法和逆向最大匹配法分布得到的分词结果进行比较,从而决定分词方法 。
(1)正向最大匹配,得到分词结果
(2)逆向最大匹配,得到分词结果back
(3)若等于back,即词数和单词都相同,返回任意一个
(4)若不等于back
········返回与back词语数量较少的
(5)若与back词语数量相等,但分词得单词不同,返回与back单字较少的(单字数量还相等,任意返回一个)
1.4、最大匹配的缺点
(1)使用的是贪心算法,得到的解是局部最优解 。
(2)长度限制 。通过来提高效率,但是也牺牲准确率 。
(3)效率低,复杂度高 。这个也是在字长和牺牲准确率间平衡 。
(4)无法表达分词的歧义性,没有考虑上下文信息 。如下:
“有意见分歧”(正向最大匹配和逆向最大匹配结果不同)
有意/见/分歧/
有/意见/分歧/
2 通过n-gram
思路:生成所有的分割,然后对所有分割组合通过n-gram计算概率,取概率最大的分割 。
优点:考虑上下文信息s
缺点:复杂度高,效率低 。
3 最短路径分词算法
最短路径分词算法首先将一句话中的所有词匹配出来,构成词图(有向无环图DAG),之后寻找从起始点到终点的最短路径作为最佳组合方式,引用《统计自然语言处理》中的图: