Диссертация (1137507), страница 17
Текст из файла (страница 17)
Обучение производится на основе триграмм и таким образоминформация о контексте слова также включается в модель. Следует отметить,что TreeTagger демонстрирует для различных языков качество, сопоставимое смоделями на основе вероятностей. В частности, модель, использованная внашем эксперименте, демонстрирует точность (Accuracy) порядка 0.95 [Sharoff,Nivre, 2011].Морфологический анализатор TreeTagger не только присваивает каждомуслову морфологические показатели, но и определяет лемму слова в случае,если это слово содержалось в тренировочных данных, использованных дляпостроения анализатора. В противном же случае возникает необходимостьавтоматически определить лемму неизвестного слова.
Для этого в набореинструментов, который мы используем, применяется лемматизатор CstLemma[Jongejan,Dalianis,2009],которыйна115основесуффиксовсловиморфологическойинформациистроитнаборправилпреобразования,позволяющих получить лемму для неизвестного слова. Авторы методасообщают, что точность автоматической лемматизации на английскомматериале составляет порядка 0.97. Насколько нам известно, для русскогоязыка подобного измерения не проводилось, однако ручной анализрезультатов показывает, что лемматизация в подавляющем большинствеслучаев выполняется правильно.
Кроме того, отметим, что в рамках нашейзадачи нам важна не столько правильность леммы, сколько совпадение лемм усоответствующих слов из тренировочной и тестовой выборки, что являетсяболее мягким условием.Наконец,послеавтоматическойморфологическойобработкиилемматизации, данные попадают на вход синтаксического парсера. Мыиспользуем модель MaltParser [Nivre, Hall, Nilsson, 2006], натренированную наосновекорпусаСинТагРус.MaltParserпредставляетсобойгенераторитеративных синтаксических парсеров, которые последовательно определяютнабор синтаксических зависимостей между словами в предложении на основеморфологической информации и леммы слова. Генератор, а также инструментдля подбора параметров модели MaltOptimizer [Ballesteros, Nivre, 2012],находятся в открытом доступе, и обучить модель с использованиемальтернативного набора тегов не составляет труда, однако мы принялирешение использовать готовую модель для того, чтобы быть уверенными всовместимости наших компонентов предобработки.
Синтаксический парсер,который мы используем, имеет качество порядка 82.3 LAS и 89.0 UAS [Sharoff,Nivre, 2011], что соответствует результатам, полученным для этого парсера наматериале других языков.После предварительной обработки данные передаются непосредственнов нашу систему классификации актантов. Система выполнена на языкепрограммирования python. Для операций, связанных с машинным обучением,116мы используем библиотеку scikit-learn [Pedregosa и др., 2011], в частности, вроли классификатора используется имплементация LinearSVC с параметрами поумолчанию. Для сбора статистики и обработки данных была использованабиблиотека pandas [McKinney, 2011], которая предоставляет набор базовыхопераций для работы с данными.Какужеуказывалось,кластеризациявнашейимплементациивыполняется с помощью инструмента Chinese Whispers, созданного авторамиметода [Biemann, 2006b].
В качестве исходного векторного пространства мыиспользовалимодельRusVectōrēsнаосновеновостногокорпуса,предложенную А. Кутузовым [Kutuzov, Andreev, 2015]. Для работы с моделью идляизвлечениясписковсемантическиблизкихсловиспользоваласьбиблиотека gensim, [Rehurek, Sojka, 2010]. В случае, когда мы строиликластеризацию только на основе имён существительных, определение частиречи выполнялось с помощью анализатора pymorphy22.Структуры и модули, ответственные за хранение и представлениеданных, за трансформацию форматов, за общий процесс обработки данных иза генерацию отчётов, были имплементированы на языке python. Для храненияинформации о деревьях зависимостей, для поиска путей для свойства "путь" иизвлечения списков потомков для проекции разметки FrameBank назависимостныеузлыбылсозданмодульпредставлениядеревьевзависимостей для языка python на основе библиотеки для работы с графамиnetworkx3.Наконец, оптимизация на основе целочисленного программирования внашей реализации системы выполняется с помощью библиотеки pulp [Mitchell,Sullivan, Dunning, 2011].2https://pymorphy2.readthedocs.org/en/latest/3https://networkx.github.io/117Каквидноизописания,приведенноговыше,предлагаемаяимплементация достаточно неоднородна и объединяет в себе множествовнешних компонентов.
С практической точки зрения было бы удобно иметьцельную систему, которая кроме функционирования в исследовательскомрежиме с предобработанными тестовыми и тренировочными данными былабы также способна работать с произвольными входными данными. В нашемслучае создание подобной системы было осложнено следующими факторами.Во-первых, основная логика нашей системы выполнена на языке python,предобработка же выполняется с помощью внешнего набора инструментов,который на практике представляет собой разрозненный набор скриптов ибиблиотек,интегрироватькоторыйвсистемупредставляетсязатруднительным.
Во-вторых, наша система не включает в себя модуляразрешения глагольной неоднозначности, однако в случае, если мынамереваемся работать с произвольными входными данными, глагольнаянеоднозначность должна быть снята, что в настоящий момент представляетсятрудновыполнимым. При условии решения упомянутых проблем созданиеполноценной системы, способной работать с произвольными данными,представляется вполне выполнимой задачей и было бы естественнымпродолжением описанной в данной диссертации исследовательской работы.118III.
Экспериментальная оценка ирезультатыIII.1 Предмет и критерии оценкиНастоящая глава диссертации посвящена экспериментальной оценкерезультатов работы предложенной системы. Для задач машинного обученияэта область хорошо разработана и существует целый ряд стандартныхпараметров, по которым можно определить, насколько хорошо работаетсистема. Поскольку мы сформулировали задачу автоматической обработкиактантов как задачу классификации, речь далее пойдёт только о мерахкачества, применимых к задачам классификации.Задача оценки качества работы классификатора сводится к следующему.Предположим, что нам даны тренировочные данные, на которых системаобучается. Эти данные разбиты на классы, и мы предполагаем, что для каждогокласса существует некоторый абстрактный концепт, который управляетпорождением экземпляров этого класса.
Задача классификации – научитьсяраспознавать этот концепт и отличать экземпляры данного класса от других наосновании тренировочных данных. В то же время тренировочные данные119являются, как правило, далеко не исчерпывающими, т.к. для полногоисчислениявсехэкземпляров,принадлежащихданномуконцепту,потребовалось бы исчислить все экземпляры вообще, что не представляетсявозможным. В этой связи мы обучаем классификатор на ограниченной пообъёмувыборкеобъектов,обучающейвыборке,ичемболеерепрезентативной была эта выборка, тем в большей степени полученныйклассификатор будет соответствовать действительности.Впрочем, установить, насколько концепт, полученный классификатором,соответствует реальному положению дел, также не представляется возможнымпо тем же самым причинам: для того, чтобы напрямую сравнить функцию,построенную классификатором, с целевой функцией, мы должны были быиметь доступ к этой целевой функции (и если бы это было так, не было бынеобходимости в обучении классификатора).
Поэтому применяются различныеметоды аппроксимации, позволяющие приблизительно оценить качествоработы классификатора и сравнивать различные классификаторы между собой.Можно было бы оценивать качество работы системы используя те же данные,на которых она была натренирована, однако подобная оценка зачастуюявляется крайне неточной из-за переобучения. Следующий простой примериллюстрирует это явление.Рисунок 36: Проблема переобучения120Как мы видим, первая система идеально работает на тренировочныхданных, однако обнаруженная ей закономерность слишком сложна и врезультате новые данные оказываются классифицированы неверно. Концепт,выделенный второй системой, проще и хотя качество работы второгоклассификатора на тренировочной выборке ниже, он лучше справляется склассификацией новых экземпляров.Существуетнесколькосценариевоценкикачествасистемсиспользованием новых данных.
Наиболее тривиальной является оценкарезультатов работы системы экспертом. Исследователь вручную анализируетрезультаты работы системы и отмечает, в каких случаях система выдаёт верныйответ, а в каких – допускает ошибку. Этот подход является наиболее гибким,однаконеэффективнымвсилусубъективностиоценокэкспертаинеобходимости производить оценку каждый раз заново. Тем не менее, этотподход часто используется на ранних этапах разработки системы и позволяетделать выводы об особенностях работы алгоритмов, влиянии свойств и т.д.Вторая популярная возможность – автоматическая оценка качества натестовой выборке. Суть этого подхода состоит в том, что часть экземпляровизолируется и используется для тестирования системы в качестве нового,"неизвестного" материала.
Этот подход позволяет объективно измеритькачество работы системы, сравнивать системы между собой и быстропроизводить оценку качества работы при изменении параметров системы.Недостатки этого подхода состоят в расходовании аннотированных данных(которые можно было бы использовать для обучения) и чувствительности ксоставу тестовой выборки. Для борьбы с этим используется случайный выборэкземпляров и кросс-валидация, при которой данные разделяются нанесколько фрагментов, каждый из которых используется для тестированиясистемы, натренированной на оставшихся данных. В качестве окончательногопоказателя используется усредненное качество работы системы по этим121фрагментам.
Наконец, последний вариант, используемый в прикладныхсистемах – проверка качества системы на этапе применения. Этот способподходит только для реально используемых систем и в научных работахприменяется редко.В рамках данного исследования мы будем использовать оценку качествана основании тестовой выборки. В наиболее интересных случаях мы прибегаемк экспертному анализу результатов.Существует несколько способов оценки качества работы классификаторас использованием тестовой выборки.