Как найти ключевые слова (полезные слова) из текста? - PullRequest
2 голосов
/ 18 октября 2010

Я делаю экспериментальный проект.

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

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

Но проблема в том, что некоторые общие слова, такие как, были, были всегда наверху. Видимо это не стоит.

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

Ответы [ 3 ]

6 голосов
/ 18 октября 2010

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

1 голос
/ 18 октября 2010

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

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

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

0 голосов
/ 18 октября 2010

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

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

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

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