2015-11-17 263 views
1

我想尝试Blie .et.al的LDA -c代码。因为它在这linkTopic Modling:如何在C语言中使用LDA数据?

我编译了代码,当我在终端中运行./lda时,显示以下结果。

usage : lda est [initial alpha] [k] [settings] [data] [random/seeded/manual=filename/*] [directory] 
     lda inf [settings] [model] [data] [name] 

这意味着,它已被正确编译。

但是,尽管读取了README.txt文件,但我无法成功运行LDA代码。 要么是它说分段错误(核心转储)死亡

我错过了什么?如何在他们提供的示例数据上使用它?

我已经读过问题here问题的堆栈溢出答案,但它没有用,因为我不知道默认值。

上传:我是一个开始。

回答

2

您是否正在使用ap.txt而不是ap.dat? lda-c不会将原始句子或数据标记为输入;每个文档需要一系列的文字信息。当ap.dat有一条类似 186 0:1 6144:1 3586:2 ...的行时,表示对应的文档有186个不同的单词,单词0出现一次,单词6144出现一次,单词3586出现两次,依此类推。

该命令对我的作品(使用Blei原代码):

./lda est 0.1 10 settings.txt ap.dat random modeldir 

(随意调整,你想为初始α(0.1)和10个主题数())

+0

它没有为我工作'从ap.dat读取数据 分段错误(核心转储)'说输出:( – kingmakerking

+0

你可以发布你正在使用的确切命令,以及settings.txt的内容和第一个十行ap.dat?另外,请尝试使用http://www.cs.princeton.edu/~blei/lda-c/中的未修改版本。它没有*看起来像github版本改变了anyt很重要,但值得检查。并告诉我它崩溃的是哪一行(如果blei的版本崩溃,那么崩溃);如果没有,则为github版本。 – Ray

+0

谢谢@Ray它为我工作,kingmakerking确保您指向您ap.dat文件的正确位置,该示例假定您将它放在同一个文件夹中。另外,如果您在文本编辑器中打开了ap.dat,它可能会更改格式,因此请尝试再次下载ap.dat,将其放入与lda文件相同的目录并运行 – soheildb