Алгоритм поиска тренда по ключевым словам / фразам, аналогичный трендам в Твиттере - PullRequest
2 голосов
/ 04 февраля 2012

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

Это было бы очень похоже на тенденции в Твиттере, которые Twitter обнаруживает и сообщает 10 лучших слов в твитах.

Я определил высокоуровневые шаги в алгоритме следующим образом

  1. Отсканируйте текст и удалите все распространенные, часто встречающиеся слова (например, "the", "is", "are", "what", "at" и т. Д.)
  2. Добавитьостальные слова в хэш-карту.Если слово уже есть в карте, увеличьте его счетчик.
  3. Чтобы получить первые 10 слов, выполните итерации по хэш-карте и найдите первые 10 отсчетов.

Шаг 2 и3 просты, но я не знаю на шаге 1, как я могу обнаружить важные слова в тексте и отделить их от общих слов (предлоги, союзы и т. Д.)

Также, если я хочу отслеживать фразы, что может бытьподход ?Например, если у меня есть текст с надписью «Этот мед очень хорош», я мог бы отследить «мед» и «хорошо», но я также могу отследить фразы «очень хорошо» или «мед очень хорош»

Любые предложения будут с благодарностью.

Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 05 февраля 2012

Для обнаружения фраз я предлагаю использовать chunker .Вы можете использовать один из предоставляемых NLP инструментов, например OpenNLP или Stanford CoreNLP .

NOTE

  • мед очень хорош это не фраза.Это пункт. очень хорошо это фраза.
  • В информационной системе поиска эти общие слова называются Стоп-слова .
.
1 голос
/ 04 февраля 2012

На самом деле, ваш шаг 1 будет очень похож на шаг 3 в том смысле, что вы, возможно, захотите составить абсолютную базу данных самых распространенных слов в английском языке. Такой список легко доступен в Интернете (в Википедии даже есть статья, ссылающаяся на 100 самых распространенных слов в английском языке .) Вы можете сохранить эти слова в хэш-карте, а при сканировании вашего текстового содержимого просто игнорировать общие токены.

Если вы не доверяете Википедии и уже существующему списку общих слов, вы можете создать свою собственную базу данных. Для этого просто отсканируйте тысячи твитов (чем больше, тем лучше) и создайте свой собственный частотный график.

Вы столкнулись с проблемой, похожей на n-грамм.

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

0 голосов
/ 11 декабря 2013

Проверьте библиотеку NLTK . У него есть код, который делает номер один два и три:

1 Удаление общих слов может быть сделано с помощью стоп-слов или парадигматического

2,3 Получение наиболее распространенных слов можно сделать с помощью FreqDist

Во-вторых, вы можете использовать инструменты из Stanford NLP для отслеживания вашего текста

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