10.新闻语料分类

# -*- coding: utf-8 -*-
"""
Created on Mon Oct  8 16:41:10 2018

@author: asus
"""
#10 新闻语料分类

#10.1 获取新闻文章
#本章将构建一个按照主题为最新的新闻报道分组的系统。你可以运行几周(或更长时间)以了解这
#段时间新闻趋势的变化。
#http://www.reddit.com/login

#找不到

#跳过

#10.3 新闻语料聚类
#无监督学习,聚类
#k-means
from sklearn.cluster import KMeans
#TfidfVectorizer这个向量化工具根据词语出现在多少篇文档中,对词语计数进行加权。出现在
#较多文档中的词语权重较低
from sklearn.feature_extraction.text import TfidfVectorizer
#创建数据分析流水线
from sklearn.pipeline import Pipeline
n_clusters = 10
pipeline = Pipeline([('feature_extraction', TfidfVectorizer(max_df=0.4)),
                     ('clusterer', KMeans(n_cluster=n_clusters))])
#参数max_df设置了0.4,表示忽略出现在40%及以上的文档中的词语。
#训练算法,然后再用它来做预测。
pipeline.fit(documents)
labels = pipeline.predict(documents)
#我们可以使用Counter类来查看每个簇有多少数据点
from collections import Counter
c = Counter(labels)
for cluster_number in range(n_clusters):
    print("Cluster {} contains {} samples".format(cluster_number, 
          c[cluster_number]))

#103.2 评估结果
pipeline.named_steps['clusterer'].inertia_
#对于k-means算法,寻找新质点的标准是,最小化每个数据点到最近置信点的距离。这叫算法的惯
#性权重(inertia),它可以用来确定分多少簇合适。
#下面代码n_clusters依次取2到20之间的值,每取一个值,k-means算法运行10次,每次算法都
#记录惯性权重。
inertia_scores = []
n_cluster_values = list(range(2, 20))
for n_clusters in n_cluster_values:
    cur_inertia_scores = []
    X = TfidfVect
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值