我使用mallet创建了一个并行主题模型.
我想为每个文档获得顶级单词.
为此,我试图获得一个单词主题概率矩阵.
我怎么做到这一点?
我正在使用mallet主题建模示例代码,虽然它运行正常,但我想知道这个语句的参数究竟是什么意思?
instances.addThruPipe(new CsvIterator(new FileReader(dataFile),
"(\\w+)\\s+(\\w+)\\s+(.*)",
3, 2, 1) // (data, target, name) field indices
);
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
我知道每次运行的输出都不同,但我只关心这个参数。
我有一个csv文件,其格式如下
productname,产品评论
现在使用mallet我必须训练分类器,这样如果测试数据集作为输入包含产品评论,它应该告诉我特定评论属于哪个产品
mallet java api帮助将不胜感激
我一直在关注如何在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处理器.有谁能告诉我我应该花多长时间拍这个?我们在谈论几小时或几天?这是我在这里提出的第一个问题,所以如果我跳过一些重要信息,请告诉我.
我正在通过 Java 使用 Mallet,但我不知道如何根据我训练过的现有主题模型评估新文档。
我生成模型的初始代码与Mallett Developers Guide for Topic Modeling中的代码非常相似,之后我只是将模型保存为 Java 对象。在稍后的过程中,我从文件中重新加载该 Java 对象,通过添加新实例.addInstances()
,然后仅根据原始训练集中的主题评估这些新实例。
这个 stats.SE 线程提供了一些高级建议,但我看不到如何将它们应用到 Mallet 框架中。
非常感谢任何帮助。
我使用MALLET进行主题建模.
http://mallet.cs.umass.edu/topics.php
首先,我尝试按照说明导入训练文档集.
bin/mallet import-dir --input /data/topic-input --output topic-input.mallet --keep-sequence --remove-stopwords
Run Code Online (Sandbox Code Playgroud)
我总是得到OutOfMemoryError
,虽然我"bin/mallet.bat"
按照以下页面改变.
Mallet主题建模
我设置set MALLET_MEMORY=32G
.
我的数据集大小为30GB.
计算机内存就足够了.
我收到以下错误.
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Arrays.copyOfRange(Arrays.java:3658)
at java.lang.String.<init>(String.java:201)
at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:909)
at java.lang.StringBuffer.subSequence(StringBuffer.java:473)
at cc.mallet.extract.StringSpan.constructTokenText(StringSpan.java:49)
at cc.mallet.extract.StringSpan.<init>(StringSpan.java:33)
at cc.mallet.pipe.CharSequence2TokenSequence.pipe(CharSequence2TokenSequence.java:68)
at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:294)
at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:290)
at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:290)
at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:290)
at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
at cc.mallet.types.InstanceList.addThruPipe(InstanceList.java:267)
at cc.mallet.classify.tui.Text2Vectors.main(Text2Vectors.java:312)
$ bin/mallet import-dir --input ../Text --output topic-input.mallet --keep-sequence --remove-stopwords
Labels =
../Text
Exception …
Run Code Online (Sandbox Code Playgroud) 我尝试使用mallet 库运行 LDA 算法。当我尝试使用一组参数运行 LDA 时,一切正常,但使用另一组参数时,出现此错误:
09-Oct-2014 23:50:24.354 INFO [http-nio-8084-exec-127] cc.mallet.topics.ParallelTopicModel.estimate <50> LL/token: -8.73265
09-Oct-2014 23:50:24.657 INFO [http-nio-8084-exec-127] null.null [beta: 0.00795]
09-Oct-2014 23:50:24.657 INFO [http-nio-8084-exec-127] null.null <60> LL/token: -8.6299
09-Oct-2014 23:50:24.957 INFO [http-nio-8084-exec-127] cc.mallet.topics.ParallelTopicModel.estimate <70> LL/token: -8.61982
09-Oct-2014 23:50:25.019 INFO [http-nio-8084-exec-127] null.null [beta: 0.00583]
09-Oct-2014 23:50:25.263 INFO [http-nio-8084-exec-127] cc.mallet.topics.ParallelTopicModel.estimate <80> LL/token: -8.89656
09-Oct-2014 23:50:25.402 INFO [http-nio-8084-exec-127] null.null [beta: 0.00484]
java.lang.ArrayIndexOutOfBoundsException: -1 at
cc.mallet.topics.WorkerRunnable.sampleTopicsForOneDoc(WorkerRunnable.java:489) at
cc.mallet.topics.WorkerRunnable.run(WorkerRunnable.java:275) at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at
java.util.concurrent.FutureTask.run(FutureTask.java:266) at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at
java.lang.Thread.run(Thread.java:745) java.lang.ArrayIndexOutOfBoundsException: -1 at …
Run Code Online (Sandbox Code Playgroud) 是否可以使用LDA的Mallet实现绘制pyLDAvis?我没有LDA_Model的麻烦,但是当我使用Mallet时,我得到了:
'LdaMallet' object has no attribute 'inference'
Run Code Online (Sandbox Code Playgroud)
我的代码:
pyLDAvis.enable_notebook()
vis = pyLDAvis.gensim.prepare(mallet_model, corpus, id2word)
vis
Run Code Online (Sandbox Code Playgroud) 我对 mallet 比较陌生,需要知道: - mallet 产生排名的每个主题中的单词是否以某种方式排序?- 如果是这样,排序是什么(即)主题列表中的第一个,即在整个语料库中分布最高的那个?
谢谢!