2010-10-18 5 views
1

Я делаю экспериментальный проект.Как найти ключевые слова (полезные слова) из текста?

То, что я пытаюсь достичь, я хочу найти, что ключевые слова в этом тексте.

Как я пытаюсь это сделать, я составляю список того, сколько раз слово появляется в тексте, отсортированном по большинству используемых слов вверху.

Но проблема в некоторых распространенных словах, таких как есть, была, были всегда на высоте. По-видимому, это не стоит.

Можете ли вы предложить мне какую-нибудь хорошую логику для этого, поэтому он всегда находит хорошие ключевые слова?

+0

Есть ли известная библиотека? Я знаю, что для python есть отличные библиотеки: http://term-extraction.appspot.com/ http://www.five-filters.org Я также ищу PHP-решение для получения ключевых слов , –

ответ

5

Используйте что-то вроде Brill Parser, чтобы идентифицировать разные части речи, например существительные. Затем извлекайте только существительные и сортируйте их по частоте.

+0

Очень полезная ссылка – Arshdeep

1

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

Единственное, что я мог подумать о том, чтобы скрыть не важные слова, - это словарь слов, которые вы хотите игнорировать, содержащие «a», «I», «the», «and» и т. Д. Используйте это словарь для фильтрации нежелательных слов.

Почему вы это делаете, это для поиска содержимого страницы? Если это так, то большинство баз данных заднего плана предлагают некоторую функцию текстового поиска, и MySQL, и Postgres имеют полнотекстовую поисковую систему, например, которая автоматически отбрасывает несущественные слова. Я бы рекомендовал использовать полнотекстовые функции используемой базы данных, поскольку, скорее всего, они уже внедряют то, что соответствует вашим требованиям.

+0

Yeh, я также думал об этом, чтобы игнорировать некоторые известные недостойные слова. Но проблема в том, что я не являюсь носителем английского языка, поэтому я слабо разбираюсь в основных правилах грамматики. И я думаю, что список недостойных слов будет длинным. Могу ли я иметь список (я не знаю, какое имя может быть «первым человеком» для слов «он я и я»). – Arshdeep

+0

«Я», «ты», «он», «она», «это», «мы», «они» - все личные местоимения –

0

Моим первым подходом к чему-то подобному было бы более математическое моделирование, чем чистое программирование.

есть два «простых» способа, которыми вы можете атаковать такую ​​проблему; a) список исключений (наказывать коллекцию слов, которые вы считаете бесполезными) b) использовать весовую функцию, которая для ex. основывается на длине слова, таким образом, небольшие слова, такие как предлоги (in, at ...) и местоимения (я, вы, я, его ...) будут оштрафованы и, надеюсь, упадут на середину стола

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

+0

Возможно, вам это интересно: http: //martin.ankerl .com/2007/01/09/textanalyzer-автоматически извлечет-характеристические-слова / – Attilio

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