Извлечение ключевых слов в Python - PullRequest
1 голос
/ 28 марта 2010

Я создаю веб-сайт в django, который должен извлекать ключевые слова из коротких (похожих на твиттер) сообщений.

Я смотрел на такие пакеты, как topia.textextract и nltk - но оба они кажутся излишними в том, что мне нужно сделать. Все, что мне нужно сделать, это отфильтровать слова, такие как «и», «или», «не», сохраняя при этом существительные и глаголы, которые не являются соединительными или другими частями речи. Есть ли какие-нибудь "более простые" пакеты, которые могут это сделать?

РЕДАКТИРОВАТЬ: Это должно быть сделано практически в реальном времени на производственном веб-сайте, поэтому использование службы извлечения ключевых слов кажется невозможным, исходя из времени их ответа и регулирования запросов.

Ответы [ 2 ]

3 голосов
/ 28 марта 2010

Вы можете сделать набор sw "стоп-слов", которые вы хотите исключить (возможно, скопировать его раз и навсегда из корпуса стоп-слов NLTK, в зависимости от того, насколько вы знакомы с различные естественные языки, которые необходимо поддерживать), а затем примените его очень просто.

Например, если у вас есть список слов sent, из которых состоит предложение (для пунктуации, без знаков препинания и в нижнем регистре), [word for word in sent if word not in sw] - это все, что вам нужно, чтобы составить список незапорных слов - вряд ли быть проще, верно?

Чтобы получить список sent в первую очередь, используя модуль re из стандартной библиотеки, re.findall(r'\w+', sentstring) может быть достаточно, если sentstring - это строка с предложением, с которым вы имеете дело - это не не в нижнем регистре, но вы можете изменить предложенное выше понимание списка на [word for word in sent if word.lower() not in sw], чтобы компенсировать это и (кстати) сохранить первоначальный регистр слова, что может быть полезно.

1 голос
/ 28 марта 2010

Сокращения, такие как «НЕТ» для офицера навигации или «ИЛИ» для операционной, требуют небольшой осторожности, чтобы не вызвать SNAFU ;-) Можно предположить, что лучшие результаты можно получить из «Найти НЕТ и отправить ее в ИЛИ», пометив слова с частями речи, использующими контекст ... подсказка 1: «ИЛИ» должно приводить к «[существительное]», а не «[соединение]». Подсказка 2: если сомневаетесь в слове, оставьте его в качестве ключевого слова.

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