2012-05-08 4 views
0

В прошлом я написал код, чтобы найти общие слова в тексте, но мне было любопытно, есть ли известный способ найти общие фразы в тексте? (В java)Поиск общих фраз в тексте

Кто-нибудь знает, как выполнить что-то подобное без Lucene или nlp? Какие существуют другие инструменты или решения?

+1

этот вопрос очень общий – ant

ответ

0

Трудно дать вам ответ, не зная точно, что вы хотите сделать. Наивный ответ на вашу проблему будет разбит текст на знаки препинания и будет использовать структуру данных для хранения счетчиков каждого предложения в вашем тексте, увеличивая счетчик для каждого предложения, которое вы анализируете из текста.

Вы можете использовать, например, очередь приоритетов, чтобы сохранить предложения, отсортированные по его счетчикам. Затем вы можете удалить максимальный элемент n раз для n наиболее распространенных предложений или поп-предложений до тех пор, пока счетчик больше числа, которое вы хотите.

Однако, если вы не хотите точных предложений, вам придется изменить то, что вы храните в очереди приоритетов, или вам придется использовать другой алгоритм в целом.

Надеюсь, это по крайней мере помогает!

0

Немного непрямого алгоритм:

Можно создать переставляются индекс: для всех слов в каждом предложении магазина предложении и сортировки на слово, а затем оставшееся предложения, а затем все раньше. Предварительная часть не имеет значения.

Тогда вы должны иметь возможность подсчитать общие фразы из двух и более слов.

Смежные вопросы