python中的lda包怎么用

Python015

python中的lda包怎么用,第1张

安装

$ 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完善词典不断提高分析效果。

一个是增加对文本顺序的考虑,对剧情内容进行捕捉,通过对前后主题和场景的变化,达到分析剧情的目的。

只是一个思路,仅供参考。

for root, dirs, files in walk:

    for name in files:

        f = open(os.path.join(root, name), 'r')

    raw = f.read() #这里缩进对么?是原来就这样还是复制的时候出错了,这样些不就

    只读了最后一个文件么,而且如果目录是空的,这个就会有问题吧,f就是为未定义,或者

    使用上一次循环的文件,是不是这里引起的?

    word_list = list(jieba.cut(raw, cut_all = False))

    train_set.append(word_list)