Удалить наиболее распространенные слова молоток

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

Другие вопросы по тегам