$ pip install lda --user
示例
from __future__ import division, print_function
import numpy as np
import lda
import lda.datasets
# document-term matrix
X = lda.datasets.load_reuters()
print("type(X): {}".format(type(X)))
print("shape: {}\n".format(X.shape))
print(X[:5, :5])
'''输出:
type(X): <type 'numpy.ndarray'>
shape: (395L, 4258L)
[[ 1 0 1 0 0]
[ 7 0 2 0 0]
[ 0 0 0 1 10]
[ 6 0 1 0 0]
[ 0 0 0 2 14]]
'''
看这个题目很有兴趣,说两句mark一下学习。人在阅读时,不一定预设一个或者几个主题,而是根据词语涉及的场景或者类别逐步进入作者的思路,可能最后一句才发现那只是一段笑话。
LDA的不足我觉得主要有两个,一个是主题桶的数量,一个是词语无序的统计。
改进的思路,一个是把主题桶换成词典,就是把每个词可能的场景或者类别抽取出来分析,发散思维而不是在主题桶里选择。比如:苹果、价格、乔布斯。苹果可能的类别有水果、农业、经济、手机等,与后面的词语类别的重叠和统计,形成主题的神经网络,以后通过AI完善词典不断提高分析效果。
一个是增加对文本顺序的考虑,对剧情内容进行捕捉,通过对前后主题和场景的变化,达到分析剧情的目的。
只是一个思路,仅供参考。