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

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

# -*-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()

结果:
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值