我正在使用 LDAvis 包的 createJSON() 函数,而我的 topicmodel 用于 2 个主题并收到此错误
Error in stats::cmdscale(dist.mat, k = 2) : 'k' must be in {1, 2, .. n - 1}
Run Code Online (Sandbox Code Playgroud)
然后我使用此处给出的可重现示例进行了测试,将 K=2 并保持所有内容相同,并在 createJSON() 中再次遇到此错误。
在这里查看 createJSON() 的源代码,问题出在函数 jsPCA() 中。在 jsPCA() 中,当 K=2 时,dist.mat 是一个单一值,会在行中抛出错误
pca.fit <- stats::cmdscale(dist.mat, k = 2)
Run Code Online (Sandbox Code Playgroud)
有什么建议如何克服这个错误吗?
在 MALLET 主题建模中,该--output-topic-keys [FILENAME]选项在每个主题旁边输出一个参数,该参数在 MALLET 站点的教程中称为该主题的“Dirichlet 参数”。
我想知道这个参数代表什么?是吗 ?在 LDA 模型中?如果不是,它是什么,它的意义和用途是什么。
我注意到当我在生成主题模型时不使用参数优化选项时,此参数在 2.0.7 版本中与在 2.0.8 版本中不同。我想知道为什么会发生这种差异。
这是 2.0.7 版输出
和 2.0.8
我知道每次运行的输出都不同,但我只关心这个参数。
我正在研究一种非英语的语言,并且我从不同来源收集了数据。我已经完成了预处理,如标点删除、停用词删除和标记化。现在我想提取特定领域的词典。假设我有与体育、娱乐等相关的数据,我想提取与这些特定领域相关的词,如板球等,并将它们放在密切相关的主题中。我试图为此使用 lda,但我没有得到正确的集群。同样在作为一个主题一部分的单词的集群中,它也出现在其他主题中。
我怎样才能改善我的结果?
# URDU STOP WORDS REMOVAL
doc_clean = []
stopwords_corpus = UrduCorpusReader('./data', ['stopwords-ur.txt'])
stopwords = stopwords_corpus.words()
# print(stopwords)
for infile in (wordlists.fileids()):
words = wordlists.words(infile)
#print(words)
finalized_words = remove_urdu_stopwords(stopwords, words)
doc = doc_clean.append(finalized_words)
print("\n==== WITHOUT STOPWORDS ===========\n")
print(finalized_words)
# making dictionary and corpus
dictionary = corpora.Dictionary(doc_clean)
# convert tokenized documents into a document-term matrix
matrx= [dictionary.doc2bow(text) for text in doc_clean]
# generate LDA model
lda = models.ldamodel.LdaModel(corpus=matrx, id2word=dictionary, num_topics=5, passes=10)
for top in lda.print_topics():
print("\n===topics from files===\n")
print …Run Code Online (Sandbox Code Playgroud) 我正在寻找 LDA 和 NTM 之间的区别。您将在 NTM 上使用 LDA 的一些用例是什么?
根据 AWS 文档:
LDA:Amazon SageMaker 潜在狄利克雷分配 (LDA) 算法是一种无监督学习算法,它试图将一组观察结果描述为不同类别的混合。LDA 最常用于发现文本语料库中文档共享的用户指定数量的主题。
虽然您可以同时使用 Amazon SageMaker NTM 和 LDA 算法进行主题建模,但它们是不同的算法,预计会对相同的输入数据产生不同的结果。
我读了这个问题(相干分数 0.4 是好还是坏?),发现相干分数(u_mass)是从 -14 到 14。但是当我做实验时,我得到的 u_mass 分数为 -18,c_v 分数为 0.67 。我想知道我的 u_mass 分数如何超出范围 (-14, 14)?
更新:我使用gensim库并扫描了从2到50的主题数量。对于u_mass,它从0开始到最低的负点并返回一点,就像c_v的颠倒版本。
usinggensim.models.LdaMallet和 和有gensim.models.LdaModel什么不一样?我注意到参数并不完全相同,想知道什么时候应该使用一个而不是另一个?
什么是短期非结构化文档中主题定位的最佳模型,例如.短信或Twitter消息?潜在的Dirichlet分配?
nlp information-retrieval keyword information-extraction topic-modeling
我正在开发一个需要应用主题模型LDA的项目.因为在我的情况下每个文件都很短,我必须使用Labeled LDA.我对这方面的知识不多,我需要做的就是将LLDA应用于我的数据.
在网上搜索后,我在Stanford TMT上找到了LLDA实施.我从" 标记LDA模型培训"一节中了解到:我应该在培训之前标记每个输入文档.我误会了什么吗?
如果我的理解是正确的,这将涉及标签文件的太多工作.相反,我可以提供单独的主题列表,并在没有标签的情况下训练文档吗?
我一直在关注如何在R中使用mallet创建主题模型的教程.我的文本文件每行有1个句子.它看起来像这样,有大约50个句子.
Thank you again and have a good day :).
This is an apple.
This is awesome!
LOL!
i need 2.
.
.
.
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
Sys.setenv(NOAWT=TRUE)
#setup the workspace
# Set working directory
dir<-"/Users/jxn"
Dir <- "~/Desktop/Chat/malletR/text" # adjust to suit
require(mallet)
documents1 <- mallet.read.dir(Dir)
View(documents1)
stoplist1<-mallet.read.dir("~/Desktop/Chat/malletR/stoplists")
View(stoplist1)
**mallet.instances <- mallet.import(documents1$id, documents1$text, "~/Desktop/Chat/malletR/stoplists/en.txt", token.regexp ="\\p{L}[\\p{L}\\p{P}]+\\p{L}")**
Run Code Online (Sandbox Code Playgroud)
除了代码的最后一行,一切都有效
**`**mallet.instances <- mallet.import(documents1$id, documents1$text, "~/Desktop/Chat/malletR/stoplists/en.txt", token.regexp ="\\p{L}[\\p{L}\\p{P}]+\\p{L}")**`**
Run Code Online (Sandbox Code Playgroud)
我一直收到这个错误:
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
java.lang.NoSuchMethodException: No suitable method for the given parameters
Run Code Online (Sandbox Code Playgroud)
根据包,这是函数应该是如何: …
我想在9GB语料库上进行LDA主题建模.计划是使用MALLET训练LDA模型1000次迭代,包含100个主题,在200次迭代老化期后每10次迭代优化超参数.我正在使用64位Win8,计算机具有16GB RAM,英特尔®酷睿™i7-4720HQ处理器.有谁能告诉我我应该花多长时间拍这个?我们在谈论几小时或几天?这是我在这里提出的第一个问题,所以如果我跳过一些重要信息,请告诉我.