简单的使用PYTHON对中文文本聚类并预测

栏目: 编程工具 · 发布时间: 7年前

内容简介:简单的使用PYTHON对中文文本聚类并预测

前言

这篇文章会接着上篇分词文章讲,内容也是比较简单,并没有做太多的深究,主要是为了让自己尽快熟悉 PYTHON 的语言环境,至于算法之类的讲解这里就不多说了

工具:pycharm

环境:python2.7

在这里我导入习惯常用的包

# -*- coding: UTF-8 -*-
import sys
import os
from sklearn.datasets.base import Bunch
from sklearn import feature_extraction
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import TfidfVectorizer
import cPickle  as pickle
import scipy as sp
from numpy import *

设置一下我们的中文语言环境

#设中文语言环境

reload(sys)
sys.setdefaultencoding("utf-8")

编写一个读文文本的函数

def readfile(path):
    fp = open(path, "rb")
    content = fp.read()
    fp.close()
    return content

这里我们需要构建一下我们的词空间永久化对象,这个是为了方便我们保存 对象信息到文件里面去,当然,这里不做太多的操作,只是为了方便读取

tfidfspase = Bunch(target_name=[], label=[], filenames=[], contents=[],tdm=[],vocabulary={})

这里读取一下停用词表

stopword=r'E:\python_txt/stoplist.txt'

stplist=readfile(stopword).splitlines()

接来下是读取一下我们以前就已经分词好的文本

seg_path=r'E:\python_txt\answer\test/'
catelist=os.listdir(seg_path)

#将各个分类目录保存到词空间对象中
tfidfspase.target_name.extend(catelist)#循环读取分词后的文本,并保存到

print tfidfspase.target_name

简单的使用PYTHON对中文文本聚类并预测

#循环读取分词后的文本,并保存列表中
for mydir in catelist:

    class_path=seg_path+mydir+'/'

    file_list = os.listdir(class_path)

    for file_path in file_list:

        full_name=class_path+file_path

        tfidfspase.label.append(mydir)  # 保存文件分类标签

        tfidfspase.filenames.append(full_name)  # 保存当前文件的文件路径

        tfidfspase.contents.append(readfile(full_name).strip())

开始计算 TF-IDF 权值

这时候我们的词空间持久化对象就已经构建好了,接下来就是使用sklearn中的TfidfVectorizer初始化词空间了 ,这里的停用词参数就是我们上面加载的数据,顺便打印一下我们才词频向量

vectorizer=TfidfVectorizer(stop_words=stplist,sublinear_tf=True)

transformer=TfidfTransformer()#该类会统计每个词语的IF-IDF权值

#文本转为词频矩阵,单独保存字典文件

tfidfspase.tdm=vectorizer.fit_transform(tfidfspase.contents)

tfidfspase.vocabulary=vectorizer.vocabulary

um_sample,num_features=tfidfspase.tdm.shape

print "sample:%d,features: %d"%(num_sample,num_features)

简单的使用PYTHON对中文文本聚类并预测

这里我们总共有862个文本,35万多个属性;

接下来就是就是我们的建模了,建模的这个步骤写的很简单,大神们就稍微看一下笑话吧,本人也在学习中;

这里设置分的簇的大小为5,因为目录分类就为5类,提前知道的

#构建K-MEAN模型
k=5
from sklearn.cluster import KMeans
km=KMeans(n_clusters=k,init="random",n_init=1,verbose=1)
km.fit(tfidfspase.tdm)

接下来我们对一个文档进行测试,这个文档是我们已经提前为它分好了词的。

#测试模型效果
test_path=r"E:\python_txt\answer\test\C7-History/C7-History001.txt"
test_content=[]
test_content.append(readfile(test_path).strip())
test_tfidf =vectorizer.transform(test_content)

print test_tfidf.shape

简单的使用PYTHON对中文文本聚类并预测

向量已经成功的生成,接下来就是我们给这个文档进行分类了,并打印类别

new_label=km.predict(test_tfidf)[0]
print "new_label:",new_label

OK!建模就讲到了这里,有兴趣的东西可以深究下去;

参考书籍

《机器学习系统设计》

简单的使用PYTHON对中文文本聚类并预测

本文由夏尔康 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。

转载、引用前需联系作者,并署名作者且注明文章出处。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。


以上所述就是小编给大家介绍的《简单的使用PYTHON对中文文本聚类并预测》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算几何

计算几何

邓俊辉 / 清华大学出版社 / 2009-6 / 49.00元

《计算几何:算法与应用(第3版)》的前4章对几何算法进行了讨论,包括几何求交、三角剖分、线性规划等,其中涉及的随机算法也是《计算几何:算法与应用(第3版)》的一个鲜明特点。第5章至第10章介绍了多种几何结构,包括几何查找、kd树、区域树、梯形图、Voronoi图、排列、Delaunay三角剖分、区间树、优先查找树以及线段树等。第11章至第16章结合实际问题,继续讨论了若干几何算法及其数据结构,包括......一起来看看 《计算几何》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具