去除最常用词槌

Remove most common words mallet

我从一个字符串列表创建一个由标记特征序列组成的实例列表。通过命令行,我可以根据计数、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;
}

提前感谢您的帮助!

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