python用jieba模块分词实现关键词提取

0?wx_fmt=gif

         人工智能大数据与深度学习  公众号: weic2c



每个txt文件夹里面存放一个用户的全部微博数据,在result_all文件里面存放了全部用户的微博数据,这里实现读取每个用户的数据并为每个用户提取30个关键字。将为每个用户提取出来的关键字存放在同一个文件topic_all.txt文件里面。

  需要关注的地方:


   1.读取一个用户的全部数据时,注意区分read(), readline()和readlines()的区别,read()读取文件全部内容并存在一个字符串变量中,readline()每次只读取文件里面的一行,readlines()返回一个行的列表。


   2.注意将一个列表以字符串表达的写法:','.join(list).例如:list = [1,2,3],则可输出1,2,3


代码如下:

python用jieba模块分词实现关键词提取_第1张图片


文本分析--关键词获取(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权重:
          1CountVectorizer 构建词频矩阵
          2TfidfTransformer 构建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()

搜索公众号添加: weic2c   

人工智能大数据与深度学习

640?wx_fmt=jpeg
长按图片,识别二维码,点关注


你可能感兴趣的:(python用jieba模块分词实现关键词提取)