Java-токенизатор или средство разбиения по словам, и для разных языков

Интересно, есть ли какая-нибудь языковая утилита на основе Java, которая может помочь в выполнении следующей строки для токенизации или разбиения слов и удаления шума?

Так что для строки

Friday's meeting is wonderful

Ожидаемый результат будет серия слов

Friday meeting wonderful

где и удаляется

И для строки

I went to the farmer's market 

ожидаемый результат будет слова

went farmer market

где я, чтобы, и удалили

5 ответов

Решение

Нет общего решения этой проблемы, потому что (что не менее важно) ваше представление о "шуме" плохо определено... и, скорее всего, отличается от других людей.

Если бы я реализовывал это (и я согласился с вашим понятием "шум"), я бы:

  1. Токенизируйте, используя пробелы и в качестве разделителей принимайте знаки препинания.
  2. Лента цитат
  3. Стрип апострофии
  4. Нормализовать переносы (возможно, просто удалить дефисы)
  5. Используйте фильтр стоп-слов, чтобы избавиться от "шумовых" слов.

Короче говоря, вам нужно написать нетривиальный объем кода, чтобы сделать это.


Конечно, удаление "шумовых" слов - это информация о полосе, которая имеет отношение к правильному семантическому анализу текста. ("Я бью по мячу" и "Ты бьешь по мячу" говорят разные вещи.)

Я играл с Стэнфордским парсером раньше. Это двигатель НЛП, который имеет достаточно хорошие результаты для большинства целей. Это даст вам большую власть в выборе слов, которые вы хотите сохранить.

Онлайн демо

Я не знаю утилиты, которая бы делала это для вас из коробки, но, возможно, посмотрите на это - Удаление строк из другой строки в Java. Надеюсь, это несколько полезно.

Может быть, взглянуть на это? Я также знаю, что есть класс String Tokenizer, но его сложно использовать в ваших целях.

http://docs.oracle.com/javase/7/docs/api/java/text/Normalizer.html

Возможно, это не лучшее решение, но вы можете использовать метод replaceAll из класса String, заменив шум на пустую строку.

Например, что-то вроде: line.replaceAll("s", "");

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