文本分析之TFIDF/LDA/Word2vec实践

(自己觉得以前写的不够好,20160721重新做了修改)

写在最前面的话,最好的学习材料是官方文档及API:

http://radimrehurek.com/gensim/tutorial.html

http://radimrehurek.com/gensim/apiref.html

以下内空有部分是出自官方文档。

使用TFIDF/LDA来对中文文档做主题分类,TFIDF scikit-learn也有实现,中文的先做分词处理,然后生成向量,根据向量去做主题聚类。

scikit-learn官方文档为:

http://scikit-learn.org/stable/modules/feature_extraction.html#text-feature-extraction

tfidf是这样一个意思,一个词的重要性和他在当前文档中出现的次数成正比,和所有文档中出现的次数成反比。

scikit-learn提供了tfidf的实现,我在这里分两种情况来说明,

1.根据原始语料生成生tfidf的vocabulary和权重

tfidf_vectorizer = TfidfVectorizer()
real_test_raw = ['丈夫他抢劫杀人罪了跑路的话要判多少年','丈夫借名买车离婚时能否要求分割','妻子离婚时丈夫欠的赌债是否要偿还?','夫妻一方下落不明 离婚请求获支持']
real_documents = []
for item_text in real_test_raw:
    item_str = word_process.word_cut(item_text)
    real_documents.append(item_str)

real_vec = tfidf_vectorizer.fit_transform(real_documents)

logging.info(tfidf_vectorizer.idf_) #特征对应的权重
logging.info(tfidf_vectorizer.get_feature_names())#特征词
logging.info(real_vec.toarray()) #上面四句话对应的向量表示

代码解释:

把对应的中文语料先分词,然后转换成向量表示的形式,logging对应的信息如下:

[ 1.22314355  1.91629073  1.91629073  1.91629073  1.91629073  1.91629073  1.91629073  1.91629073  1.91629073  1.91629073  1.22314355  1.91629073
  1.91629073  1.91629073  1.91629073  1.91629073]
['丈夫', '买车', '借名', '偿还', '分割', '夫妻', '妻子', '抢劫', '支持', '是否', '离婚', '能否', '要判', '要求', '请求', '赌债']
[[ 0.41137791  0.          0.          0.          0.          0.          0.  0.64450299  0.          0.          0.          0.          0.64450299      0.          0.          0.        ]
 [ 0.2646963   0.4146979   0.4146979   0.          0.4146979   0.          0.      0.          0.          0.          0.2646963   0.4146979   0.    0.4146979   0.          0.        ]
 [ 0.29088811  0.          0.          0.45573244  0.          0.      0.45573244  0.          0.          0.45573
  • 13
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值