一、大纲总览
1、tough资料:各类文本等的输入。
2、分词。好的分词算法很重要。
3、文本预处理。
4、标准化:单词的时态,单复数。都转换为最原始的。这时还是字符串。
5、特征提取:向量表示,thidf算法,w2w,seq2seq算法等等。
6、模型:向量有了,然后就是根据算法去匹配。
二、分词
可以直接用的分词工具。
1、分词算法之最大匹配
向前最大匹配、向后最大匹配、双向最大匹配(不讲)
- 向前最大匹配
1、首先输入一个句子,已知后建好的词典库,设置好窗口值(5)
2、窗口从第一个汉字开始向后滑动以此减少
3、在词典库中匹配到的话,就直接切分句子,然后窗口移动到下一个句子里面
4、每一个窗口里面是向前匹配的
- 向后最大匹配
与向前匹配道理一样
1、窗口从最后一个汉字开始,然后向后不断缩小范围。
2、然后进行切割分词,再词典当中找到之后窗口滑动
3、向前和向后粉刺的结果有时候会很一样
- 最大匹配的缺点:
优点是算法简单,很容易理解。
1、词典的存在很重要,怎么构建词典库。
2、最重要的是没有考虑语义性问题。
3、类似于贪心算法,只是局部最优。 - 分词方法之考虑语义(incorate semantic)
讲分词后的结果放到模型里面,输出分词的是否合理
其中一个简单的方法就是将一个句子的所有可能的分词都分出来,然后放到这个模型,计算那个分词结果最好的方式。输出这个句子的概率值,也就是之前说的LM模型。一般结果会取值一个-log,越小越好。
维特比算法:提高了效率,分词和选择最好的分词同时进行。
维特比算法基于动态规划
1、图中每一条弧代表句子当中的一个字或者短语,弧上的权重是这个字或者短语的-log(所以结果越小越好)
2、在词典中没有出现的单字或者短语,权重为极大值
3、蓝色的弧是在词典当中出现的单字或者短语,单字是一定有弧,短语按照词典画弧。
4、动态规划:找开始节点到最终节点的权重和最短路径。F8:定义为开始节点到8节点的权重和最短路径。F8= F7+F7到F8的最短路。F7=F6+F6到F7的最短路…以此类推
5、图中可以到达8节点有3条路径。笔算正确,最终结果建右下角。
三、分词算法总结
LM模型。匹配规则就是最大匹配(最简单的)。概率统计是HMM,CRF等等。
分词现在已经不再是难题。