Таблица 6 - Результат тестирования логистической регрессии
|
Текст № |
Список маркеров на уровне абзаца |
Список маркеров на уровне предложения |
Список маркеров, обнаруженных человеком |
|
|
1 (АиФ) |
разрушение, присягнуть, служба, польша, рука, гражданин, как, куски, на, значительный, собственный, сам, часть, не, большинство, форму, русский, бжезинский, ненавидеть |
польша, удаться, служба, на, собственный, бжезинский, который, разрушение, присягнуть, как, с, ненавидеть, куски, сам, вновь, правда, уже, увидеть, детства |
антирусским, уничтожения, разрушение, распадается, агрессивную |
|
|
2 (АиФ) |
европеец, страдать, уже, динамику, голоса, продовольствия, международный, опрос, рыба, савченко, стране, оказывать, флирт, обвинять, институт, состав, национальный, фактами, ухудшится, сельский, слов, данные, насколько, аналитик, сократиться, политика, страна, украинец, направления, слыть |
фига, мотив, для, же, самый, о, уехать, что, жаловаться, продать, обвинять, том, всё, власть, украинец, насколько, республика, свой, в, слов, савченко, слыть, другой, ситуация, считают, лишь, ухудшится, ближний |
фигу, Незалежной, наживается, криминалитет, флирта |
|
|
3 (Грани) |
обзывать, он, венеция, титул, от, гордо, ход, с, предпоследний, лишить, за, доктора, почётный, распоследней, cовет, россии, истфак, лицо, не, клеветник, отпор, открывается, к, автореферат, такой, двое, однако, из, тоже, свеженаколоть, вдруг, неприятелями, министр, диссертация, наверняка, в, схватка, не, умереть, а, читали, доставать, и, поворот |
министр, выписывать, награждать, этот, хозяин, итальянский, мразь, за, хотя, открывается, к, автореферат, такой, двое, однако, с, из, он, не, карту, тоже, вдруг, себя, ход, доктора, наверняка, неприятелями |
скандалит, ненавистники, эдак, завистники, обзывая, невеждой, норовят, наотмашь, сгубившие, мрази, конченые, унимаются, схвачено, клеветникам, распоследней, плагиатором, плагиате, враги, свеженаколотую |
|
|
4 (Грани) |
публичный, железобетонная, что, и, отразить, ужасно, на, полный, роснефть, говорить, может, придёт, нет-нет, человек, обязать, делами, о, вызвать, рандеву, районный, совпадают, корзиночке, юлита(юлит) |
ужасно, не, тут, юлита(юлит), суд, общественный, нет-нет, в, он, иванович, но, человек, делами, всякий, что, игорь, отстать, от |
юлит, (не)явки, корзиночке, приговаривайте, ерундой |
|
|
5 (Газета) |
- |
задержать, разведывательный, что, журналист, покинуть, минск, же, шпионаж |
шпионаж, шпионаже |
|
|
6 (Газета) |
система, встреча, год, дональд, страна, что, и, на, ли, второй, отложить, случай, противовес, за, пост, всего, гармонизация, нет, политика, сей, в, высказывать, или, избрание |
год, дональд, пост, россия, случай, высказывать, срок, сдержка, всему, в, смочь, они, нет, что, до, встретиться, правда, ни, официальный |
- |
|
|
7 (РИА) |
- |
сирийский, уже, состояться, января, военный |
- |
|
|
8 (РИА) |
- |
- |
- |
|
|
9 (Лурк) |
часть, метисами, так, быть, самый, ашкеназов, из, о, весь, ерж, а, долгих, сефард, версия, векслером, но, генетический, происхождение, при, треть, только |
мочь, по, из, некоторых, только, принять, озвучить, а, же, маргинальной, ерж, но, западло, упоминание, как, школотый, генетический, знать |
школота, блджад, круглоголовыми, арменоидами, фошысты, срать, западло, похуй, ЕРЖ, маргинальной |
|
|
10 (Лурк) |
закончится, потому, выблёвываются, просираются, только, унитаз, в, праздничный, и, буквальный, фразеологизм, самый, деньга, следующий, праздник, не |
граф, у, даже, закончится, стола, терять, талый, в, сгодиться, продукт, мочь, хозяин, еда, завалять, но, деньга, и, значении, потому, праздник, следующий, атрибут |
алконавт, планктон, халявной, жрачки, корпоративчике, поцреоты, ТП, бухлом, нажираться, невзначай, скормить, завалявшие, талым, зохавать, просрать, просираются, выблёвываются |
Таблица 7 - Результат тестирования случайного леса
|
Текст № |
Список маркеров на уровне абзаца |
Список маркеров на уровне предложения |
Список маркеров, обнаруженных человеком |
|
|
1 (АиФ) |
ненавидеть, воплощаться, как, магнатов, служба, приближаться, рука, европейский, америки, то, который, антирусский, и |
он, не, ненавидеть, значительный, куски, уже, оружие, в, как, магнатов, сам, служба |
антирусским, уничтожения, разрушение, распадается, агрессивную |
|
|
2 (АиФ) |
не, выявлять, формироваться |
на, страна, и, учиться, дело, же, работник, что |
фигу, Незалежной, наживается, криминалитет, флирта |
|
|
3 (Грани) |
лицо, за, титул, советские, награждать, мантия, пытаться, хозяин, самый, домой, вак, не, на, радушный, скандалит, она, он, из, теперь, свеженаколоть, не, доставать, такой, открывается, министр, козырный, читали, а, неприятелями |
мразь, клеветник, и, унимаются, диссертационный, совет, то, весь, лицо, уже, в, выразить, ольга, являться, распоследней, сообщив, министр, который, не, даже, плагиат, он, враги, она, теперь, из, двое, открывается, что, с, неприятелями, козырный |
скандалит, ненавистники, эдак, завистники, обзывая, невеждой, норовят, наотмашь, сгубившие, мрази, конченые, унимаются, схвачено, клеветникам, распоследней, плагиатором, плагиате, враги, свеженаколотую |
|
|
4 (Грани) |
поскольку, у, согласовывать, может, что, и, компания, полный, совместить, там, он, роснефть, отразить, ведь, публичный, железобетонная, если, не |
поскольку, роснефть, ведь, публичный, он, позиция, говорить |
юлит, (не)явки, корзиночке, приговаривайте, ерундой |
|
|
5 (Газета) |
украина, вести, подозреваться, покинуть, данный, полковник, а, минск, первый, собственный |
же, что, вести, покинуть, посольство, собственный, украина, том |
шпионаж, шпионаже |
|
|
6 (Газета) |
встреча, что, и |
что, американский, всему, в, противовес, политика, срок, сдержка, потепление, по, не, двусторонний |
- |
|
|
7 (РИА) |
состоятся, семь, сирия, россией, на, страна-гарант, января, раунд, прекращение |
продолжаться, военный, встреч, января, года |
- |
|
|
8 (РИА) |
институт, заявления, путин, пост, россия, свой, в, предновогодний, но, исключить |
институт, заявления, пост, путин, россия, исключить, не, очень, под, что, потому, декабрь, послание, общественный, вероятно |
- |
|
|
9 (Лурк) |
весь, время, правдоподобная, ашкеназ, принять |
какой, оный, народом, весь, испанцев, например, нормальный, официальный, школотый, ашкеназов, похуй |
школота, блджад, круглоголовыми, арменоидами, фошысты, срать, западло, похуй, ЕРЖ, маргинальной |
|
|
10 (Лурк) |
чего-то, мизантроп, офисный, даже, от, тп, потому, выблевываются, просираются, только, в |
включаться, часть, набор, по, это, одной, а |
алконавт, планктон, халявной, жрачки, корпоративчике, поцреоты, ТП, бухлом, нажираться, невзначай, скормить, завалявшие, талым, зохавать, просрать, просираются, выблёвываются |
Как можно видеть из таблиц 5-7, выбранные классификаторами слова заметно отличаются как от человеческой оценки, так и от выбора программы на базе словарей. Они не справляются с задачей выделения редких слов, особенно когда такие слова характеризуют лишь какой-то аспект предмета речи и потому не являются важными для текста. Однако они могут выделять отрицательные и усилительные частицы, союзы противопоставления, которые хоть и не являются маркерами сами по себе, но значительно влияют на общую тональность текста.
Таблица 8 - Сводные результаты работы алгоритмов
|
Алгоритм |
Accuracy |
Precision |
Recall |
F-measure |
|
|
Словарный |
0,98 |
0,82 |
0,89 |
0,84 |
|
|
Наивный Байесовский |
0,92/0,89 |
0,39/0,1 |
0,4/0,5 |
0,33/0,15 |
|
|
Логистическая регрессия |
0,87/0,87 |
0,35/0,16 |
0,42/0,47 |
0,31/0,2 |
|
|
Случайный лес |
0,88/0,89 |
0,04/0,03 |
0,24/0,25 |
0,03/0,03 |
Из таблицы 8 видно, что в целом классификаторы справились с задачей извлечения маркеров хуже, чем программа на основе словарей. Лучше всего показал себя Наивный Байесовский классификатор, а худшие результаты оказались у случайного леса. Так, случайный лес не выделил ни одного верного маркера у трёх текстов из пяти и часто выделял нейтральные слова в качестве маркеров, что снизило показатели качества, в то время как Наивный Байесовский классификатор выделял меньше некорректных слов и отмечал правильные маркеры почти во всех текстах. Стоит отметить, что у всех классификаторов затруднения вызвали тексты №5 и №10, изобилующие неправильным написанием слов, жаргонной лексикой и авторскими окказионализмами.
Так же, как и программа на основе словарей, классификаторы испытывают затруднения с искажёнными словами, именами собственными и редкими терминами, однако если программа на базе словарей может уточнить тональность такого слова у пользователя, алгоритм классификации исходит из важности слова в тексте, что приводит к разным результатам - в некоторых случаях нейтральные слова сильно влияют на интолерантность текста, в других алгоритм «не замечает» удаления негативно-оценочной лексики. Также стоит отметить случаи неверной лемматизации (школота - школотый), которые являются скорее недостатком алгоритма pymorphy и теоретически могут помешать основному алгоритму правильно определить важность слова.
Классификация по абзацам оказалась более эффективной, чем классификация по предложениям, что подтверждается метриками в таблице 8, хотя классификация по предложениям показывает лучшее значение полноты. Однако по всем трём алгоритмам сохраняется одна тенденция: маркеры, выделенные на двух уровнях, различаются, и в обоих списках находятся те, которые были отмечены экспертом как интолерантные. Это может быть объяснено тем, что абзацы в новостных статьях и блогах состоят из нескольких предложений и могут заключать в себе несколько разных идей и ключевых компонентов, что с одной стороны мешает программе правильно определить важность слова и занижает влияние определённых слов на тональность всей совокупности предложений, а с другой - помогает выделить слова, незначительные в рамках конкретного предложения, но влияющие на тональность всего абзаца. В связи с этим наиболее выгодным вариантом выглядит объединение двух типов классификации в сочетании с удалением наименее вероятных слов и последующим анализом, что позволит выделить наибольшее количество интолерантных маркеров, однако, опять же, не даст абсолютно точного результата.
Хотя алгоритм выделяет оценочно-нейтральные слова в списках интолерантных маркеров, его результаты могут быть также полезны при исследовании маркеров конкретного текста и той тональности, которую приобретают слова в зависимости от контекста. Полученные данные показывают, как воздействие на тональность всего сообщения зависит от встречаемости слова, его позиции в тексте и текстовых метрик (сообщение об украинском шпионе классифицируется как более положительное без употребления слова «Украина»). Это даёт основания полагать, что программа по-своему расценивает понятие «интолерантности» и «негативной оценки», что может быть предметом дальнейшего, более глубокого анализа.
3.3 Итоги исследования
Из результатов проведённого исследования можно сделать следующие выводы:
В целом программа на основе словарей справилась с задачей выделения интолерантной лексики лучше, чем классификаторы на основе машинного обучения. Этот результат объясним возможностью обращения к пользователю, что замедляет время работы с программой, но повышает точность, а также наличием двух базовых словарей, что позволяло программе анализировать текст, опираясь на конкретные слова, а не на общую тональность предложения, как это происходило в случае обучения классификаторов.
Как программа на основе словарей, так и классификаторы, основанные на машинном обучении, не могут выделить всех маркеров, которые выделил бы эксперт. Для программы на основе словарей средняя точность составила 82%, а полнота - 89%, в основном неправильно определялась специфическая лексика, нецензурные ругательства и намеренные искажения слов. У классификаторов значения соответствующих метрик колебались от 3 до 39% и от 24 до 50% соответственно, причём в качестве интолерантных маркеров выделялись служебные слова, которые не принадлежат к маркерам сами по себе, но влияют на тональность текста.
Программа на основе словарей вынуждена обращаться к пользователю в 25% случаев, при этом затруднения возникают с именами собственными, редкими словами, сокращениями и авторскими окказионализмами. Частоту таких обращений возможно уменьшить по мере использования программы и пополнения словарей, но полное избавление от них маловероятно.
Обученные классификаторы определяют интолерантную лексику на основе важности каждого слова в конкретном тексте и того, насколько оно влияет на общую тональность сообщения. Несмотря на то, что эти слова не всегда отрицательно-оценочны сами по себе, они могут влиять на конкретный текст, что может стать предметом дальнейших исследований.
Так как у каждого классификатора свой алгоритм и, как следствие, свой результат в виде отдельного набора маркеров, лучшим решением представляется использование одновременно нескольких классификаторов с последующим анализом и отбором итогового списка маркеров. Также разные результаты дают классификация на уровне предложения и классификация на уровне абзаца, поэтому их целесообразно использовать совместно с отбором наиболее влияющих слов для получения лучшего результата.
Заключение
По результатам проведённого исследования гипотеза была подтверждена: программные инструменты способны выделять из текста интолерантную лексику, однако классификаторы на основе методов машинного обучения выделяют не только собственно интолерантные маркеры, но и нейтральные слова, влияющие на тональность текста, поэтому программа на основе словарей является более приемлемым вариантом при необходимости выделения определённого списка маркеров, особенно когда этот список известен пользователю.
Ни одна из программ не может в совершенстве выделить абсолютно все маркеры из-за наличия в текстах имён собственных, редких слов, специфических для конкретной области, намеренных искажений слов и авторских окказионализмов, которые нельзя дать закрытым списком и нельзя предусмотреть заранее. Программа на основе словарей справляется с этой проблемой путём обращения к мнению пользователя и последующего запоминания. Классификаторы же нельзя дообучить подобным образом, и слова такого рода могут оказаться в списке выбранных маркеров, а могут и не оказаться, поэтому такие проблемы пользователю придётся решать с помощью последующего анализа текста.
Также обе программы в определённых случаях выделяют нейтральные слова как интолерантные маркеры и наоборот. У программы на основе словарей это происходит из-за совпадений слов, а также из-за семантической неоднозначности, которую программа не может разрешить, и решается ручной корректировкой и пополнением словарей в процессе использования. У классификаторов на базе машинного обучения подобные случаи обусловлены тем, что алгоритм оценивает важность слова и его влияние на общую тональность текста, а нейтральные частые слова в некоторых случаях влияют на тональность больше, чем один раз встретившееся интолерантное слово. Это может быть скорректировано с помощью более масштабной обучающей выборки и сужения действия классификаторов до одной предметной области, но в целом такие результаты могут быть предметом отдельного исследования того, какие коннотации приобретают нейтральные слова в контексте и как они могут влиять на общую тональность сообщения.