Python的jieba分词及TF-IDF和TextRank 算法提取关键字
文章推薦指數: 80 %
基于TF-IDF(term frequency–inverse document frequency) 算法的关键词抽取. import jieba.analyse. jieba.analyse.extract_tags(sentence, ...
Python的jieba分词及TF-IDF和TextRank算法提取关键字
xw__cqx
于 2018-05-0116:19:18 发布
53073
收藏
115
文章标签:
jieba
TF-IDF
TextRank
参考文章:Github上的项目———jieba
中文分词
对于NLP(自然语言处理)来说,分词是一步重要的工作,市面上也有各种分词库,11款开放中文分词系统比较。
1.基于词典:基于字典、词库匹配的分词方法;(字符串匹配、机械分词法) 2.基于统计:基于词频度统计的分词方法; 3.基于规则:基于知识理解的分词方法。
第一类方法应用词典匹配、汉语词法或其它汉语语言知识进行分词,如:最大匹配法、最小分词方法等。
这类方法简单、分词效率较高,但汉语语言现象复杂丰富,词典的完备性、规则的一致性等问题使其难以适应开放的大规模文本的分词处理。
第二类基于统计的分词方法则基于字和词的统计信息,如把相邻字间的信息、词频及相应的共现信息等应用于分词,由于这些信息是通过调查真实语料而取得的,因而基于统计的分词方法具有较好的实用性。
jieba分词,完全开源,有集成的python库,简单易用。
jieba分词是基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG),动态规划查找最大概率路径,找出基于词频的最大切分组合
安装jieba
在安装有python3和pip的机子上,安装jieba库很简单,使用pip即可:
pipinstalljieba
1
jieba分词特性
支持三种分词模式:
精确模式,试图将句子最精确地切开,适合文本分析;全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
支持繁体分词支持自定义词典MIT授权协议
主要功能
分词
jieba.cut :方法接受三个输入参数:需要分词的字符串;cut_all参数用来控制是否采用全模式;HMM参数用来控制是否使用HMM模型jieba.cut_for_search :方法接受两个参数:需要分词的字符串;是否使用HMM模型。
该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细待分词的字符串可以是unicode或UTF-8字符串、GBK字符串。
注意:不建议直接输入GBK字符串,可能无法预料地错误解码成UTF-8jieba.cut以及jieba.cut_for_search返回的结构都是一个可迭代的 generator,可以使用for循环来获得分词后得到的每一个词语(unicode),或者用jieba.lcut 以及jieba.lcut_for_search 直接返回 listjieba.Tokenizer(dictionary=DEFAULT_DICT):新建自定义分词器,可用于同时使用不同词典。
jieba.dt为默认分词器,所有全局分词相关函数都是该分词器的映射。
#官方例程
#encoding=utf-8
importjieba
seg_list=jieba.cut("我来到北京清华大学",cut_all=True)
print("FullMode:"+"/".join(seg_list))#全模式
seg_list=jieba.cut("我来到北京清华大学",cut_all=False)
print("DefaultMode:"+"/".join(seg_list))#精确模式
seg_list=jieba.cut("他来到了网易杭研大厦")#默认是精确模式
print(",".join(seg_list))
seg_list=jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")#搜索引擎模式
print(",".join(seg_list))
12345678910111213141516
【全模式】:我/来到/北京/清华/清华大学/华大/大学 【精确模式】:我/来到/北京/清华大学 【新词识别】:他,来到,了,网易,杭研,大厦(此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了) 【搜索引擎模式】:小明,硕士,毕业,于,中国,科学,学院,科学院,中国科学院,计算,计算所,后,在,日本,京都,大学,日本京都大学,深造
关键词提取
基于TF-IDF(termfrequency–inversedocumentfrequency)算法的关键词抽取
importjieba.analyse
jieba.analyse.extract_tags(sentence,topK=20,withWeight=False,allowPOS=())
sentence :为待提取的文本topK:为返回几个TF/IDF权重最大的关键词,默认值为20withWeight :为是否一并返回关键词权重值,默认值为FalseallowPOS :仅包括指定词性的词,默认值为空,即不筛选
#基于TF-IDF算法的关键词抽取
importjieba
importjieba.analyse
sentence='全国港澳研究会会长徐泽在会上发言指出,学习系列重要讲话要深刻领会主席关于香港回归后的宪制基础和宪制秩序的论述,这是过去20年特别是中共十八大以来"一国两制"在香港实践取得成功的根本经验。
首先,要在夯实香港的宪制基础、巩固香港的宪制秩序上着力。
只有牢牢确立起"一国两制"的宪制秩序,才能保证"一国两制"实践不走样、不变形。
其次,要在完善基本法实施的制度和机制上用功。
中央直接行使的权力和特区高度自治权的结合是特区宪制秩序不可或缺的两个方面,同时必须切实建立以行政长官为核心的行政主导体制。
第三,要切实加强香港社会特别是针对公职人员和青少年的宪法、基本法宣传,牢固树立"一国"意识,坚守"一国"原则。
第四,要努力在全社会形成聚焦发展、抵制泛政治化的氛围和势能,全面准确理解和落实基本法有关经济事务的规定,使香港继续在国家发展中发挥独特作用并由此让最广大民众获得更实在的利益。
'
keywords=jieba.analyse.extract_tags(sentence,topK=20,withWeight=True,allowPOS=('n','nr','ns'))
#print(type(keywords))
#
jieba.analyse.TextRank()新建自定义TextRank实例
基本思想:
将待抽取关键词的文本进行分词以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图计算图中节点的PageRank,注意是无向带权图
#基于TextRank算法的关键词抽取
keywords=jieba.analyse.extract_tags(sentence,topK=20,withWeight=True,allowPOS=('n','nr','ns'))
#type(keywords)
#
jieba.posseg.dt为默认词性标注分词器。
标注句子分词后每个词的词性,采用和ictclas兼容的标记法。
#官方例程
importjieba.possegaspseg
words=pseg.cut("我爱北京天安门")
#words类别为:generator
forword,flaginwords:
print('%s%s'%(word,flag))
12345678
运行结果:
我r 爱v 北京ns 天安门ns
词性对照表
名词(1个一类,7个二类,5个三类) 名词分为以下子类: n名词 nr人名 nr1汉语姓氏 nr2汉语名字 nrj日语人名 nrf音译人名 ns地名 nsf音译地名 nt机构团体名 nz其它专名 nl名词性惯用语 ng名词性语素时间词(1个一类,1个二类) t时间词 tg时间词性语素处所词(1个一类) s处所词方位词(1个一类) f方位词动词(1个一类,9个二类) v动词 vd副动词 vn名动词 vshi动词“是” vyou动词“有” vf趋向动词 vx形式动词 vi不及物动词(内动词) vl动词性惯用语 vg动词性语素形容词(1个一类,4个二类) a形容词 ad副形词 an名形词 ag形容词性语素 al形容词性惯用语区别词(1个一类,2个二类) b区别词 bl区别词性惯用语状态词(1个一类) z状态词代词(1个一类,4个二类,6个三类) r代词 rr人称代词 rz指示代词 rzt时间指示代词 rzs处所指示代词 rzv谓词性指示代词 ry疑问代词 ryt时间疑问代词 rys处所疑问代词 ryv谓词性疑问代词 rg代词性语素数词(1个一类,1个二类) m数词 mq数量词量词(1个一类,2个二类) q量词 qv动量词 qt时量词副词(1个一类) d副词介词(1个一类,2个二类) p介词 pba介词“把” pbei介词“被”连词(1个一类,1个二类) c连词 cc并列连词助词(1个一类,15个二类) u助词 uzhe着 ule了喽 uguo过 ude1的底 ude2地 ude3得 usuo所 udeng等等等云云 uyy一样一般似的般 udh的话 uls来讲来说而言说来 uzhi之 ulian连(“连小学生都会”)叹词(1个一类) e叹词语气词(1个一类) y语气词(deleteyg)拟声词(1个一类) o拟声词前缀(1个一类) h前缀后缀(1个一类) k后缀字符串(1个一类,2个二类) x字符串 xx非语素字 xu网址URL标点符号(1个一类,16个二类) w标点符号 wkz左括号,全角:(〔[{《【〖〈半角:([{ wyz左引号,全角:“‘『 wyy右引号,全角:”’』 wj句号,全角:。
ww问号,全角:?半角:? wt叹号,全角:!半角:! wd逗号,全角:,半角:, wf分号,全角:;半角:; wn顿号,全角:、 wm冒号,全角::半角:: ws省略号,全角:……… wp破折号,全角:——--——-半角:——- wb百分号千分号,全角:%‰半角:% wh单位符号,全角:¥$£°℃半角:$
转自https://blog.csdn.net/sinat_34022298/article/details/75943272 侵请联删
xw__cqx
关注
关注
23
点赞
踩
2
评论
115
收藏
扫一扫,分享内容
点击复制链接
轻松学NLP--使用Jieba工具实现TF-IDF和TextRank文本关键字提取(附代码)
ccaoshangfei的博客
02-16
1305
简单快速实现文本关键词提取
python使用jieba实现tf-idf
m0_38071676的博客
05-16
1334
具体代码:
在这里插入代码片
评论 2
您还未登录,请先
登录
后发表或查看评论
【NLP学习笔记】使用jieba实现关键词提取
虚幻社区
08-25
972
1关键词提取
jieba提供了两种关键词提取方法,分别基于TF-IDF算法和TextRank算法。
1.1基于TF-IDF算法的关键词提取
TF-IDF(TermFrequency-InverseDocumentFrequency,词频-逆文件频率)是一种统计方法,用以评估一个词语对于一个文件集或一个语料库中的一份文件的重要程度,其原理可概括为:
一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能够代表该文章
计算公式:TF-IDF=TF*IDF,其中:
jieba分词textrank算法
最新发布
Claire_Mk的博客
12-25
156
2021SC@SDUSC
TextRank是一种用以关键词提取的算法,因为是基于PageRank的,所以先介绍PageRank。
PageRank通过互联网中的超链接关系确定一个网页的排名,其公式是通过一种投票的思想来设计的:如果我们计算网页A的PageRank值,那么我们需要知道哪些网页链接到A,即首先得到A的入链,然后通过入链给网页A进行投票来计算A的PR值。
这样设计可以保证达到这样一个效果:当某些高质量的网页指向网页A的时候,那么网页A的PR值会因为这些高质量的投票而变大,而网页A被较少网页指向或被一
NLP基础2-jieba中文处理
u014168855的博客
05-06
635
1.基本分词函数与用法
jieba.cut以及jieba.cut_for_search返回的结构都是一个可迭代的generator,可以使用for循环来获得分词后得到的每一个词语(unicode)
jieba.cut方法接受三个输入参数:
需要分词的字符串
cut_all参数用来控制是否采用全模式
HMM参数用来控制是否使用HMM模型
jieba.cut_for_search...
使用jieba进行关键字词提取(基于Textrank算法)
btod49的博客
03-12
4041
基于Textrank的关键词提取
函数:jieba.analyse.textrank(string,topK=20,withWeight=True,allowPOS=())
string:待处理语句
topK:关键字的个数,默认20
withWeight:是否返回权重值,默认false
allowPOS:是否仅返回指定类型,默认为空
importjieba.analyse
sentenc...
jieba分词库——基于TextRank算法的关键词抽取
ziupan的博客
03-23
450
基于TextRank算法的关键词抽取
jieba.analyse.textrank(sentence,topK=20,withWeight=False,allowPOS=(‘ns’,‘n’,‘vn’,‘v’))直接使用,接口相同,注意默认过滤词性。
jieba.analyse.TextRank()新建自定义TextRank实例
基本思想:
将待抽取关键词的文本进行分词
以固定窗口大小(默认为5,通过span属性调整),词之间的共现关系,构建图
计算图中节点的PageR
中文自然语言处理--jieba基于TF-IDF算法进行中文文本中的关键词提取
糯米君的博客
03-10
883
在信息检索理论中,TF-IDF是TermFrequency-InverseDocumentFrequency的简写。
TF-IDF是一种数值统计,用于反映一个词对于语料中某篇文档的重要性。
在信息检索和文本挖掘领域,它经常用于因子加权。
TF-IDF的主要思想就是:如果某个词在一篇文档中出现的频率高,也即TF高;并且在语料库中其他文档中很少出现,即DF低,也即IDF高,则认为这个词具有很好的类别区分能力。
#-*-coding:utf-8-*-
importjieba.an
jiebatextrank关键词提取python_jieba分词使用
weixin_39910824的博客
11-29
102
jieba基于python坏境下最好(最方便)的中文分词。
支持3种分词模式。
精确模式,试图将句子最精确地切开,适合文本分析;全模式,把句子中所有的可以成词的短语都扫描出来,速度非常快,但是不能解决歧义;搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合使用搜索引擎分词。
全模式/精准模式jieba.cut/jieba.lcutjiaba.lcut和jieba.cut的区别:jieb...
TextRank和python代码的实现
for_yayun的博客
09-28
1435
TextRank
类似于PageRank的思想,将文本中的语法单元视作图中的节点,如果两个语法单元存在一定语法关系(例如共现),则这两个语法单元在图中就会有一条边相互连接,通过一定的迭代次数,最终不同的节点会有不同的权重,权重高的语法单元可以作为关键词。
参考论文:RadaMihalcea的《TextRank:BringOrderintotexts》。
节点的权重不仅依赖于它的入度结点,还依赖于这些入度结点的权重,入度结点越多,入度结点的权重越大,说明这个结点的权重越高;图中任两点Vi,.
jieba分词详解
zdb的博客
12-15
3555
jieba分词器
1.jieba分词器的分词模式说明
jieba分词器提供4种分词模式,并且支持简体/繁体分词、自定义词典、关键词提取、词性标注。
(1)精确模式
该模式会将句子最精确地切分开,适合在文本分析时使用。
(2)全模式
该模式会将句子中所有成词的词语都扫描出来,速度也非常快,缺点是不能解决歧义问题,有歧义的词语也会被扫描出来。
(3)搜索引擎模式
该模式会在精确模式的基础上对长词再进行切分,将更短的词语切分出来。
在搜索引擎中,要求输入词语的一部分也能检索到整个词语相关的文档,所以该模式适用于搜
【推荐系统】基于TextRank算法+TF-IDF算法提取关键词
wssjdysf1的专栏
01-25
221
TextRank代码实现
packageprogram
importalgorithm.TextRank
importorg.apache.spark.sql.SaveMode
importutil.{SegmentWordUtil,SparkSessionBase}
importscala.collection.mutable
importscala.collection.mutable.ListBuffer
objectComputeTextR...
jieba:关键词抽取(TD-IDF、TextRank)
qqMiSa的博客
02-25
1311
目录
TF-IDF关键词抽取
TextRank关键词抽取
jieba实现了两种关键词抽取算法,分别是TF-IDF和TextRank。
TF-IDF关键词抽取
TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
实际应用中主要是将TF(词频,词t在文档d中出现的频率)*IDF(逆文档率,...
【python】使用jieba中的textrank提取文本/文章关键词,超简单!
HelenLee
03-03
1695
使用jieba中的textrank提取文本关键词:
姐妹篇:https://blog.csdn.net/weixin_43289135/article/details/104628816
importjieba.analyse
text='城市绿化是栽种植物以改善城市环境的活动。
城市绿化作为城市生态系统中的还原组织城市生态系统具有受到外来干扰和破坏而恢复原状的能力,就是通常所说的...
TextRank算法原理简析、代码实现
GAOYUAN19941118的博客
05-23
6069
前言—PageRank
注:PageRank原理另行查询
在介绍TextRank前,我想先给大家介绍下PageRank,实质上个人认为可以把TextRank当做PageRank2.0。
谷歌的两位创始人的佩奇和布林,借鉴了学术界评判学术论文重要性的通用方法,“那就是看论文的引用次数”。
由此想到网页的重要性也可以根据这种方法来评价。
于是PageRank的核心思想就诞生了:
如果个网页...
Python文本处理工具——TextRank
热门推荐
搬砖小工053
06-19
1万+
背景TextRank是用与从文本中提取关键词的算法,它采用了PageRank算法,原始的论文在这里。
Github地址。
这个工具可以直观的把文本中出现的关键词画在一张图片中,用户可以在图中发现中心词。
这个工具使用POS(part-of-speechtagging:词性标注)然后抽取名词,这种方法对于关键词提取独具特色。
注意:
先安装NLTK再使用这个工具。
NLTK版本要求3.2.1以上。
jieba下TextRank实现
z2539329562的博客
03-29
2015
TextRank实现步骤如下:#这一段是抄了别人的
(1)把给定的文本按照完整的句子进行分割;
(2)对每个句子进行分词和词性标注,过滤停用词,只保留特定词性;
(3)构建候选关键词图G=(V,E),首先生成关键词集((2)生成),然后采用共现关系构造两点之间的边,两个节点之间边
仅在对应词汇长度为K的窗口中出现,K表示窗口大小;
(4)迭代传播各节点的权重,直至收敛
(5...
python结巴分词(jieba)详解
lukabruce的博客
09-03
1万+
【转自:https://www.cnblogs.com/jackchen-Net/p/8207009.html】
“结巴”中文分词:做最好的Python中文分词组件
"Jieba"(Chinesefor"tostutter")Chinesetextsegmentation:builttobethebestPythonChinesewordsegmentati...
jieba实现基于tf-idf算法的关键词提取(附完整代码)
qq_45402214的博客
11-10
3266
@基于itf-idf算法的关键词提取
提出问题
假设我们现在有一篇文章,需要提取这篇文章的关键词,要怎样才能通过计算机实现呢?
TF-IDF算法介绍
一篇文章的关键词基本都是能体现文章的内容,而且几乎是在文章中频繁出现的词,统计文章中各个词出现的次数,出现最多的则是这篇文章的关键词了,那具体是怎么统计呢,这里有一个专业术语叫词频(termfrequency),简称TF。
计算公式如下:
TF(词频)=某次在文章中出现的次数/文章中的总词数
举例子:我正在学习人工智能,并且我一定会成功的。
**通过j
jieba-基于TextRank关键词提取的实现
木东的博客
11-24
474
对每个句子进行分词和词性标注处理
过滤掉除指定词性外的其他单词,过滤掉出现在停用词表的单词,过滤掉长度小于2的单词
将剩下的单词中循环选择一个单词,将其与其后面4个单词分别组合成4条边。
例如:[‘有’,‘媒体’,‘曝光’,‘高圆圆’,‘和’,‘赵又廷’,‘现身’,‘台北’,‘桃园’,‘机场’,‘的’,‘照片’]对于‘媒体‘这个单词,就有(‘媒体’,‘曝光’)、(‘媒体’,‘圆’)、(‘媒体’,‘和’)、(‘媒体’,‘赵又廷’)4条边,且每条边权值为1,当这条边在之后再次出现时,权值
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
xw__cqx
CSDN认证博客专家
CSDN认证企业博客
码龄6年
暂无认证
6
原创
20万+
周排名
92万+
总排名
8万+
访问
等级
485
积分
9
粉丝
32
获赞
7
评论
142
收藏
私信
关注
分类专栏
电脑应用
1篇
linux
1篇
ss
ubuntu
1篇
最新评论
欢迎使用CSDN-markdown编辑器,改一下csdn的编辑器选择即可
tangjiaxi0729:
感谢分享,正好再找这些资料呢,及时雨啊
解决nodejs安装不了mysql模块
小白程序小夏:
貌似可以,下载完之后显示的是对号
Python的jieba分词及TF-IDF和TextRank算法提取关键字
oldlybaby:
当时我也看了半天,怎么两种算法代码是一样的。
Python的jieba分词及TF-IDF和TextRank算法提取关键字
xiaomengxia2008:
#转载文章也需要验证一下转载的内容是否真正正确
#基于TextRank算法的关键词抽取说明和代码对应错误,代码里面写错了,应该是
keywords=jieba.analyse.textrank(sentence,topK=20,withWeight=True,allowPOS=('n','nr','ns'))
foriteminkeywords:
print(item[0],item[1])
[code=python]
[/code]
解决nodejs安装不了mysql模块
可汗大点兵:
不行什么办法都无效
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
ModuleNotFoundError:Nomodulenamed‘_lzma‘
UbuntuTXT等文件乱码
ubuntu百度云下载
2021年1篇
2019年4篇
2018年18篇
目录
目录
分类专栏
电脑应用
1篇
linux
1篇
ss
ubuntu
1篇
目录
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1基於jieba分詞的TF-IDF提取關鍵詞算法中 - 台部落
TF-IDF的概念TF(Term Frequency,縮寫爲TF)也就是詞頻,即一個詞在文中出現的次數,統計出來就是詞頻TF,顯而易見,一個詞在文章中出現很多次, ...
- 2提取關鍵字 - iT 邦幫忙
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=()). sentence為待提取的文本; to...
- 3關鍵詞提取之TF-IDF - jieba源碼研讀筆記(十七) - 代码先锋网
在前篇介紹了 jieba/analyse/tfidf.py 的架構,本篇將介紹該檔案中的 TFIDF 類別。 TFIDF 類別的 extract_tags 函數負責實現核心算法。透過 allow...
- 4jieba 基于TF-IDF 算法的关键词提取| 计算机科学论坛 - LearnKu
import jieba.analyse jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())...
- 5使用python的jieba库中的TF-IDF算法进行关键词提取 - 知乎专栏
目录: 1.什么是关键词? 2.TF-IDF关键词提取算法3.算法实现1.什么是关键词?关键词是指能反映文本主题或者意思的词语,如论文中的Keyword字段。