在jieba分词中,采用了HMM进行新词发现,它将每一个字表示为B/M/E/S分别代表出现在词头、词中、词尾以及单字成词 。将B/M/E/S作为HMM的隐藏状态,而连续的各个单字作为观测状态,其任务即为利用观测状态预测隐藏状态 , 并且其模型的 A,B,π 概率已经给出在文件中,所以这是一个标准的解码问题 。在jieba分词中采用了 Viterbi算法 来进行求解 。
Viterbi算法的基本思想是: 如果最佳路径经过一个点,那么起始点到这个点的路径一定是最短路径 , 否则用起始点到这点更短的一条路径代替这段,就会得到更短的路径,这显然是矛盾的;从起始点到结束点的路径,必然要经过第n个时刻,假如第n个时刻有k个状态,那么最终路径一定经过起始点到时刻n中k个状态里最短路径的点。
将时刻t隐藏状态为i所有可能的状态转移路径i1到i2的状态最大值记为
下面我们继续以上一节中的例子来对viterbi算法进行阐述:
小明不知道小红是哪里人 , 他只能通过小红每天的活动来推断那里的天气 。
假设连续三天 , 小红的活动依次为:“睡觉-打游戏-逛街”,我们将据此计算最有可能的天气情况 。
表示第一天为雨天能够使得第二天为晴天的概率最大(也就是说如果第二天是晴天在最短路径上的话 , 第一天是雨天也一定在最短路径上,参见上文中Viterbi算法的基本思想)
此时已经到了最后的时刻,我们开始回溯 。
其计算过程示意图如下图所示 。
)的路径 。
TF-IDF(词频-逆文本频率)是一种用以评估字词在文档中重要程度的统计方法 。它的核心思想是,如果某个词在一篇文章中出现的频率即TF高,并且在其他文档中出现的很少,则认为这个词有很好的类别区分能力 。
其中:
TextRank是一种用以关键词提取的算法,因为是基于PageRank的,所以先介绍PageRank 。
PageRank通过互联网中的超链接关系确定一个网页的排名,其公式是通过一种投票的思想来设计的:如果我们计算网页A的PageRank值,那么我们需要知道哪些网页链接到A , 即首先得到A的入链,然后通过入链给网页A进行投票来计算A的PR值 。其公式为:
其中:
d为阻尼系数,取值范围为0-1,代表从一定点指向其他任意点的概率,一般取值0.85 。
将上式多次迭代即可直到收敛即可得到结果 。
TextRank算法基于PageRank的思想,利用投票机制对文本中重要成分进行排序 。如果两个词在一个固定大小的窗口内共同出现过,则认为两个词之间存在连线 。
公式与PageRank的基本相同 。多次迭代直至收敛,即可得到结果 。
在jieba分词中,TextRank设定的词窗口大小为5 , 将公式1迭代10次的结果作为最终权重的结果,而不一定迭代至收敛 。
怎么是用python 语言 使用结巴分词 呢Python代码
#encoding=utf-8
import jieba
seg_list = jieba.cut("我来到北京清华大学",cut_all=True)
print "Full Mode:", "/ ".join(seg_list) #全模式
seg_list = jieba.cut("我来到北京清华大学",cut_all=False)
print "Default Mode:", "/ ".join(seg_list) #默认模式
seg_list = jieba.cut("他来到了网易杭研大厦")
print ", ".join(seg_list)
输出:
Full Mode: 我/ 来/ 来到/ 到/ 北/ 北京/ 京/ 清/ 清华/ 清华大学/ 华/ 华大/ 大/ 大学/ 学
Default Mode: 我/ 来到/ 北京/ 清华大学
他, 来到, 了, 网易, 杭研, 大厦(此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)
关于python结巴分词函数和python 结巴分词的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
- mongdb python pythonmongodb操作
- pytho操作mysql
- python 连接mongo python操作mongodb用户连接
- python爬取数据存入mongodb 爬取数据到mongodb
- 将数据存到数据库 python 将数据存到redis
- mongodb python教程 mongodb安装爬虫
- mongodb分表 mongodb分词
- 传智播客python百度云 传智播客百度云redis
- python类序列化 类序列化 MongoDB
- mongodb分区分片 mongodb 中文分词
