标签: latent-semantic-analysis

R监督潜在Dirichlet分配包

我正在使用这个LDA包用于R.特别是我正在尝试进行监督潜在的dirichlet分配(slda).在链接包中,有一个slda.em功能.但令我困惑的是它要求alpha,eta和variance参数.据我了解,我认为这些参数在模型中是未知的.所以我的问题是,包的作者是否意味着这些是参数的初步猜测?如果是,似乎没有办法从运行结果中访问它们slda.em.

除了编码算法中的额外EM步骤之外,是否有建议的方法来猜测这些参数的合理值?

r dirichlet topic-modeling latent-semantic-analysis

13
推荐指数
1
解决办法
2469
查看次数

在潜在语义分析中,如何在截断奇异值后重新组合分解的矩阵?

我正在阅读Matrix分解和潜在语义索引(在线版本©2009 Cambridge UP)

我试图了解如何减少矩阵中的维数.第13页有一个例子,我试图用Python的numpy复制.

让我们将原始出现矩阵"a"和三个SVD(奇异值分解)分解为矩阵"U","S"和"V".

我遇到的麻烦是,在我将"S"中较小的奇异值归零后,当我使用numpy将"U","S"和"V"相乘时,答案并不像pdf中给出的那样.底部3行不是全部为零.有趣的是,当我只是乘以"S"和"V"时,我得到了正确的答案.

这有点令人惊讶,但乘以"S"和"V"实际上是Manning和Schutze的书"统计自然语言处理基础"所说的你必须要做的事情.但这不是pdf在第10页中所说的.

那么这里发生了什么?

nlp linear-algebra svd latent-semantic-analysis

6
推荐指数
1
解决办法
509
查看次数

结合 LSA/LSI 与朴素贝叶斯进行文档分类

我是gensim包和向量空间模型的新手,我不确定我应该如何处理我的 LSA 输出。

为了简要概述我的目标,我想使用主题建模来增强朴素贝叶斯分类器,以改进评论(正面或负面)的分类。这是我一直在阅读的一篇很棒的论文,它塑造了我的想法,但让我对实现仍然有些困惑。

我已经得到了朴素贝叶斯的工作代码——目前,我只是使用一元词袋,因为我的特征和标签要么是正面的,要么是负面的。

这是我的 gensim 代码

from pprint import pprint # pretty printer
import gensim as gs

# tutorial sample documents
docs = ["Human machine interface for lab abc computer applications",
              "A survey of user opinion of computer system response time",
              "The EPS user interface management system",
              "System and human system engineering testing of EPS",
              "Relation of user perceived response time to error measurement",
              "The generation of random binary unordered trees", …
Run Code Online (Sandbox Code Playgroud)

latent-semantic-indexing document-classification gensim latent-semantic-analysis naivebayes

5
推荐指数
1
解决办法
1128
查看次数

LSA - 特征选择

我有这个文件的SVD分解

SVD分解

我已阅读此页面,但我不明白如何计算文档分离的最佳功能.

我知道:

S x Vt 给出了文档和功能之间的关系

U x S 给出了术语和特征之间的关系

但最佳功能选择的关键是什么?

machine-learning svd latent-semantic-indexing feature-selection latent-semantic-analysis

3
推荐指数
1
解决办法
962
查看次数

Sklearn 潜在狄利克雷分配的实际工作原理是什么?

我有一些文本,我正在使用 sklearn LatentDirichletAllocation算法从文本中提取主题。

我已经使用 Keras 将文本转换为序列,我正在这样做:

from sklearn.decomposition import LatentDirichletAllocation

lda = LatentDirichletAllocation()
X_topics = lda.fit_transform(X)
Run Code Online (Sandbox Code Playgroud)

X:

print(X)
#  array([[0, 988, 233, 21, 42, 5436, ...],
   [0, 43, 6526, 21, 566, 762, 12, ...]])
Run Code Online (Sandbox Code Playgroud)

X_topics:

print(X_topics)
#  array([[1.24143852e-05, 1.23983890e-05, 1.24238815e-05, 2.08399432e-01,
    7.91563331e-01],
   [5.64976371e-01, 1.33304549e-05, 5.60003133e-03, 1.06638803e-01,
    3.22771464e-01]])
Run Code Online (Sandbox Code Playgroud)

我的问题是,从 返回的到底是什么fit_transform,我知道这应该是从文本中检测到的主要主题,但我无法将这些数字映射到索引,所以我无法看到这些序列的含义,我搜索失败对于实际发生的事情的解释,因此任何建议将不胜感激。

nlp python-3.x latent-semantic-analysis scikit-learn

2
推荐指数
1
解决办法
1499
查看次数