2010-05-04 8 views
14

Я уже спросил similar question ранее, но я не указал, что у меня большой предел: я работаю над небольшими текстовыми наборами, такими как пользовательские твиты для генерации тегов (ключевые слова).генерация тэгов из небольшого текстового контента (например, твитов)

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

С этим ограничением (работа с небольшим набором текстов), как я могу генерировать теги?

С уважением

+0

Другими словами, вы хотите классифицировать твиты в X количество категорий? –

+0

, который также может работать, а также извлекать из них ключевые слова. – Hellnar

ответ

14

Два подхода Сцена многословной Теги

Вы могли бассейн все твиты в один большой документ, а затем извлечь п наиболее интересные коллокаций из всей коллекции твитов. Затем вы можете вернуться и пометить каждый твит с помощью совпадений, которые происходят в нем. Используя этот подход, n будет общее количество тегов многословных слов, которые будут сгенерированы для всего набора данных.

Для первого этапа вы можете использовать код NLTK, указанный here. Второй этап может быть выполнен с помощью простой петли над всеми твитами. Однако, если скорость вызывает беспокойство, вы можете использовать pylucene, чтобы быстро найти твиты, содержащие каждую коллокацию.

Tweet Уровень PMI для Single Word Метки

Как также предложил here, для одиночных тегов слов, можно вычислить point-wise mutual information каждого отдельного слова, а сам твит, т.е.

PMI(term, tweet) = log [ P(term, tweet)/(P(term)*P(tweet)) 

Опять , это примерно скажет вам, насколько менее (или более) удивлен, когда вы сталкиваетесь с термином в конкретном документе как пристрастием к тому, чтобы встретить его в большой коллекции. Затем вы можете пометить твит с несколькими терминами, которые имеют самый высокий PMI с твитом.

Общие изменения для твиты

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

  • использовать только слово или словосочетание в качестве тега для твита, если это происходит в пределах определенное количество или процент от других твитов. В противном случае PMI будет склонен отмечать твиты с нечетными терминами, которые встречаются только в одном твиттере, но которые больше нигде не встречаются, например. опечатки и клавиатурные шумы, такие как # @ $ # @ $% !.

  • Масштабировать количество тегов, используемых с длиной каждого твита. Возможно, вы сможете извлечь 2 или 3 интересных тега для более длинных твитов. Но для более короткого твита из двух слов вы, вероятно, не хотите использовать каждое слово и коллокацию, чтобы пометить его. Вероятно, стоит поэкспериментировать с разными отрезками для того, сколько тегов вы хотите извлечь, учитывая длину твита.

+0

Спасибо большое за большой ответ dmcer, это действительно помогло мне! – Hellnar

+0

п ответа выше, мой вопрос Давайте предположим, что если срок появляется только один раз в каждый твит, и нет ретвит, будет р (термин, чириканье) = 1 р (твит) = 1 и измерение просто станет log (1/p (term))? С уважением, Энди. – cherhan

0

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

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

  • Нет связанных вопросов^_^