на главную ] 

О задаче определения темы текста
на естественном языке

Евгений Борисов

пятница, 27 октября 2017 г.

В этой статье мы рассмотрим задачу автоматического разделения по темам множества текстов на естественном языке.

1. Введение

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

2. Тематическое моделирование

Извлечение тем из набора текстов начинается с частотного анализа [1]. На основе данных извлечённых из множества текстов можно построить частотную матрицу [ слова x документы ] ячейка такой матрицы содержит частоту употребления слова $w$ в документе $d$, её можно рассматривать как матрицу вероятностей $p(w|d)$ событий "слово $w$ принадлежит документу $d$".

Далее к этой матрице применяют определённые методы матричного разложения, т.е. представляем матрицу в виде произведения двух других матриц. $$p(w|d) = p(w|t)\cdot p(t|d)$$ В результате разложения из частотной матрицы [ слова x документы ] мы получаем матрицу с описанием тем [ слова х темы ] или вероятности $p(w|t)$ событий "слово $w$ принадлежит теме $t$", и матрицу [ темы х документы ], т.е. вероятностей $p(t|d)$ событий "тема $t$ описывает документ $d$".

[ слова x документы ] = [ слова х темы ] * [ темы х документы ]

Для разложения можно применять различные методы (DLA, NMF), их описание можно найти в лекции [2].

3. Реализация на Python

В этом разделе представлена реализация метода тематического моделирования текстов новостей (3196 новостных заметок) на русском языке средствами библиотеки scikit-learn [3].

Около 18 тысяч человек покинули подконтрольные боевикам районы Алеппо За минувшие сутки из подконтрольных боевикам районов сирийского города Алеппо было выведено около 17,971 тысячи жителей, в их числе 7,542 тысячи детей. Об этом в субботу, 10 декабря, сообщает ТАСС со ссылкой на российский Центр примирения враждующих сторон в Арабской Республике.

Лидер Радикальной партии Украины Олег Ляшко назвал Надежду Савченко госизменницей. Политик призвал лишить наводчицу мандата народного депутата "То, что сейчас чудит Савченко, — это государственная измена. За подобные действия ей надо немедленно запретить доступ к государственной тайне, отозвать из ПАСЕ и лишить мандата народного депутата Украины", — написал Ляшко на странице в Facebook.

Финальная распродажа! Chery Tiggo от 19990 руб (199,9 млн) «Китайские автомобили» объявляют финальную распродажу популярных кроссоверов Chery Tiggo FL! На автомобили в максимальной комплектации установлена специальная цена 19 990 рублей (199,9 млн). Количество автомобилей ограничено!

Листинг 1: примеры текстов

Тема 0: рублей млн компания компании млрд модели долларов
Тема 1: трамп сша трампа дональд президент избранный президента
Тема 2: by tut декабря фото беларуси ноября беларусь
Тема 3: дтп водитель результате мвд области происшествия аварии
Тема 4: савченко украины надежда заявила партии лидер действия
Тема 5: народов севера коренных малочисленных края фестиваль июля
Тема 6: ученые университета специалисты исследователи жизни часов человека
Тема 7: flash adobe player javascript браузер проигрывателя html5
Тема 8: россии путин рф президент заявил глава президента
Тема 9: динамо матче чемпионата очков матча лиги шахтера
Листинг 2: результаты работы

Текст программы на Python можно скачать [здесь].

Список стоп-слов для частотного анализа можно скачать по ссылке
- http://github.com/stopwords-iso/stopwords-ru/blob/master/raw/stop-words-russian.txt.

Литература

  1. Евгений Борисов Автоматизированная обработка текстов на естественном языке.
    - http://mechanoid.kiev.ua/ml-text-proc.html
  2. Воронцов К.В. Вероятностные тематические модели коллекций текстовых документов.
    - http://www.youtube.com/watch?v=IPG4-p7VVkI
  3. scikit-learn: Topic extraction with Non-negative Matrix Factorization and Latent Dirichlet Allocation
    - http://scikit-learn.org/stable/auto_examples/applications/plot_topics_extraction_with_nmf_lda.html
При использовании материалов этого сайта, пожалуйста вставляйте в свой текст ссылку на мою статью.