删除最常见的单词槌

时间:2018-03-03 17:28:31

标签: lda mallet pruning

我从字符串列表中创建一个由令牌特征序列组成的实例列表。通过命令行,我可以根据计数,tf-idf等来修剪这些数据(https://github.com/mimno/Mallet/blob/master/src/cc/mallet/classify/tui/Vectors2Vectors.java)。但是如果我想用Java做呢?我如何扩展我的代码?

我的目标是删除LDA主题建模的最常用单词。

public static InstanceList createInstanceList(List<String> texts) {

    ArrayList<Pipe> pipes = new ArrayList<Pipe>();

    pipes.add(new CharSequence2TokenSequence());
    pipes.add(new TokenSequenceLowercase());
    pipes.add(new TokenSequenceRemoveStopwords());
    pipes.add(new TokenSequence2FeatureSequence());

    InstanceList instanceList = new InstanceList(new SerialPipes(pipes));

    instanceList.addThruPipe(new ArrayIterator(texts));
    return instanceList;
}

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

从第125行开始,查看您链接到示例的代码。FeatureCountTool生成术语频率和文档频率信息。然后,您可以生成修剪后的字母表并构建新的实例列表,如Vectors2Vectors中所示,或生成新的停止列表Set并重新导入源文件中的文档。