@Gudsaf
Школьник

С помощью чего определить принадлежность текста к какой-либо теме посредством python?

Представьте себе такую ситуацию: есть текст, нужно определить к какой теме из списка тем он относится.

Что есть? Есть список тем, где каждая тема представляет из себя набор слов, например:
футбол: футбол, мяч, поле, болельщик, ворота, судья, вратарь, футболист...
биатлон: биатлон, винтовка, лыжи, лыжник, биатлонист, снег, мишень...
...

Так же есть какой-то текст, который так или иначе касается тем определных ранее: то есть принадлежит какой-то теме исходя из какой-то меры, пусть от 0 до 1.

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

Всяк есть библиотеки для питона которые позволят решить мою проблему, и всяк есть среди нас те кто ее уже решали. Подскажите, каков был ваш опыт, чем вы руководствовались.
  • Вопрос задан
  • 5851 просмотр
Пригласить эксперта
Ответы на вопрос 7
@kzoper
Ответ написан
Комментировать
1) Задача классификации (с учителем), либо кластеризация (без учителя)
2) Метод мешка слов
3) scikit-learn.org
Ответ написан
Комментировать
leahch
@leahch
3Д специалист. Долго, Дорого, Дерьмово.
Ну, не совсем на притоне, но есть - Elasticsearch и его percolator query - https://www.elastic.co/guide/en/elasticsearch/refe...

Смысл всего такой - у нас есть ES и есть индекс с нашими запросами "футбол: футбол, мяч, поле, болельщик, ворота, судья, вратарь, футболист"
Мы берем документ и спрашиваем у ES через percolator query каким запросам этот документ соответствует. В ответ ES вернет наиболее релевантные запросы.

Общаться с ES можно через питон.

Мы так систематизируем товары по каталогам.
Ответ написан
@asd111
Полный пример как это сделать в scikit-learn scikit-learn.org/stable/tutorial/text_analytics/wo...

Гуглить machine learning text classification, text categorization.
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
если совсем в лоб:

1) строгаешь существительные из предложений (Noun, есть еще main Noun)
2) затем Counter.most_common() подсчитываешь их во всем тексте и берешь первые N
3) и косинусная близость этих N с существительными темы
Ответ написан
Комментировать
@ivodopyanov
NLP, python, numpy, tensorflow
В кластеризации текста еще есть библиотечка BigARTM от Воронцова, которая позволяет "выращивать" кластеры вокруг наборов предварительно заданных слов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы