Python怎么构建文本矩阵并聚类

Python如何构建文本矩阵并聚类
N个文本进行了分词,剔除停留词后得到M个词,如何利用Python构建N行M列的文本矩阵,接下来如何聚类
求大神解答,跪谢了
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

文档聚类一般都用到TF-IDF思想
我想你的N*M矩阵应该是说从N个文档中分词,过滤停留词后得到M种词
一开始N*M矩阵的元素[i][j]应该表示为:第i篇文档中词j出现的次数
然后对矩阵进行TF-IDF处理,再使用K-mean吧。(python k-mean肯定一大堆)
网上有一篇类似文章或许对你有帮助http://blog.chinaunix.net/uid-15588024-id-4118396.html
唉~NLP出身,现在都忘记了TF-IDF了。


非常感谢你的回答!
另外我还有一个关于文本挖掘算法的问题(不是如何实现的问题)需要请教,请问你愿意啊


Python怎么构建文本矩阵并聚类
你问吧~不行,我去抓我师兄


谢了!
一、聚类分为R型(变量聚类,即词语的聚类)和Q型(样本聚类,即文本直接归类)。我要做的文档聚类是将一条一条的评论进行分类,每条评论字数不多,最多的也就200字左右,大概有几万条,所以我觉得TF-IDF值计算出来是不是意义不大(因为矩阵特别稀疏),或者说用来聚类会导致很大的误差。
并且我可以预见的是,Q型聚类做出来的效果会比较差,分类不够明确而且线条很粗。
另外,能不能教教我如何用Python生成文本-词语矩阵,并且标准化,多谢了

二、能不能谈一下,如何用R型聚类并进行后续的处理,最后达到文本分类的目的,我想要知道思路(我现在没想出来)

三、看过一些关于PLSA算法和EM算法的文章,觉得那套理论比聚类更科学一些,不知道你怎么看


可能我很快回答不了你的问题。还需要细细回味一下。
但是我觉得你的问题是一个比较明显的短文本聚类问题,这个问题应该在国际上都是比较难的吧。
如果还涉及到中文,中文的相关处理又不能照抄英文短文本聚类的方法,相关资料更加少了。
我倒是建议你 多看一些短文本聚类相关的文章。

问题一:技术上python矩阵表示的话:你可以使用python包,如下:
from numpy import matrix
A = matrix( [[1,2,3],[11,12,13],[21,22,23]])
这样你需要额外规定化:行i表示文档编号i的文档,列j表示词j出现次数,A[i][j]表示在文档i中词j的出现频率
或者
如同那篇文章所说的采用dict表示法:A = [{'额外':1},{'每天':1,'回帖':1},......]表示整个文档集合。

问题二:如同这样的问题本质一样,短文本聚类是否还适合传统的分词,去除副词...等处理步骤,
如何选择合适的模型来表示这类问题,我觉得你还是参考一些这方面的文章,最好中文的。
比如现在很火的微博,也会有好多的人尝试对其中成干上万评论进行聚类。很多进行二类或者三类聚类/分类:支持-中立-反对。
论坛的评论应该很早以前就有研究聚类/分类.我觉得去那里参考会更好.如果不是特别面向指定目的的聚类,我觉得采用一些使用宽泛的方法就行了。感觉结果不会很好。

问题三:EM算法感觉像纯数学的东西,学术功底不够深,我也不好发表看法。
感觉这个问题的本质已经超出我的知识范畴。最简单文档聚类无非:分词-文本预处理[同义词之类]-文档与词计频矩阵表示-(TF-IDF预处理)-kmeans跑起来-输出结果.