文本分析--校园新闻:关键词获取

来源:互联网 发布:sql 日期变量 编辑:程序博客网 时间:2024/06/05 16:22

新闻数据:
      每行都是一个文档,并且已经进行了分词和停用词处理。
这里写图片描述

# -*-coding:utf-8-*-import unioutimport jieba.analysefrom sklearn import feature_extractionfrom sklearn.feature_extraction.text import TfidfTransformerfrom 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 keywordsdef 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()

结果:
这里写图片描述

0 0