扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
python中怎么利用jieba模块提取关键词,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
站在用户的角度思考问题,与客户深入沟通,找到伊犁网站设计与伊犁网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、网站建设、外贸网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名、网站空间、企业邮箱。业务覆盖伊犁地区。
1.读取一个用户的全部数据时,注意区分read(), readline()和readlines()的区别,read()读取文件全部内容并存在一个字符串变量中,readline()每次只读取文件里面的一行,readlines()返回一个行的列表。
2.注意将一个列表以字符串表达的写法:','.join(list).例如:list = [1,2,3],则可输出1,2,3
代码如下:
文本分析--关键词获取(jieba分词器,TF-IDF模型)
关键词获取可以通过两种方式来获取:
1、在使用jieba分词对文本进行处理之后,可以通过统计词频来获取关键词:jieba.analyse.extract_tags(news, topK=10),获取词频在前10的作为关键词。
2、使用TF-IDF权重来进行关键词获取,首先需要对文本构建词频矩阵,其次才能使用向量求TF-IDF值。
# -*-coding:utf-8-*-
import uniout # 编码格式,解决中文输出乱码问题
import jieba.analyse
from sklearn import feature_extraction
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
"""
TF-IDF权重:
1、CountVectorizer 构建词频矩阵
2、TfidfTransformer 构建tfidf权值计算
3、文本的关键字
4、对应的tfidf矩阵
"""
# 读取文件
def read_news():
news = open('news.txt').read()
return news
# jieba分词器通过词频获取关键词
def jieba_keywords(news):
keywords = jieba.analyse.extract_tags(news, topK=10)
print keywords
def tfidf_keywords():
# 00、读取文件,一行就是一个文档,将所有文档输出到一个list中
corpus = []
for line in open('news.txt', 'r').readlines():
corpus.append(line)
# 01、构建词频矩阵,将文本中的词语转换成词频矩阵
vectorizer = CountVectorizer()
# a[i][j]:表示j词在第i个文本中的词频
X = vectorizer.fit_transform(corpus)
print X # 词频矩阵
# 02、构建TFIDF权值
transformer = TfidfTransformer()
# 计算tfidf值
tfidf = transformer.fit_transform(X)
# 03、获取词袋模型中的关键词
word = vectorizer.get_feature_names()
# tfidf矩阵
weight = tfidf.toarray()
# 打印特征文本
print len(word)
for j in range(len(word)):
print word[j]
# 打印权重
for i in range(len(weight)):
for j in range(len(word)):
print weight[i][j]
# print '\n'
if __name__ == '__main__':
news = read_news()
jieba_keywords(news)
tfidf_keywords()
看完上述内容,你们掌握python中怎么利用jieba模块提取关键词的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流