概述
文本挖掘的分词原理 By 刘建平Pinard 写的真是太好了!!!故转载
https://www.cnblogs.com/pinard/p/6677078.html
下面是我的Cheatsheet:
引入:
中文由于没有空格,分词需要专门去解决。
本文就对文本挖掘时的中文分词原理做一个总结
1. 分词的基本原理
现代分词都是基于统计的分词,而统计的样本内容来自于一些标准的语料库
关键词: argmax 马尔科夫假设(求联合分布)二元模型
细节:
1.argmax(f(x))是使得 f(x)取得最大值所对应的变量点x(或x的集合)。arg即argument,此处意为“自变量”。
r = argmaxP(Ai1,Ai2,…,Aini)即统计分布概率函数最大的点的集合(第i种分词方法)
2.马尔科夫假设,即每一个分词出现的概率仅仅和前一个分词有关。
在前面我们讲MCMC采样时,也用到了相同的假设来简化模型复杂度
3.只依赖于前一个词的模型为二元模型(Bi-Gram model)
一句话总结:
利用语料库建立的统计概率,对于一个新的句子,我们就可以通过计算各种分词方法对应的联合分布概率,找到最大概率对应的分词方法,即为最优分词。
2. N元模型
N一般都小于4,主要原因是N元模型概率分布的空间复杂度为O(|V|N),其中|V|为语料库大小,而N为模型的元数,当N增大时,复杂度呈指数级的增长。
存在问题:
-
某些生僻词,或者相邻分词联合分布在语料库中没有,概率为0。
解决方法:这种情况我们一般会使用拉普拉斯平滑,即给它一个较小的概率值, -
如果句子长,分词有很多情况,计算量也非常大
解决方法:用维特比算法来优化算法时间复杂度。
3. 维特比算法与分词
以二元模型为基础
维特比算法是用于隐式马尔科夫模型HMM的,但是它是一个通用的求序列最短路径的方法,不光可以用于HMM,也可以用于其他的序列最短路径算法,比如最优分词
采用的是动态规划来解决这个最优分词问题
(动态规划要求局部路径也是最优路径的一部分)
维特比算法需要找到从Start到End之间的一条最短路径。对于在End之前的任意一个当前局部节点,我们需要得到到达该节点的最大概率δ,和记录到达当前节点满足最大概率的前一节点位置Ψ。
由于最后的最优解为“梦境”,现在我们开始用Ψ反推来完成分词
4. 常用分词工具
简单的英文分词不需要任何工具,通过空格和标点符号就可以分词了。有时候需要把多个单词做为一个分词,比如一些名词如“New York”,需要做为一个词看待
进一步的英文分词推荐使用nltk。对于中文分词,则推荐用结巴分词(jieba)
5. 结语
分词是文本挖掘的预处理的重要的一步,分词完成后,我们可以继续做一些其他的特征工程,比如向量化(vectorize),TF-IDF以及Hash trick,这些我们后面再讲。
最后
以上就是拉长过客为你收集整理的中文文本挖掘的分词原理 By 刘建平Pinard + 我的cheatsheet1. 分词的基本原理2. N元模型3. 维特比算法与分词4. 常用分词工具5. 结语的全部内容,希望文章能够帮你解决中文文本挖掘的分词原理 By 刘建平Pinard + 我的cheatsheet1. 分词的基本原理2. N元模型3. 维特比算法与分词4. 常用分词工具5. 结语所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复