我从字符串列表中创建一个由令牌特征序列组成的实例列表。通过命令行,我可以根据计数,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;
}
提前感谢您的帮助!
答案 0 :(得分:2)
从第125行开始,查看您链接到示例的代码。FeatureCountTool
生成术语频率和文档频率信息。然后,您可以生成修剪后的字母表并构建新的实例列表,如Vectors2Vectors
中所示,或生成新的停止列表Set
并重新导入源文件中的文档。