我是艺术史领域的Mallet和主题建模新手。我正在使用 Mallet 2.0.8 和命令行(我还不知道 Java)。我想在训练模型之前删除最常见和最不常见的单词(在整个语料库中删除 10 次,正如 D. Mimno 所建议的那样),因为结果并不干净(即使有停用列表),这并不奇怪。
我发现 prune 命令可能很有用,带有 prune-document-freq 等选项。对吗?还是以另一种方式存在?有人可以详细解释整个过程(例如:创建/输入 Vectors2Vectors 文件,在哪个阶段然后?将不胜感激!
我很抱歉这个问题,我是 Mallet 和文本挖掘的初学者!但这非常令人兴奋!
非常感谢您的帮助!
有两个地方可以使用 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% 以上。