Что такое хороший метод для кластеризации коротких текстов?

15

Я работаю над проблемой кластеризации текста. Данные содержат несколько предложений. Есть хороший алгоритм, который достигает высокой точности на коротком тексте?

Можете ли вы предоставить хорошие ссылки?

Алгоритмы, такие как KMeans, спектральная кластеризация не работают хорошо для этой проблемы.

user3108764
источник

Ответы:

10

Это в основном зависит от того, сколько «современного уровня» (SOTA) вы хотите против того, как глубоко вы хотите пойти (каламбур ...).

Если вы можете жить с небольшими вложениями слов, предоставляемыми word2vec, Glove или fastText, я думаю, что Word Mover Distance (WMD [да, действительно ...]) - хорошая функция для измерения (коротких) расстояний до документов [1] , Я даже видел несколько ноутбуков Python в прошлом, которые предоставляют «учебные пособия» для этой меры расстояния, поэтому ее действительно легко начать.

Однако, если вас больше интересует SOTA, вам придется изучить глубокое (представление последовательности) обучение, используя какую-то рекуррентную сеть, которая изучает тематическую модель из ваших предложений. Помимо интеграции (семантического) встраивания слов, эти подходы выходят за рамки [доброго, старого] подхода «мешок слов», изучая представления тем с использованием зависимостейслов в предложении [с]. Например, Рекуррентная модель темы уровня предложения (SLRTM) является довольно интересной глубокой, рекуррентной моделью, основанной на идеях более традиционного LDA (Блей и др.) Или LSA (Ландауэр и др.), Но это всего лишь arXiv. бумага (поэтому все стандартные предупреждения «возьми это с зерном соли» о нерецензированных исследованиях должны применяться ...) [2]. Тем не менее, в статье есть много отличных указателей и ссылок для начала вашего исследования, если вы захотите пройти по этой кроличьей норе.

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

[1] Matt J. Kusner et al. От вложений в слова до расстояний между документами. Материалы 32-й Международной конференции по машинному обучению, JMLR, 2015.

[2] Fei Tian et al. SLRTM: пусть темы говорят сами за себя. arXiv 1604.02038, 2016.

фн
источник
я пробовал word2vec, и он не работает хорошо для короткого текста.
Энтузиаст
Просто чтобы быть уверенным: Мой ответ выше не рекомендует использовать word2vec (один) для кластеризации коротких текстов. Скорее, он рекомендует использовать методы ОМУ (поверх встроенных векторов) и / или глубокого обучения. (Тем не менее, если вы можете тренировать свои собственные векторы, вы получите очень хорошие результаты с ними в одиночку, используя Soft косинус похожести, по крайней мере , для «работоспособного прототипа.»)
фн
-1

https://github.com/RandyPen/TextCluster
Это метод Cluster, специфичный для короткого текста, который превосходит KMeans и т. д. Нет необходимости устанавливать число скрытой переменной.
Основная идея состоит в том, чтобы разбить предложение на слова. Затем направьте в другую корзину в соответствии с текстовым компонентом. В каждом сегменте вычислите сходство между предложением и блоком. Если показатель сходства выше, чем конкретное значение, добавьте это предложение в этот сегмент, иначе ищите следующий.

основной

Рэнди Пен
источник
Вы должны уточнить свой ответ. Не просто цитировать ссылку.
Майкл Р. Черник