去除最常用词槌
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
并从源文件中重新导入文档。
我从一个字符串列表创建一个由标记特征序列组成的实例列表。通过命令行,我可以根据计数、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
并从源文件中重新导入文档。