python中如何提取列表中的关键词_python中怎么提取关键词简单的关键词提取
⽂章内容关键词的提取分为三⼤步:
(1) 分词
(2) 去停⽤词
(3) 关键词提取
分词⽅法有很多,我这⾥就选择常⽤的结巴jieba分词;去停⽤词,我⽤了⼀个停⽤词表。具体代码如下:import jieba
import jieba.analyse
#第⼀步:分词,这⾥使⽤结巴分词全模式
text = '''新闻,也叫消息,是指报纸、电台、电视台、互联⽹经常使⽤的记录社会、传播信息、反映时代的⼀种⽂体,\
具有真实性、时效性、简洁性、可读性、准确性的特点。\
新闻概念有⼴义与狭义之分。\
就其⼴义⽽⾔,除了发表于报刊、⼴播、电视上的评论与专⽂外的常⽤⽂本都属于新闻之列,包括消息、通讯、特写、速写
(有的将速写纳⼊特写之列)等等。\
狭义的新闻则专指消息,消息是⽤概括的叙述⽅式,⽐较简明扼要的⽂字,迅速及时地报道国内外新近发⽣的、有价值的的事实。\
新闻也分公众新闻和⼩道新闻等。每则新闻在结构上,⼀般包括标题、导语、主体、背景和结语五部分。\
前三者是主要部分,后⼆者是辅助部分。写法上主要是叙述,有时兼有议论、描写、评论等。
'''
fenci_text = jieba.cut(text)
#print("/ ".join(fenci_text))
#第⼆步:去停⽤词
#这⾥是有⼀个⽂件存放要改的⽂章,⼀个⽂件存放停⽤表,然后和停⽤表⾥的词⽐较,⼀样的就删掉,最后把结果存放在⼀个⽂件中stopwords = {}.fromkeys([ line.rstrip() for line in open('') ])
final = ""
for word in fenci_text:
if word not in stopwords:
if (word != "。" and word != ",") :
final = final + " " + word
print(final)
#第三步:提取关键词
a=act_tags(text, topK = 5, withWeight = True, allowPOS = ())
b=act_tags(text, topK = 6,  allowPOS = ())
print(a)
print(b)
#text 为待提取的⽂本python怎么读的
# topK:返回⼏个 TF/IDF 权重最⼤的关键词,默认值为20。
# withWeight:是否⼀并返回关键词权重值,默认值为False。
# allowPOS:仅包括指定词性的词,默认值为空,即不进⾏筛选。
运⾏结果如下:新闻 也 叫 消息 是 指 报纸 、 电台 、 电视台 、 互联⽹ 经常 使⽤ 的 记录 社会 、 传播 信息 、 反映 时代 的 ⼀种 ⽂体具有 真实性 、 时效性 、 简洁性 、 可读性 、 准确性 的 特点 新闻 概念 有 ⼴义 与 狭义 之分 就 其 ⼴义 ⽽⾔ 除了 发表
于 报刊 、 ⼴播 、 电视 上 的 评论 与 专⽂ 外 的 常⽤ ⽂本 都 属于 新闻 之 列 包括 消息 、 通讯 、 特写 、 速写
( 有 的 将 速写 纳⼊ 特写 之 列 ) 等等 狭义 的 新闻 则 专指 消息 消息 是 ⽤ 概括 的 叙述 ⽅式 ⽐较 简明扼要 的 ⽂字
迅速 及时 地 报道 国内外 新近 发⽣ 的 、 有 价值 的 的 事实 新闻 也 分 公众 新闻 和 ⼩道 新闻 等 每则 新闻 在结构上
⼀般 包括 标题 、 导语 、 主体 、 背景 和 结语 五 部分 前 三者 是 主要 部分 后 ⼆者 是 辅助 部分 写法 上 主要 是 叙述
有时 兼有 议论 、 描写 、 评论 等
[('新闻', 0.4804811569680808), ('速写', 0.2121107125313131), ('消息', 0.20363211136040404),
('特写', 0.20023623445272729), ('狭义', 0.16168734917858588)]
['新闻', '速写', '消息', '特写', '狭义', '⼴义']
众多python培训视频,尽在python学习⽹,欢迎在线学习!