Подтвердить что ты не робот

Генерация тегов из небольшого текстового содержимого (например, твитов)

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

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

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

Привет

4b9b3361

Ответ 1

Двухступенчатый подход для многословных тегов

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

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

Tweet PMI для одномерных тегов

Как также предлагается здесь, для тегов с одним словом вы можете вычислить point-wise взаимной информации каждого отдельного слова и самого твита, т.е.

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

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

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

Некоторые изменения, которые вы можете захотеть сделать при пометке твитами:

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

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

Ответ 2

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