Вопрос

Я работаю над проектом в тот момент, когда мне нужно выбрать наиболее распространенные фразы в огромном тексте. Например, скажем, у нас есть три предложения, например, следующее:

  • Собака прыгнула над женщиной.
  • Собака прыгнула в машину.
  • Собака прыгнула вверх по лестнице.

Из приведенного выше примера я хотел бы извлечь »Собака прыгнула«Поскольку это самая распространенная фраза в тексте. Сначала я подумал:« О, давайте используем направленный график [с повторными узлами] »:

Направленный график http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png

РЕДАКТИРОВАТЬ: Приносим извинения, я сделал ошибку, делая эту диаграмму «над», «в» и «вверх», все должны ссылаться на «The».

Я собирался сохранить количество, сколько раз в каждом объекте узла происходило слово («собака» и «прыгнуло», 3; и т. Д.), Но, несмотря на многие другие проблемы, возникали основные, когда они возникли, когда Мы добавляем еще несколько примеров, например (пожалуйста, игнорируйте плохую грамматику :-)):

  • Собака прыгала вверх и вниз.
  • Собака прыгала, как ни одна собака никогда не прыгала раньше.
  • Собака счастливо прыгала.

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

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

Спасибо, Бен

Это было полезно?

Решение

Проверьте этот связанный вопрос: Какие методы/инструменты существуют для обнаружения общих фраз в кусках текста? Также связан с самая длинная проблема подстроения.

Я публиковал это раньше, но я использую р Для всех моих задач по сбору данных и хорошо подходит для такого рода анализа. В частности, посмотрите на tm упаковка. Вот несколько соответствующих ссылок:

В целом, существует большое количество пакетов для добычи текста На естественном языке обработка на CRAN.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top