Как найти общие фразы в большом тексте
-
20-09-2019 - |
Вопрос
Я работаю над проектом в тот момент, когда мне нужно выбрать наиболее распространенные фразы в огромном тексте. Например, скажем, у нас есть три предложения, например, следующее:
- Собака прыгнула над женщиной.
- Собака прыгнула в машину.
- Собака прыгнула вверх по лестнице.
Из приведенного выше примера я хотел бы извлечь »Собака прыгнула«Поскольку это самая распространенная фраза в тексте. Сначала я подумал:« О, давайте используем направленный график [с повторными узлами] »:
Направленный график http://img.skitch.com/20091218-81ii2femnfgfipd9jtdg32m74f.png
РЕДАКТИРОВАТЬ: Приносим извинения, я сделал ошибку, делая эту диаграмму «над», «в» и «вверх», все должны ссылаться на «The».
Я собирался сохранить количество, сколько раз в каждом объекте узла происходило слово («собака» и «прыгнуло», 3; и т. Д.), Но, несмотря на многие другие проблемы, возникали основные, когда они возникли, когда Мы добавляем еще несколько примеров, например (пожалуйста, игнорируйте плохую грамматику :-)):
- Собака прыгала вверх и вниз.
- Собака прыгала, как ни одна собака никогда не прыгала раньше.
- Собака счастливо прыгала.
Теперь у нас есть проблема с "собака«Начнет новый корневой узел (на том же уровне, что и«), и мы не идентифицируем »собака прыгнула«Как сейчас самая распространенная фраза. Так что теперь я думаю, что, может быть, я мог бы использовать неправомерный график для сопоставления отношений между всеми словами и в конечном итоге выбрать общие фразы, но я не уверен, как это будет работать, Как вы теряете важные отношения порядка между словами.
Так что у кого -нибудь есть какие -либо общие идеи о том, как идентифицировать общие фразы в большом объеме текста и какую структуру данных я бы использовал.
Спасибо, Бен
Решение
Проверьте этот связанный вопрос: Какие методы/инструменты существуют для обнаружения общих фраз в кусках текста? Также связан с самая длинная проблема подстроения.
Я публиковал это раньше, но я использую р Для всех моих задач по сбору данных и хорошо подходит для такого рода анализа. В частности, посмотрите на tm
упаковка. Вот несколько соответствующих ссылок:
- Документ о пакете в журнале статистических вычислений: http://www.jstatsoft.org/v25/i05/paper. Анкет Документ включает в себя хороший пример анализа списка рассылки R-Devel (https://stat.ethz.ch/pipermail/r-devel/) Сообщения в группе новостей 2006 года.
- Домашняя страница: http://cran.r-project.org/web/packages/tm/index.html
- Посмотрите на вступительную виньетку: http://cran.r-project.org/web/packages/tm/vignettes/tm.pdf
В целом, существует большое количество пакетов для добычи текста На естественном языке обработка на CRAN.