我是靠谱客的博主 拉长过客,最近开发中收集的这篇文章主要介绍中文文本挖掘的分词原理 By 刘建平Pinard + 我的cheatsheet1. 分词的基本原理2. N元模型3. 维特比算法与分词4. 常用分词工具5. 结语,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文本挖掘的分词原理 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增大时,复杂度呈指数级的增长。

存在问题:

  1. 某些生僻词,或者相邻分词联合分布在语料库中没有,概率为0。
    解决方法:这种情况我们一般会使用拉普拉斯平滑,即给它一个较小的概率值,

  2. 如果句子长,分词有很多情况,计算量也非常大
    解决方法:用维特比算法来优化算法时间复杂度。

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. 结语所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部