Удалить наиболее распространенные слова молоток
Я создаю из списка строк список экземпляров, состоящий из последовательностей объектов токенов. Через командную строку я могу обрезать эти данные на основе количества, 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 ответ
Посмотрите на код, на который вы ссылались, в качестве примера, начиная со строки 125. FeatureCountTool
генерирует информацию о частоте терминов и частоте документов. Затем вы можете сгенерировать сокращенный алфавит и создать новый список экземпляров, как в Vectors2Vectors
или создайте новый стоп-лист Set
и повторно импортируйте документы из исходных файлов.