Ответ 1
Двухступенчатый подход для многословных тегов
Вы можете объединить все твиты в один более крупный документ, а затем извлечь n самые интересные коллокации из всей коллекции твитов. Затем вы можете вернуться и пометить каждый твит с помощью совпадений, которые происходят в нем. Используя этот подход, n будет общее количество многословных тегов, которые будут сгенерированы для всего набора данных.
На первом этапе вы можете использовать код NLTK, размещенный здесь. Второй этап может быть выполнен с помощью простой петли над всеми твитами. Однако, если скорость вызывает беспокойство, вы можете использовать pylucene, чтобы быстро найти твиты, содержащие каждую коллокацию.
Tweet PMI для одномерных тегов
Как также предлагается здесь, для тегов с одним словом вы можете вычислить point-wise взаимной информации каждого отдельного слова и самого твита, т.е.
PMI(term, tweet) = log [ P(term, tweet) / (P(term)*P(tweet))
Опять же, это примерно скажет вам, насколько менее (или более) удивлен, что вы сталкиваетесь с термином в конкретном документе как пристрастием к тому, чтобы встретить его в большей коллекции. Затем вы можете пометить твит с несколькими терминами, которые имеют самый высокий PMI
с твитом.
Общие изменения для твитов
Некоторые изменения, которые вы можете захотеть сделать при пометке твитами:
-
Используйте только слово или коллокацию в качестве тега для твита, если оно встречается в пределах определенного количества или процента других твитов. В противном случае PMI будет склонен отмечать твиты с нечетными терминами, которые встречаются только в одном твиттере, но которые больше нигде не встречаются, например. опечатки и клавиатурные шумы, такие как # @$# @$%!.
-
Масштабируйте количество тегов, используемых с длиной каждого твита. Возможно, вы сможете извлечь 2 или 3 интересных тега для более длинных твитов. Но для более короткого твита из двух слов вы, вероятно, не хотите использовать каждое слово и коллокацию, чтобы пометить его. Вероятно, стоит поэкспериментировать с разными отрезками для того, сколько тегов вы хотите извлечь, учитывая длину твита.