@Gudsaf
Школьник

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

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

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

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

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

Всяк есть библиотеки для питона которые позволят решить мою проблему, и всяк есть среди нас те кто ее уже решали. Подскажите, каков был ваш опыт, чем вы руководствовались.
  • Вопрос задан
  • 3100 просмотров
Пригласить эксперта
Ответы на вопрос 7
1) Задача классификации (с учителем), либо кластеризация (без учителя)
2) Метод мешка слов
3) scikit-learn.org
Ответ написан
leahch
@leahch
Я мастер на все руки, я козлик Элек Мэк :-)
Ну, не совсем на притоне, но есть - 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
почему ракеты не летают как птицы?
если совсем в лоб:

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

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

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