Mallet主题建模:删除最常见的单词

时间:2018-01-05 21:43:10

标签: topic-modeling mallet word-frequency

我是艺术史领域的Mallet和主题建模的新手。我正在使用Mallet 2.0.8和命令行(我还不知道Java)。我想在训练模型之前删除最常见和最不常见的单词(在整个语料库中10次,如D. Mimno推荐的那样)因为结果不干净(即使使用停止列表),这是不足为奇。

我发现prune命令可能很有用,有prune-document-freq等选项。这样对吗?还是以另一种方式存在?有人可以详细解释整个过程(例如:创建/输入Vectors2Vectors文件,然后在哪个阶段?)?非常感谢!

对不起这个问题,我是Mallet和文本挖掘的初学者!但它非常令人兴奋!

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

有两个地方可以使用Mallet来策划词汇。第一个是数据导入,例如import-file命令。 --remove-stopwords选项会删除一组固定的英语停用词。这是出于向后兼容的原因,对于某些英语散文来说可能不是一个坏主意,但通常可以通过创建自定义列表来做得更好。我建议使用而不是 --stoplist-file选项以及文件名。此文件中的所有单词(以空格和/或换行符分隔)将被删除。 (使用这两个选项将删除两个列表的并集,可能不是您想要的。)另一个有用的选项是--replacement-files,它允许您指定多字符串作为单个单词处理。例如,这个文件:

black hole
white dwarf

将转换"黑洞"进入" black_hole"。这里的换行符与空格的区别对待。您还可以使用--deletion-files指定多字停用词。

获得Mallet文件后,可以使用prune命令修改该文件。 --prune-count N会删除在任何文档中发生少于N次的字词。 --prune-document-freq N会删除N个文档中至少出现一次的字词。对于在一个文档中出现很多的单词,此版本可以更加强大。您还可以按比例修剪:--min-idf删除不常用的字词,--max-idf删除频繁的字词。 IDF 10.0的单词在20000个文档中出现不到一次,IDF低于2.0的单词出现在超过13%的集合中。