SlideShare a Scribd company logo
1 of 40
Классификация текстов на
естественных языках
serv@newmail.ru
Дистрибутивная семантика
(Word2Vec)
• Обучается без учителя на любых текстах;
• Ставит каждому токену в соответствие вектор
действительных чисел, такой, что:
– Для любых двух токенов можно определить
метрику* расстояния между ними (косинусная
мера);
– Для семантически связанных токенов расстояние
оказывается положительным и стремится к 1:
• Взаимозаменяемые слова (модель Skipgram);
• Ассоциированные слова (модель Bag of Words).
* На самом деле - нет
Взаимозаменяемые слова
Enter word or sentence (EXIT to break): кофе
коффе 0.734483
чая 0.690234
чай 0.688656
капучино 0.666638
кофн 0.636362
какао 0.619801
эспрессо 0.599390
Ассоциированные слова
Enter word or sentence (EXIT to break): кофе
зернах 0.757635
растворимый 0.709936
чая 0.709579
коффе 0.704036
mellanrost 0.694822
сублемированный 0.694553
молотый 0.690066
кофейные 0.680409
Обобщение нескольких слов (A+B)
Enter word or sentence (EXIT to break):
мобильный телефон
сотовый 0.811114
телефона 0.776416
смартфон 0.730191
телфон 0.719766
мобильного 0.717972
мобильник 0.706131
Проецирование отношений (A-B+С)
Найти такое слово, которое относится к украине так-же, как доллар относится к
сша (то есть – что является валютой украины?):
Enter three words (EXIT to break): сша доллар украина
гривне 0.622719
долар 0.607078
гривны 0.597969
рубля 0.596636
Найти такое слово, которое относится к germany так-же, как франция относится к
france (то есть – перевод слова germany):
Enter three words (EXIT to break): france франция germany
германия 0.748171
англия 0.692712
нидерланды 0.665715
великобритания 0.651329
Преимущества и недостатки
• Учится быстро на неподготовленных текстах:
– 1.5 месяца на 100 Гб обучающий файл, модели BagOfWords и
Skipgram, на 24-х ядрах;
• Снижает размерность:
– 2.5 млн. токенов словарь ужимается до 256 элементов вектора
действительных чисел;
• Векторные операции быстро деградируют:
– Результат сложения 3-5 слов уже практически бесполезен =>
неприменимо для обработки текстов;
• Элементы вектора смысла не имеют, имеют смысл только
расстояния между векторами => метрика между токенами
одномерна.
Семантический вектор
• Пример с кофе показывает, что токены
группируются по смыслу (напитки);
• Необходимо сформировать достаточное число
кластеров;
• Размечать кластеры нет необходимости.
Тогда, получим набор кластеров, в которых
токены сгруппированы по смыслу, и, при
необходимости, каждому кластеру можно
присвоить метку => каждый кластер имеет
независимый от других смысл.
Сигнатура текста
• Текст состоит из токенов, каждый из которых привязан к своему кластеру;
• Можно подсчитать количество вхождений токена в текст и перевести в
количество вхождений кластера в текст (сумма всех токенов, входящих в
кластер);
• В отличии от размеров словаря (2.5 млн. токенов), количество кластеров
много меньше (2048) => работает эффект снижения размерности;
• Перейдём от общего количества подсчитанных в тексте токенов к их
относительному количеству (доле). Тогда:
– Доля не зависит от длины текста, а зависит только от частоты появления токенов в тексте
=> появляется возможность сравнивать тексты разной длины;
– Доля характеризует тематику текста => тематика текста определяется теми словами,
которые используются;
• Отнормируем доли конкретных текстов мат. ожиданием и дисперсией,
вычисленными по всей базе:
– Это повысит значимость редких кластеров (встречающихся не во всех текстах –
например, названия) по сравнению с частыми кластерами (например – местоимения,
глаголы и прочие связующие слова);
• Текст определяется своей сигнатурой – вектором 2048 действительных чисел,
имеющих смысл как нормированные доли токенов тематических кластеров,
из которых составлен текст.
Сигнатурный классификатор
• Каждому текстовому документу ставится в
соответствие сигнатура;
• Размеченная обучающая выборка текстов
превращается в размеченную базу сигнатур;
• Для исследуемого текста формируется его
сигнатура, которая последовательно
сравнивается с сигнатурами каждого файла из
обучающей выборки;
• Решение по классификации принимается на
основе kNN (k ближайших соседей), где k=3.
Преимущества и недостатки
• Преимущества:
– Нет потерь информации от обобщения (сравнение идёт с каждым
оригинальным файлом из обучающей выборки);
– Приемлемая скорость работы – порядка 0.3 секунды на прогон базы
сигнатур в 1.7 млн. документов в 24 потока;
– Возможность выделять нечёткие дубликаты:
• Бесплатно (сравнение сигнатур и так происходит на этапе классификации);
• Высокая избирательность (анализируются только потенциальные дубли,
составленные преимущественно из тех-же самых токенов, т.е. – имеющих высокую
меру близости сигнатур);
• Настраиваемость (можно занизить порог срабатывания и получать не просто дубли,
а тематически и стилистически близкие тексты);
– Нормированность оценок (0;1]
– Лёгкость пополнения обучающей выборки новыми документами (и
лёгкость исключения документов из неё);
• Недостатки:
– Никак не учитывается взаимное расположение токенов (словосочетания);
– Большие неснижаемые требования к оперативной памяти (35+ Гб);
– Плохо (никак) не работает, когда на класс приходится малое количество
образцов (единицы).
Точность и полнота (бинарная
классификация)
0
10
20
30
40
50
60
70
80
90
100
0.4 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6
Точность
Полнота
Тонкая настройка сигнатурного
классификатора
Как видно из графика “точность и полнота” рабочая область
классификатора достаточно узкая. Решение – разметить оригинальный
текстовый обучающий файл, по которому учится Word2Vec. Для этого в
текст документа внедряются метки, определяющие класс документа:
• Как результат, кластеры располагаются в векторном пространстве не
случайным образом, а разводятся так, что бы кластеры одного класса
тяготели друг к другу и отстояли на максимальное расстояние от
кластеров противоположного класса. Кластеры, характерные для
обоих классов располагаются посередине.
Требования к памяти снижаются путём сокращения размеров базы
сигнатур:
• Сигнатуры обучающей выборки, содержащие излишнее количество
образцов (более миллиона), последовательно кластеризуются на
большое число кластеров и из каждого кластера используется одна
сигнатура. Тем самым:
– Сохраняется относительно равномерное покрытие векторного
пространства сигнатурами образцов;
– Удаляются сигнатуры образцов, излишне близких друг другу, и,
соответственно, мало полезных для классификации.
Точность многоклассовой
классификации
Выделенных классов
Доля выделенных классов %%в общем
числе классов
Точность
классификации %%
1 0.273224 6.80059
2 0.546448 27.6964
3 0.819672 42.8124
5 1.36612 60.7113
7 1.91257 70.0642
9 2.45902 76.305
13 3.55191 83.2867
17 4.64481 87.1892
22 6.01093 90.4495
160 43.7158 99.012
• При большом числе классов трудно дать
правильный ответ в первом же классе. Поэтому
правильным срабатыванием классификатора
считается наличие правильного класса в первых
нескольких выделенных классах.
Сигнатурный классификатор,
резюме
• Быстрый;
• Легко дополняемый;
• Позволяет также обнаруживать дубликаты;
• Не учитывает взаимное расположение
токенов;
• Не работает, когда в обучающей выборке
мало примеров.
Шаблонный классификатор
• Основан на граммах длиной до 16-ти элементов:
– Часть целевых текстов оформлена по стандартам (STANAG, ISO).
Есть много типовых элементов:
• Заголовки;
• Подписи;
• Листы согласования и архивные метки;
– Часть целевых документов содержат в себе информацию по
оформлению:
• Xml (включая все современные офисные стандарты);
• Html;
– Практически все содержат устойчивые словосочетания, например:
• “с уважением, майор Пронин”;
• “доположено в ГШ и СНБО”;
• Является упрощённой реализацией Наивного Баессового
классификатора (без нормировки);
• Генерит до 60-ти млн. классифицирующих грамм;
• Работает быстро (конечный автомат).
Построение классификатора
• Из текстов выделяются граммы;
• Вычисляется относительная частота грамм на класс;
• Если для разных классов относительная частота
сильно отличается (в разы) грамма является
классифицирующим признаком;
• Редкие граммы, встреченные 1 раз, отбрасываются;
• Обучающая выборка классифицируется, и по тем
документам, по которым классификация была
ошибочна, формируются дополнительные граммы,
и добавляются в общую базу грамм.
Использование классификатора
• Из текста выделяются граммы;
• Суммируются веса всех грамм для каждого класса, к которому они
относятся;
• Побеждает класс, набравший наибольшую сумму весов;
• При этом:
– Класс, в котором было больше обучающих текстов, формирует обычно
больше классифицирующих грамм;
– Редкий класс (мало обучающих текстов) генерит мало грамм, но их
средний вес выше (из-за преобладания длинных уникальных для данного
класса грамм);
– Текст, в котором нет явного преобладания редких длинных грамм, будет
отнесён к классу с большим числом обучающих примеров
(апостериорное распределение стремится к априорному);
– Текст, имеющий длинные уникальные граммы редкого класса, будет
отнесён скорее к данному редкому классу (намеренно внесённое
искажение в апостериорное распределение с целью повысить
избирательность на редких классах).
Преимущества и недостатки
Преимущества:
• Относительно быстрый и компактный;
• Неплохо параллелится;
• Способен обучаться по единственному документу в
обучающей выборке на класс;
Недостатки:
• Оценки ненормированы и в оригинальном виде не
обеспечивают критерий pairwize (нельзя гарантировать,
что оценка с большим весом более вероятна);
• Генерится огромное количество грамм с околонулевой
вероятностью встретить их в реальных документах (не
дублях);
• Огромные требования к памяти на этапе обучения.
Ненормированность оценок
Почему:
• Нет необходимости делать нормировку – сильное
упрощение кода;
• Ненормированные оценки содержат больше
потенциально доступной для классификации
информации.
Как использовать:
• Оценки классификатора являются хорошими
признаками для использования в универсальных
классификаторах (xgboost, SVM, ANN);
• При этом, универсальные классификаторы сами
определяют оптимальную величину нормировки.
Итоговый обобщённый
классификатор (мультикласс)
Ответы сигнатурного и шаблонного классификаторов
объединяются в единый вектор признаков, который
подвергается дополнительной обработке:
• Нормировка оценок к единице, для получения их
относительной доли на класс;
• Группировка редких классов для получения
достаточного числа обучающих примеров на группу;
• Взятие разности групповых оценок для получения более
пологой поверхности для градиентного спуска.
По результирующему вектору признаков строится модель
xgboost, дающая прирост точности в пределах 3% к
точности оригинальных классификаторов.
Итоговый обобщённый
классификатор (мультикласс)
Кол-во классов в выдаче Точность классификатора Тривиальный классификатор
1 51,26% 14,86%
2 70,04% 27,99%
3 78,80% 38,36%
4 82,25% 47,81%
5 85,48% 54,49%
Бинарный обобщённый
классификатор
Суть регрессия от:
• Сигнатурного классификатора:
– 2 + 59 классов;
• Шаблонного классификатора:
– 2 + 59 классов;
• XgBoost на выходах сигнатурного и шаблонного классификатора.
Критерий оптимизации – максимум площади под произведением полноты на
точность на отрезке [0;1] при этом, выдача классификатора не попадающая в
отрезок считается ложным срабатыванием.
Что даёт:
• Максимизирует рабочую область классификатора;
• Отбрасывает часть примеров в область ниже нуля => является сигналом, что
классификатор не в состоянии отработать данные примеры => классификатор
даёт отказ.
Бинарный обобщённый
классификатор, 1:20
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
0.03
0.06
0.09
0.12
0.15
0.18
0.21
0.24
0.27
0.3
0.33
0.36
0.39
0.42
0.45
0.48
0.51
0.54
0.57
0.6
0.63
0.66
0.69
0.72
0.75
0.78
0.81
0.84
0.87
0.9
0.93
0.96
0.99
Полнота
Точность
Бинарный обобщённый
классификатор, 1:20, Анализ
• Полнота начинается с 73% => 27% всех положительных
примеров не могут быть эффективно отработаны
классификатором;
• Наличествует завал точности от 96% до 0% => в выборке есть
порядка 4% примеров, размеченных как негативные, хотя на
самом деле они позитивные (проблема полноты разметки);
• Явно видны пять областей:
– Область отказа классификатора (менее нуля);
– две квазилинейные области;
– Область насыщения (максимальная эффективность);
– Область завала (проблема полноты разметки).
• Деление на области даёт возможность разработать
дополнительные средства классификации для каждой из
областей, особенно для 1-й и 5-й.
Бинарный обобщённый
классификатор, 1:182
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
0.03
0.06
0.09
0.12
0.15
0.18
0.21
0.24
0.27
0.3
0.33
0.36
0.39
0.42
0.45
0.48
0.51
0.54
0.57
0.6
0.63
0.66
0.69
0.72
0.75
0.78
0.81
0.84
0.87
0.9
0.93
0.96
0.99
Полнота
Точность
Бинарный обобщённый
классификатор, 1:182, Анализ
• Полнота начинается с 76% => 24% всех
положительных примеров не могут быть
эффективно отработаны классификатором;
• 12% всех положительных примеров однозначно
узнаются классификатором (100% точность);
• Явно видны четыре области:
– Область отказа классификатора (менее нуля);
– две квазилинейные области;
– Область 100% точности.
• График полноты вогнут без точек перегиба =>
классификатор обладает высокой
избирательностью.
Построение классификатора для
классов, у которых нет обучающих
примеров
Реальность такова, что существует достаточно
большое количество классов, к которым не
размечено ни одного документа, и единственная
доступная информация – это сообщение
Заказчика, какие именно документы он желает
классифицировать в данный класс.
Построение обучающей выборки вручную
невозможно, поскольку на 1.7 млн. имеющихся в
базе документов можно ожидать только
несколько документов, подпадающих под
данный класс, а возможно – и не одного.
Класс “Маркетинговые
исследования косметики”
Из анализа названия класса мы видим, что Заказчику интересны
документы, имеющие отношение к “Маркетинговые
исследования” и “Косметика”. Для обнаружения таких документов
необходимо:
• Сформировать семантическое ядро из текстов по заданным
тематикам, при этом, на всех представляющих интерес языках;
• Найти те тематики, которые не имеют отношения к заданному
классу – их использовать в качестве негативных примеров
(например – политика);
• Найти в базе документов несколько образцов документов,
которые имеют частичное либо точное отношение к заданному
классу;
• Разметить найденные документы силами ассесоров Заказчика;
• Построить классификатор.
Сборка
семантического
ядра текстов.
Точка входа
Сборка семантического ядра текстов.
Куст текстов заданной тематики
Сборка семантического ядра
текстов. Мультиязычные тексты
Использование семантических ядер
У нас есть три тематики:
• Маркетинговые исследования;
• Косметика;
• Политика.
Используем шаблонный классификатор на данные три класса. Обработаем все документы в базе
документов и получим:
• Маркетинговые исследования 20%;
• Косметика 6%;
• Политика 74%.
Данные доли не показывают фактическое распределение документов по тематикам, они
показывают только средние веса признаков каждого класса, выделенных шаблонным
классификатором.
Однако, если исследуется документ, имеющий распределение долей 30%, 20%, 50% о таком
документе можно утверждать, что он содержит больше признаков текста с заданными
тематиками против негативной тематики (политика), соответственно – данный текст потенциально
интересен:
30%
50%
20%
74%
= 2.22 ∶
маркетинг
политика
20%
50%
6%
74%
= 4.93:
косметика
политика
Результаты поиска документов
В результате обработки всей базы документов было
выделено ~80 документов, из которых:
• Два оказались имеющими полное соответствие классу:
– не были найдены ранее при обработке документов
вручную;
– На разных языках, отличных от языка точки входа в
семантическое ядро (русского);
• ~36 % всех найденных документов имеют частичное
отношение к классу;
• Остальные не имеют отношения к классу вообще.
Важно, что в результате оценки получена размеченная
выборка ~80 документов, содержащих как позитивные, так
и негативные примеры.
Построение классификатора
Более 60% ложных срабатываний сигнализируют
о том, что одной политики в качестве
негативного примера недостаточно.
Решение:
• Найти автоматическим способом другие
тематики текстов, которые могут
использоваться в качестве негативных и,
потенциально, позитивных примеров. Для
этого:
– Сформировать автоматически наборы текстов на
большое количество тематик и выделить те из них,
что коррелируют (негативно или положительно) с
размеченной выборкой ~80 документов.
Онтология DBPedia
Онтология DBPedia. Формат RDF
<http://ru.dbpedia.org/resource/Столыпинская
_аграрная_реформа>
<http://www.w3.org/2000/01/rdf-
schema#comment> "Столыпинская аграрная
реформа — обобщённое название широкого
комплекса мероприятий в области сельского
хозяйства, проводившихся правительством
России под руководством П. А. Столыпина,
начиная с 1906 года."@ru .
Триплет “Объект” – “Свойство” – “Значение”
Онтология DBPedia. Представляют
интерес:
• Short Abstracts – краткая аннотация статьи;
• Long Abstracts – длинная аннотация статьи;
• Homepages – ссылки на внешние ресурсы,
домашние страницы;
• Article Categories – категория страницы;
• Category labels – читаемые названия
категорий;
• External links – ссылки на внешние ресурсы по
теме;
• Interlanguage links – Эта же статья на других
языках.
[Ожидаемые] результаты поиска
коррелированных тематик в DBPEdia
Результатом поиска коррелированных тематик будут являться:
• Наборы текстов на всех языках по заданным тематикам;
• Оценка степени коррелированности текстов по отношению к
классу;
• Человекочитаемое (словестное) описание тематик.
При этом, коррелированные тематики зависят не только от класса
“Маркетинговые исследования косметики”, но и от тематик
документов, содержащихся в базе (для тематик с отрицательной
корреляцией). Что позволяет использовать найденные тематики:
• для ручного построения классификаторов на другие темы;
• как дополнительные признаки для текстов, классифицируемых
итоговым обобщённым классификатором;
• Для создания дополнительных измерений метрик подобия
текстов в векторном пространстве сигнатурного
классификатора:
– Тут я отсылаю к своей статье в сборнике Диалога 2015 года по
обучению по аналогии в смешанных онтологических сетях.
Спасибо и вопросы?

More Related Content

What's hot

АиСД осень 2012 лекция 12
АиСД осень 2012 лекция 12АиСД осень 2012 лекция 12
АиСД осень 2012 лекция 12Technopark
 
Как стать электронной компанией в Спб. Часть 1
Как стать электронной компанией в Спб. Часть 1Как стать электронной компанией в Спб. Часть 1
Как стать электронной компанией в Спб. Часть 1GooVape
 
Создание электронной библиотеки научных трудов на платформе Dspace
Создание электронной библиотеки научных трудов на платформе DspaceСоздание электронной библиотеки научных трудов на платформе Dspace
Создание электронной библиотеки научных трудов на платформе Dspacebntulibrary
 
Алгоритмы автоматизированного составления и группировки семантических ядер (Н...
Алгоритмы автоматизированного составления и группировки семантических ядер (Н...Алгоритмы автоматизированного составления и группировки семантических ядер (Н...
Алгоритмы автоматизированного составления и группировки семантических ядер (Н...Nikolay Khivrin
 
Создание репозитория вуза на платформе Dspace
Создание репозитория вуза на платформе DspaceСоздание репозитория вуза на платформе Dspace
Создание репозитория вуза на платформе Dspacebntulibrary
 
автоматическая классификация поисковых запросов
автоматическая классификация поисковых запросовавтоматическая классификация поисковых запросов
автоматическая классификация поисковых запросовvladtt
 

What's hot (7)

презентация интернет
презентация интернетпрезентация интернет
презентация интернет
 
АиСД осень 2012 лекция 12
АиСД осень 2012 лекция 12АиСД осень 2012 лекция 12
АиСД осень 2012 лекция 12
 
Как стать электронной компанией в Спб. Часть 1
Как стать электронной компанией в Спб. Часть 1Как стать электронной компанией в Спб. Часть 1
Как стать электронной компанией в Спб. Часть 1
 
Создание электронной библиотеки научных трудов на платформе Dspace
Создание электронной библиотеки научных трудов на платформе DspaceСоздание электронной библиотеки научных трудов на платформе Dspace
Создание электронной библиотеки научных трудов на платформе Dspace
 
Алгоритмы автоматизированного составления и группировки семантических ядер (Н...
Алгоритмы автоматизированного составления и группировки семантических ядер (Н...Алгоритмы автоматизированного составления и группировки семантических ядер (Н...
Алгоритмы автоматизированного составления и группировки семантических ядер (Н...
 
Создание репозитория вуза на платформе Dspace
Создание репозитория вуза на платформе DspaceСоздание репозитория вуза на платформе Dspace
Создание репозитория вуза на платформе Dspace
 
автоматическая классификация поисковых запросов
автоматическая классификация поисковых запросовавтоматическая классификация поисковых запросов
автоматическая классификация поисковых запросов
 

Viewers also liked

Классификация поисковых запросов
Классификация поисковых запросовКлассификация поисковых запросов
Классификация поисковых запросовСергей Пономарев
 
Концепция поисковых расширений
Концепция поисковых расширенийКонцепция поисковых расширений
Концепция поисковых расширенийСергей Пономарев
 
ПОСТРОЕНИЕ ОТНОШЕНИЙ В СМЕШАННОЙ ОНТОЛОГИЧЕСКОЙ СЕТИ ДЛЯ РЕШЕНИЯ ЗАДАЧ ТЕСТИР...
ПОСТРОЕНИЕ ОТНОШЕНИЙ В СМЕШАННОЙ ОНТОЛОГИЧЕСКОЙ СЕТИ ДЛЯ РЕШЕНИЯ ЗАДАЧ ТЕСТИР...ПОСТРОЕНИЕ ОТНОШЕНИЙ В СМЕШАННОЙ ОНТОЛОГИЧЕСКОЙ СЕТИ ДЛЯ РЕШЕНИЯ ЗАДАЧ ТЕСТИР...
ПОСТРОЕНИЕ ОТНОШЕНИЙ В СМЕШАННОЙ ОНТОЛОГИЧЕСКОЙ СЕТИ ДЛЯ РЕШЕНИЯ ЗАДАЧ ТЕСТИР...Сергей Пономарев
 
Автоматическая голосовая служба поддержки
Автоматическая голосовая служба поддержкиАвтоматическая голосовая служба поддержки
Автоматическая голосовая служба поддержкиСергей Пономарев
 

Viewers also liked (8)

Классификация поисковых запросов
Классификация поисковых запросовКлассификация поисковых запросов
Классификация поисковых запросов
 
Концепция поисковых расширений
Концепция поисковых расширенийКонцепция поисковых расширений
Концепция поисковых расширений
 
ПОСТРОЕНИЕ ОТНОШЕНИЙ В СМЕШАННОЙ ОНТОЛОГИЧЕСКОЙ СЕТИ ДЛЯ РЕШЕНИЯ ЗАДАЧ ТЕСТИР...
ПОСТРОЕНИЕ ОТНОШЕНИЙ В СМЕШАННОЙ ОНТОЛОГИЧЕСКОЙ СЕТИ ДЛЯ РЕШЕНИЯ ЗАДАЧ ТЕСТИР...ПОСТРОЕНИЕ ОТНОШЕНИЙ В СМЕШАННОЙ ОНТОЛОГИЧЕСКОЙ СЕТИ ДЛЯ РЕШЕНИЯ ЗАДАЧ ТЕСТИР...
ПОСТРОЕНИЕ ОТНОШЕНИЙ В СМЕШАННОЙ ОНТОЛОГИЧЕСКОЙ СЕТИ ДЛЯ РЕШЕНИЯ ЗАДАЧ ТЕСТИР...
 
LEARNING BY ANALOGY IN A HYBRID ONTOLOGICAL NETWORK
LEARNING BY ANALOGY IN A HYBRID ONTOLOGICAL NETWORKLEARNING BY ANALOGY IN A HYBRID ONTOLOGICAL NETWORK
LEARNING BY ANALOGY IN A HYBRID ONTOLOGICAL NETWORK
 
Автоматическая голосовая служба поддержки
Автоматическая голосовая служба поддержкиАвтоматическая голосовая служба поддержки
Автоматическая голосовая служба поддержки
 
Конкурс Родная речь 2014
Конкурс Родная речь 2014Конкурс Родная речь 2014
Конкурс Родная речь 2014
 
Learning by Analogy
Learning by AnalogyLearning by Analogy
Learning by Analogy
 
Word2vec для поискового движка II
Word2vec для поискового движка IIWord2vec для поискового движка II
Word2vec для поискового движка II
 

Similar to Технологический стек классификации текстов на естественных языках

Similar to Технологический стек классификации текстов на естественных языках (6)

clasification
clasificationclasification
clasification
 
Кластеризация русскоязычных текстов на основе латентно-семантического анализа
Кластеризация русскоязычных текстов на основе латентно-семантического анализаКластеризация русскоязычных текстов на основе латентно-семантического анализа
Кластеризация русскоязычных текстов на основе латентно-семантического анализа
 
Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...
Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...
Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...
 
03 кластеризация документов
03 кластеризация документов03 кластеризация документов
03 кластеризация документов
 
Доклад на семинаре в лаборатории алгоритмической биологии АУ
Доклад на семинаре в лаборатории алгоритмической биологии АУДоклад на семинаре в лаборатории алгоритмической биологии АУ
Доклад на семинаре в лаборатории алгоритмической биологии АУ
 
Обзор Ruby
Обзор RubyОбзор Ruby
Обзор Ruby
 

Технологический стек классификации текстов на естественных языках

  • 2. Дистрибутивная семантика (Word2Vec) • Обучается без учителя на любых текстах; • Ставит каждому токену в соответствие вектор действительных чисел, такой, что: – Для любых двух токенов можно определить метрику* расстояния между ними (косинусная мера); – Для семантически связанных токенов расстояние оказывается положительным и стремится к 1: • Взаимозаменяемые слова (модель Skipgram); • Ассоциированные слова (модель Bag of Words). * На самом деле - нет
  • 3. Взаимозаменяемые слова Enter word or sentence (EXIT to break): кофе коффе 0.734483 чая 0.690234 чай 0.688656 капучино 0.666638 кофн 0.636362 какао 0.619801 эспрессо 0.599390
  • 4. Ассоциированные слова Enter word or sentence (EXIT to break): кофе зернах 0.757635 растворимый 0.709936 чая 0.709579 коффе 0.704036 mellanrost 0.694822 сублемированный 0.694553 молотый 0.690066 кофейные 0.680409
  • 5. Обобщение нескольких слов (A+B) Enter word or sentence (EXIT to break): мобильный телефон сотовый 0.811114 телефона 0.776416 смартфон 0.730191 телфон 0.719766 мобильного 0.717972 мобильник 0.706131
  • 6. Проецирование отношений (A-B+С) Найти такое слово, которое относится к украине так-же, как доллар относится к сша (то есть – что является валютой украины?): Enter three words (EXIT to break): сша доллар украина гривне 0.622719 долар 0.607078 гривны 0.597969 рубля 0.596636 Найти такое слово, которое относится к germany так-же, как франция относится к france (то есть – перевод слова germany): Enter three words (EXIT to break): france франция germany германия 0.748171 англия 0.692712 нидерланды 0.665715 великобритания 0.651329
  • 7. Преимущества и недостатки • Учится быстро на неподготовленных текстах: – 1.5 месяца на 100 Гб обучающий файл, модели BagOfWords и Skipgram, на 24-х ядрах; • Снижает размерность: – 2.5 млн. токенов словарь ужимается до 256 элементов вектора действительных чисел; • Векторные операции быстро деградируют: – Результат сложения 3-5 слов уже практически бесполезен => неприменимо для обработки текстов; • Элементы вектора смысла не имеют, имеют смысл только расстояния между векторами => метрика между токенами одномерна.
  • 8. Семантический вектор • Пример с кофе показывает, что токены группируются по смыслу (напитки); • Необходимо сформировать достаточное число кластеров; • Размечать кластеры нет необходимости. Тогда, получим набор кластеров, в которых токены сгруппированы по смыслу, и, при необходимости, каждому кластеру можно присвоить метку => каждый кластер имеет независимый от других смысл.
  • 9. Сигнатура текста • Текст состоит из токенов, каждый из которых привязан к своему кластеру; • Можно подсчитать количество вхождений токена в текст и перевести в количество вхождений кластера в текст (сумма всех токенов, входящих в кластер); • В отличии от размеров словаря (2.5 млн. токенов), количество кластеров много меньше (2048) => работает эффект снижения размерности; • Перейдём от общего количества подсчитанных в тексте токенов к их относительному количеству (доле). Тогда: – Доля не зависит от длины текста, а зависит только от частоты появления токенов в тексте => появляется возможность сравнивать тексты разной длины; – Доля характеризует тематику текста => тематика текста определяется теми словами, которые используются; • Отнормируем доли конкретных текстов мат. ожиданием и дисперсией, вычисленными по всей базе: – Это повысит значимость редких кластеров (встречающихся не во всех текстах – например, названия) по сравнению с частыми кластерами (например – местоимения, глаголы и прочие связующие слова); • Текст определяется своей сигнатурой – вектором 2048 действительных чисел, имеющих смысл как нормированные доли токенов тематических кластеров, из которых составлен текст.
  • 10. Сигнатурный классификатор • Каждому текстовому документу ставится в соответствие сигнатура; • Размеченная обучающая выборка текстов превращается в размеченную базу сигнатур; • Для исследуемого текста формируется его сигнатура, которая последовательно сравнивается с сигнатурами каждого файла из обучающей выборки; • Решение по классификации принимается на основе kNN (k ближайших соседей), где k=3.
  • 11. Преимущества и недостатки • Преимущества: – Нет потерь информации от обобщения (сравнение идёт с каждым оригинальным файлом из обучающей выборки); – Приемлемая скорость работы – порядка 0.3 секунды на прогон базы сигнатур в 1.7 млн. документов в 24 потока; – Возможность выделять нечёткие дубликаты: • Бесплатно (сравнение сигнатур и так происходит на этапе классификации); • Высокая избирательность (анализируются только потенциальные дубли, составленные преимущественно из тех-же самых токенов, т.е. – имеющих высокую меру близости сигнатур); • Настраиваемость (можно занизить порог срабатывания и получать не просто дубли, а тематически и стилистически близкие тексты); – Нормированность оценок (0;1] – Лёгкость пополнения обучающей выборки новыми документами (и лёгкость исключения документов из неё); • Недостатки: – Никак не учитывается взаимное расположение токенов (словосочетания); – Большие неснижаемые требования к оперативной памяти (35+ Гб); – Плохо (никак) не работает, когда на класс приходится малое количество образцов (единицы).
  • 12. Точность и полнота (бинарная классификация) 0 10 20 30 40 50 60 70 80 90 100 0.4 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6 Точность Полнота
  • 13. Тонкая настройка сигнатурного классификатора Как видно из графика “точность и полнота” рабочая область классификатора достаточно узкая. Решение – разметить оригинальный текстовый обучающий файл, по которому учится Word2Vec. Для этого в текст документа внедряются метки, определяющие класс документа: • Как результат, кластеры располагаются в векторном пространстве не случайным образом, а разводятся так, что бы кластеры одного класса тяготели друг к другу и отстояли на максимальное расстояние от кластеров противоположного класса. Кластеры, характерные для обоих классов располагаются посередине. Требования к памяти снижаются путём сокращения размеров базы сигнатур: • Сигнатуры обучающей выборки, содержащие излишнее количество образцов (более миллиона), последовательно кластеризуются на большое число кластеров и из каждого кластера используется одна сигнатура. Тем самым: – Сохраняется относительно равномерное покрытие векторного пространства сигнатурами образцов; – Удаляются сигнатуры образцов, излишне близких друг другу, и, соответственно, мало полезных для классификации.
  • 14. Точность многоклассовой классификации Выделенных классов Доля выделенных классов %%в общем числе классов Точность классификации %% 1 0.273224 6.80059 2 0.546448 27.6964 3 0.819672 42.8124 5 1.36612 60.7113 7 1.91257 70.0642 9 2.45902 76.305 13 3.55191 83.2867 17 4.64481 87.1892 22 6.01093 90.4495 160 43.7158 99.012 • При большом числе классов трудно дать правильный ответ в первом же классе. Поэтому правильным срабатыванием классификатора считается наличие правильного класса в первых нескольких выделенных классах.
  • 15. Сигнатурный классификатор, резюме • Быстрый; • Легко дополняемый; • Позволяет также обнаруживать дубликаты; • Не учитывает взаимное расположение токенов; • Не работает, когда в обучающей выборке мало примеров.
  • 16. Шаблонный классификатор • Основан на граммах длиной до 16-ти элементов: – Часть целевых текстов оформлена по стандартам (STANAG, ISO). Есть много типовых элементов: • Заголовки; • Подписи; • Листы согласования и архивные метки; – Часть целевых документов содержат в себе информацию по оформлению: • Xml (включая все современные офисные стандарты); • Html; – Практически все содержат устойчивые словосочетания, например: • “с уважением, майор Пронин”; • “доположено в ГШ и СНБО”; • Является упрощённой реализацией Наивного Баессового классификатора (без нормировки); • Генерит до 60-ти млн. классифицирующих грамм; • Работает быстро (конечный автомат).
  • 17. Построение классификатора • Из текстов выделяются граммы; • Вычисляется относительная частота грамм на класс; • Если для разных классов относительная частота сильно отличается (в разы) грамма является классифицирующим признаком; • Редкие граммы, встреченные 1 раз, отбрасываются; • Обучающая выборка классифицируется, и по тем документам, по которым классификация была ошибочна, формируются дополнительные граммы, и добавляются в общую базу грамм.
  • 18. Использование классификатора • Из текста выделяются граммы; • Суммируются веса всех грамм для каждого класса, к которому они относятся; • Побеждает класс, набравший наибольшую сумму весов; • При этом: – Класс, в котором было больше обучающих текстов, формирует обычно больше классифицирующих грамм; – Редкий класс (мало обучающих текстов) генерит мало грамм, но их средний вес выше (из-за преобладания длинных уникальных для данного класса грамм); – Текст, в котором нет явного преобладания редких длинных грамм, будет отнесён к классу с большим числом обучающих примеров (апостериорное распределение стремится к априорному); – Текст, имеющий длинные уникальные граммы редкого класса, будет отнесён скорее к данному редкому классу (намеренно внесённое искажение в апостериорное распределение с целью повысить избирательность на редких классах).
  • 19. Преимущества и недостатки Преимущества: • Относительно быстрый и компактный; • Неплохо параллелится; • Способен обучаться по единственному документу в обучающей выборке на класс; Недостатки: • Оценки ненормированы и в оригинальном виде не обеспечивают критерий pairwize (нельзя гарантировать, что оценка с большим весом более вероятна); • Генерится огромное количество грамм с околонулевой вероятностью встретить их в реальных документах (не дублях); • Огромные требования к памяти на этапе обучения.
  • 20. Ненормированность оценок Почему: • Нет необходимости делать нормировку – сильное упрощение кода; • Ненормированные оценки содержат больше потенциально доступной для классификации информации. Как использовать: • Оценки классификатора являются хорошими признаками для использования в универсальных классификаторах (xgboost, SVM, ANN); • При этом, универсальные классификаторы сами определяют оптимальную величину нормировки.
  • 21. Итоговый обобщённый классификатор (мультикласс) Ответы сигнатурного и шаблонного классификаторов объединяются в единый вектор признаков, который подвергается дополнительной обработке: • Нормировка оценок к единице, для получения их относительной доли на класс; • Группировка редких классов для получения достаточного числа обучающих примеров на группу; • Взятие разности групповых оценок для получения более пологой поверхности для градиентного спуска. По результирующему вектору признаков строится модель xgboost, дающая прирост точности в пределах 3% к точности оригинальных классификаторов.
  • 22. Итоговый обобщённый классификатор (мультикласс) Кол-во классов в выдаче Точность классификатора Тривиальный классификатор 1 51,26% 14,86% 2 70,04% 27,99% 3 78,80% 38,36% 4 82,25% 47,81% 5 85,48% 54,49%
  • 23. Бинарный обобщённый классификатор Суть регрессия от: • Сигнатурного классификатора: – 2 + 59 классов; • Шаблонного классификатора: – 2 + 59 классов; • XgBoost на выходах сигнатурного и шаблонного классификатора. Критерий оптимизации – максимум площади под произведением полноты на точность на отрезке [0;1] при этом, выдача классификатора не попадающая в отрезок считается ложным срабатыванием. Что даёт: • Максимизирует рабочую область классификатора; • Отбрасывает часть примеров в область ниже нуля => является сигналом, что классификатор не в состоянии отработать данные примеры => классификатор даёт отказ.
  • 25. Бинарный обобщённый классификатор, 1:20, Анализ • Полнота начинается с 73% => 27% всех положительных примеров не могут быть эффективно отработаны классификатором; • Наличествует завал точности от 96% до 0% => в выборке есть порядка 4% примеров, размеченных как негативные, хотя на самом деле они позитивные (проблема полноты разметки); • Явно видны пять областей: – Область отказа классификатора (менее нуля); – две квазилинейные области; – Область насыщения (максимальная эффективность); – Область завала (проблема полноты разметки). • Деление на области даёт возможность разработать дополнительные средства классификации для каждой из областей, особенно для 1-й и 5-й.
  • 27. Бинарный обобщённый классификатор, 1:182, Анализ • Полнота начинается с 76% => 24% всех положительных примеров не могут быть эффективно отработаны классификатором; • 12% всех положительных примеров однозначно узнаются классификатором (100% точность); • Явно видны четыре области: – Область отказа классификатора (менее нуля); – две квазилинейные области; – Область 100% точности. • График полноты вогнут без точек перегиба => классификатор обладает высокой избирательностью.
  • 28. Построение классификатора для классов, у которых нет обучающих примеров Реальность такова, что существует достаточно большое количество классов, к которым не размечено ни одного документа, и единственная доступная информация – это сообщение Заказчика, какие именно документы он желает классифицировать в данный класс. Построение обучающей выборки вручную невозможно, поскольку на 1.7 млн. имеющихся в базе документов можно ожидать только несколько документов, подпадающих под данный класс, а возможно – и не одного.
  • 29. Класс “Маркетинговые исследования косметики” Из анализа названия класса мы видим, что Заказчику интересны документы, имеющие отношение к “Маркетинговые исследования” и “Косметика”. Для обнаружения таких документов необходимо: • Сформировать семантическое ядро из текстов по заданным тематикам, при этом, на всех представляющих интерес языках; • Найти те тематики, которые не имеют отношения к заданному классу – их использовать в качестве негативных примеров (например – политика); • Найти в базе документов несколько образцов документов, которые имеют частичное либо точное отношение к заданному классу; • Разметить найденные документы силами ассесоров Заказчика; • Построить классификатор.
  • 31. Сборка семантического ядра текстов. Куст текстов заданной тематики
  • 33. Использование семантических ядер У нас есть три тематики: • Маркетинговые исследования; • Косметика; • Политика. Используем шаблонный классификатор на данные три класса. Обработаем все документы в базе документов и получим: • Маркетинговые исследования 20%; • Косметика 6%; • Политика 74%. Данные доли не показывают фактическое распределение документов по тематикам, они показывают только средние веса признаков каждого класса, выделенных шаблонным классификатором. Однако, если исследуется документ, имеющий распределение долей 30%, 20%, 50% о таком документе можно утверждать, что он содержит больше признаков текста с заданными тематиками против негативной тематики (политика), соответственно – данный текст потенциально интересен: 30% 50% 20% 74% = 2.22 ∶ маркетинг политика 20% 50% 6% 74% = 4.93: косметика политика
  • 34. Результаты поиска документов В результате обработки всей базы документов было выделено ~80 документов, из которых: • Два оказались имеющими полное соответствие классу: – не были найдены ранее при обработке документов вручную; – На разных языках, отличных от языка точки входа в семантическое ядро (русского); • ~36 % всех найденных документов имеют частичное отношение к классу; • Остальные не имеют отношения к классу вообще. Важно, что в результате оценки получена размеченная выборка ~80 документов, содержащих как позитивные, так и негативные примеры.
  • 35. Построение классификатора Более 60% ложных срабатываний сигнализируют о том, что одной политики в качестве негативного примера недостаточно. Решение: • Найти автоматическим способом другие тематики текстов, которые могут использоваться в качестве негативных и, потенциально, позитивных примеров. Для этого: – Сформировать автоматически наборы текстов на большое количество тематик и выделить те из них, что коррелируют (негативно или положительно) с размеченной выборкой ~80 документов.
  • 37. Онтология DBPedia. Формат RDF <http://ru.dbpedia.org/resource/Столыпинская _аграрная_реформа> <http://www.w3.org/2000/01/rdf- schema#comment> "Столыпинская аграрная реформа — обобщённое название широкого комплекса мероприятий в области сельского хозяйства, проводившихся правительством России под руководством П. А. Столыпина, начиная с 1906 года."@ru . Триплет “Объект” – “Свойство” – “Значение”
  • 38. Онтология DBPedia. Представляют интерес: • Short Abstracts – краткая аннотация статьи; • Long Abstracts – длинная аннотация статьи; • Homepages – ссылки на внешние ресурсы, домашние страницы; • Article Categories – категория страницы; • Category labels – читаемые названия категорий; • External links – ссылки на внешние ресурсы по теме; • Interlanguage links – Эта же статья на других языках.
  • 39. [Ожидаемые] результаты поиска коррелированных тематик в DBPEdia Результатом поиска коррелированных тематик будут являться: • Наборы текстов на всех языках по заданным тематикам; • Оценка степени коррелированности текстов по отношению к классу; • Человекочитаемое (словестное) описание тематик. При этом, коррелированные тематики зависят не только от класса “Маркетинговые исследования косметики”, но и от тематик документов, содержащихся в базе (для тематик с отрицательной корреляцией). Что позволяет использовать найденные тематики: • для ручного построения классификаторов на другие темы; • как дополнительные признаки для текстов, классифицируемых итоговым обобщённым классификатором; • Для создания дополнительных измерений метрик подобия текстов в векторном пространстве сигнатурного классификатора: – Тут я отсылаю к своей статье в сборнике Диалога 2015 года по обучению по аналогии в смешанных онтологических сетях.