Разработка методики и алгоритмов линейной классификации неструктурированной текстовой информации в технических системах тема диссертации и автореферата по ВАК РФ 05.13.01, кандидат наук Капитанов Андрей Иванович
- Специальность ВАК РФ05.13.01
- Количество страниц 122
Оглавление диссертации кандидат наук Капитанов Андрей Иванович
Введение
Глава 1. АНАЛИТИЧЕСКИЙ ОБЗОР СУЩЕСТВУЮЩИХ МЕТОДОВ И СРЕДСТВ КЛАССИФИКАЦИИ НЕСТРУКТУРИРОВАННОЙ ИНФОРМАЦИИ
1.1. Основные задачи классификации текстовых документов
1.2. Современные подходы к решению задачи классификации текстовых документов
1.3. Особенности современных подходов классификации неструктурированной информации
1.4. Анализ основных подходов к моделированию естественного языка
1.5. Проблемная ситуация в области машинного обучения с точки зрения обработки естественного языка
1.6. Постановка задачи диссертационной работы
Выводы по главе
Глава 2. ФОРМАЛИЗОВАННОЕ ПРЕДСТАВЛЕНИЕ ЗАДАЧИ КЛАССИФИКАЦИИ ТЕКСТОВЫХ ДОКУМЕНТОВ И МОДИФИКАЦИЯ МЕТОДОВ ЕЕ РЕАЛИЗАЦИИ
2.1. Формализация задачи классификации текстовых документов
2.2. Разработка модифицированного метода сглаживания вероятностей
2.3. Разработка математического аппарата предложенного метода с целью обучения базового алгоритма
2.4. Разработка алгоритма нормализации текстовых документов
2.5. Разработка алгоритма классификации текстовых документов с
возможностью обучения на основе семантики ключевых терминов
Выводы по главе
Глава 3. РАЗРАБОТКА МЕТОДИКИ УСТРАНЕНИЯ МНОГОЗНАЧНОСТИ ТЕРМИНОВ И ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРЕДЛОЖЕННЫХ РЕШЕНИЙ
3.1. Разработка методики устранения многозначности терминов на основе предложенного алгоритма и модифицированных методов сглаживания и классификации
3.2. Разработка структурной схемы КПС
3.3. Программная реализация предложенных решений в виде комплекса программных средств
3.4. Модернизация технологического процесса обработки информационных и
служебных сообщений с применением КПС
Выводы по главе
Глава 4. ВЕРИФИКАЦИЯ РАЗРАБОТАННЫХ МЕТОДИКИ И АЛГОРИТМОВ ЛИНЕЙНОЙ КЛАССИФИКАЦИИ НЕСТРУКТУРИРОВАННОЙ ИНФОРМАЦИИ В ТЕХНИЧЕСКИХ СИСТЕМАХ
4.1. Особенности количественной оценки результатов классификации текстовых неструктурированной информации
4.2. Экспериментальные исследования разработанных методики и алгоритмов повышения эффективности линейной классификации неструктурированной информации
4.3. Оценка эффективности предложенного решения в терминах точности/полноты с применением F1-меры
4.4. Практические рекомендации по применению полученных результатов в задачах классификации неструктурированной информации в технических
системах
Выводы по главе
Заключение
Список литературы
Приложение 1. Листинги фрагментов программ
Приложение 2. Акты внедрения
Приложение 3. Свидетельство об ителлектуальной собственности
Рекомендованный список диссертаций по специальности «Системный анализ, управление и обработка информации (по отраслям)», 05.13.01 шифр ВАК
Исследование и разработка методов и программных средств классификации текстовых документов2013 год, кандидат технических наук Гулин, Владимир Владимирович
Нейро-нечеткие методы и алгоритмы анализа электронных неструктурированных текстовых документов2018 год, кандидат наук Козлов Павел Юрьевич
Частотный анализ текстовой информации на параллельных вычислителях2019 год, кандидат наук Ба Хла Тхан
Нейросетевой механизм кросс-внимания в задачах извлечения информации из текстов на примере биомедицинских данных2021 год, кандидат наук Алимова Ильсеяр Салимовна
Алгоритмы интеллектуального поиска на основе метода категориальных векторов2016 год, кандидат наук Бондарчук, Дмитрий Вадимович
Введение диссертации (часть автореферата) на тему «Разработка методики и алгоритмов линейной классификации неструктурированной текстовой информации в технических системах»
ВВЕДЕНИЕ
Актуальность исследования. В настоящее время актуальность задач машинной обработки неструктурированных документов связана с лавинообразным ростом потока информации. При этом необходимость классификации текстовых документов стремительно возрастает, т. к. она требуется для машинного перевода, определения тональности сообщений, фильтрации спама, рубрикации документов и пр.
Наиболее заметным трендом в задачах обработки текстовых документов является семантический анализ, так как он позволяет повысить качество анализа текстов на естественном языке.
В течение последних 20 лет предложены и протестированы множество методов вычисления семантической близости терминов: методы на основе лексических источников [1], на основе векторного представления, причем это представление на основе гиперпространственного аналога языка [2] уже модифицировано к латентно-семантическому анализу [3], тематическому моделированию [4], дистрибутивной семантике [5], и, в итоге, к нейронным языковым моделям [6].
В то время как за рубежом уже разработан целый ряд критериев оценки наборов данных и осуществлен обзор методов вычисления семантической близости терминов на английском языке, проведены исследования [7-15] для морфологически богатых языков [16], а также ведется работа над адаптацией методов вычисления семантической близости терминов для перевода с английского на русский язык (Krizhanovski, Turdakov, Krukov, Sokirko [17-20]), подобные систематические исследования для русского языка не проводились до 2015 года, когда прошел первый международный семинар по семантической близости терминов русского языка (RUSSE) [21]. Главным итогом данного мероприятия стала самая крупная и наиболее комплексная методология оценки близости терминов на русском языке.
По данным исследовательского центра TAdviser [22] текстовая информация является одним из основных активов компаний, аналитическое агентство IDC прогнозирует рост совокупного объема данных до 163 зеттабайт к 2025 году. Количество текстовых документов достигает 80% от общего объема данных и постоянно растет. По результатам глобального исследования компании ABBYY 46% сотрудников крупных организаций используют автоматизированные системы не менее 2 часов в день для задач классификации текстовых документов и обработки информации.
Классификация текстовых документов активно применяется в системах электронного управления документооборотом и цифровой архивации. В частности, комплексное программное решение iGuana iDM Digital Mailroom [23] имеет модуль автоматической классификации входящей корреспонденции. Внедрение такого модуля в высокотехнологичные сканнеры, эксплуатируемые для высокопроизводительной крупномасштабной оцифровки книг, в частности Qidenus [24], ScanRobot [25], Bookeye [26], позволит дополнить процесс оцифровки автоматической рубрикацией распознанных документов.
В связи с вышеизложенным тематика представленного диссертационного исследования является своевременной и актуальной.
Объект исследования: неструктурированная текстовая информация, её понятийный состав и семантико-синтаксическая структура.
Предмет исследования: методика и алгоритмы линейной классификации неструктурированной текстовой информации в технических системах.
Цель диссертационной работы - повышение эффективности линейного классификатора неструктурированной информации за счёт применения предложенных методики устранения многозначности терминов и алгоритмов нормализации и классификации текстовых документов в виде комплекса программных средств (КПС).
Для достижения указанной цели в диссертации решаются следующие задачи:
1) аналитический обзор существующих методов и средств классификации текстовых документов;
2) разработка методики устранения многозначности терминов;
3) разработка алгоритма нормализации текстовых документов;
4) разработка алгоритма классификации текстовых документов на основе семантической близости терминов;
5) программная реализация предложенной методики и алгоритмов в виде
КПС;
6) оценка эффективности предложенного решения в терминах точности/полноты с применением F1-меры.
Методы исследования. В ходе проведения диссертационных исследований применялись основные положения теории множеств, системного анализа, теории вероятности и математической статистики, методов оптимизации и математического моделирования.
Научная новизна работы состоит в разработке совокупности научно обоснованных технических решений, направленных на повышение качества линейной классификации неструктурированной информации в технических системах.
В процессе выполнения диссертационной работы получены следующие научные результаты.
1. Предложена методика устранения многозначности терминов, позволяющая повысить качество классификации текстовых документов на естественном языке на 3%.
2. Разработан алгоритм нормализации текстовых документов, позволяющий привести неструктурированные тексты на естественном языке к единому формату.
3. Разработан алгоритм линейной классификации текстовых документов на основе семантической близости терминов, учитывающий понятийный состав и семантико-синтаксическую структуру текста.
Достоверность полученных результатов. Достоверность новых научных результатов определяется корректностью применения методов математической статистики, методов обработки текстов, воспроизводимостью, проверяемостью, внутренней непротиворечивостью и практической реализацией полученных результатов.
Практическая ценность работы заключается в том, что основные положения, выводы и рекомендации диссертации ориентированы на широкое применение методики повышения эффективности линейной классификации неструктурированной информации в технических системах.
Самостоятельное практическое значение имеют:
- методика устранения многозначности терминов;
- алгоритм нормализации текстовых документов;
- алгоритм линейной классификации текстовых документов на основе семантической близости терминов;
- программная реализация разработанных методики и алгоритмов в виде
КПС.
Практическая значимость подтверждена актами внедрения результатов диссертационной работы в ООО «Гринсайт» и в учебный процесс НИУ МИЭТ, а также свидетельством о государственной регистрации программ для ЭВМ №2021616794 «Программа моделирования работы алгоритма классификации Байеса для мультиноминального распределения MNaiveBayesEx в сенсорных системах», зарегистрированным в РОСПАТЕНТ 27.04.2021.
Личный вклад автора. Все результаты, изложенные в диссертации и сформулированные в положениях, выносимых на защиту, получены автором лично, в частности:
- аналитический обзор существующих методов и средств классификации текстовых документов;
- разработка методики устранения многозначности терминов;
- разработка алгоритма нормализации текстовых документов;
- разработка алгоритма классификации текстовых документов на основе семантической близости терминов;
- программная реализация предложенной методики и алгоритмов в виде
КПС.
Внедрение результатов диссертации. Результаты диссертационной работы внедрены на предприятии ООО «Гринсайт». Результаты диссертации применяются в учебном процессе Института системной и программной инженерии и информационных технологий (СПИНТех) НИУ «МИЭТ» при проведении занятий по дисциплинам: «Программирование на языке Python», «Современные технологии программирования». Соответствующие акты внедрения представлены в приложении 2.
В результате проведенных исследований получены и выносятся на защиту следующие положения.
1. Разработанная в процессе исследований методика устранения
многозначности терминов позволяет повысить качество классификации текстовых документов на естественном языке на 3%.
2. Разработанный алгоритм нормализации текстовых документов приводит неструктурированные тексты на естественном языке к единому формату.
3. Разработанный алгоритм линейной классификации текстовых документов на основе семантической близости терминов учитывает понятийный состав и семантико-синтаксическую структуру текста.
Апробация исследования. Основные положения и результаты диссертационной работы апробированы на двенадцати научно-практических конференциях, в том числе восьми международных:
1. IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering, г. Москва. 2017-2021.
2. 11-я Всероссийская межвузовская научно-практическая конференция «Актуальные проблемы информатизации в науке и образовании - 2018», г. Москва. 2018.
3. Международная научно-практическая конференция «Актуальные проблемы информационного общества в науковедении, культуре, образовании, экономике», г. Москва. 2018.
4. Международная научно-практической конференция «Актуальные проблемы науковедения, культуры, образования, экономики, информатики и социальные трансформации», г. Москва. 2017.
5. III Международная научно-практическая конференция «Развитие технических наук в современном мире», г. Воронеж. 2016.
6. 9-я Всероссийская межвузовская научно-практическая конференция «Актуальные проблемы информатизации в науке, образовании и экономике», г. Москва. 2016.
7. 23-я Всероссийская межвузовская научно-техническая конференция студентов и аспирантов «Микроэлектроника и информатика», г. Москва. 2016.
8. 8-я Всероссийская межвузовская научно-практическая конференция «Актуальные проблемы информатизации в науке, образовании и экономике», г. Москва. 2015.
Публикации. Основное содержание диссертации отражено в 17 работах, в том числе 4 статьи в журналах, входящих в перечень, утвержденный ВАК по специальности 05.13.01, 6 - Scopus; 7 - материалы докладов на всероссийских и международных конференциях.
Структура и объем работы. Диссертация состоит из введения, 4 глав, заключения, списка использованной литературы и приложений, содержащих листинги программ и акты о внедрении результатов работы. Общий объем
диссертационной работы - 122 страницы текста, в том числе 9 таблиц и 29 рисунков.
Во введении обосновывается актуальность темы исследования, формулируются цели и задачи работы, перечисляются элементы научной новизны и практической значимости полученных результатов, дается краткое содержание глав. Изложены основные положения на защиту, приводится список публикаций и сведения об апробации работы.
В первой главе приведен аналитический обзор существующих методов и средств классификации текстовых документов, выявлены основные проблемы обработки естественного языка, а также причины сложившейся ситуации.
Во второй главе приводится формализация задачи классификации текстовых документов, предложен альтернативный метод классификации текстовых документов на основе семантической близости ключевых терминов и приводится математическое обоснование предложенного метода. Разработаны алгоритмы нормализации и обучения базового классификатора текстовых документов на естественном языке.
Третья глава посвящена разработке методики устранения многозначности терминов и программной реализации предложенных решений.
В четвертой главе приведен сравнительный анализ результатов оценки эффективности разработанного классификатора в терминах точности/полноты с применением F1-меры. Даны практические рекомендации по применению предложенного алгоритма для задач классификации текстов на естественном языке.
В заключении приведены наиболее значимые результаты выполненной диссертационной работы в рамках решения поставленной научно-технической проблемы исследования.
В приложениях 1-3 представлены фрагменты программной реализации КПС, акты о внедрении проведенных в диссертации исследований, сведения об объекте интеллектуальной собственности.
ГЛАВА 1. АНАЛИТИЧЕСКИЙ ОБЗОР СУЩЕСТВУЮЩИХ МЕТОДОВ И СРЕДСТВ КЛАССИФИКАЦИИ НЕСТРУКТУРИРОВАННОЙ ИНФОРМАЦИИ
1.1. Основные задачи классификации текстовых документов
Задача классификации неструктурированных документов в настоящее время становится все более актуальной, поскольку объемы обрабатываемой информации постоянно растут. Разработанные классификаторы имеют широкое практическое применение.
1. Составление тематических каталогов. Предусматривается обработка документов и отнесение их к одной из заранее предусмотренных категорий.
2. Машинный перевод. Здесь в качестве объекта классификации выступают омонимичные термины. Необходимо по заданным свойствам определить категорию, к которой относится термин, и снять омонимию.
3. Борьба со спамом. Все получаемые письма делят на два класса: спам и не
спам.
4. Персонификация рекламы. Необходимо определить сферу интересов пользователей, в частности, применяя в качестве данных только тексты интернет-страниц, просмотренных пользователем.
5. Анализ тональности. Оценка мнения автора по отношению к объектам на основе отзывов об этих объектах. Результаты данного анализа применяются для персонификации рекламы.
Применение семантики при обработке естественного языка повышает качество машинного перевода, помогает скорректировать существующие словари. Анализ тональности отзывов продукта помогает лучше понять реакцию потребителей на товар, а также выявить негативные комментарии. Задача исправления ошибок в тексте решается нахождением семантически близких
терминов, если обучить искусственную нейронную сеть на запросах, вводимых человеком в поисковые системы. Вычисление семантически близких терминов также помогает решать проблему нахождения информации по длинным поисковым запросам. Такие запросы применяются:
- в сообществах или форумах на базе «Вопрос - Ответ»;
- при поиске литературы;
- при поиске по контексту;
- при голосовом поиске (Siri, Cortana, Google Now, Алиса);
- при поиске сложной информации.
Технологический процесс обработки заявок технической системой информационных и служебных коммуникаций Ensi Communication представлен на рисунке 1.1.
Рисунок 1.1 - Процесс обработки заявки
Клиент создает заявку через форму обратной связи, где указывает тему сообщения, в тексте сообщения описывает суть проблемы, оставляет контактные данные. Заявка проходит первичную валидацию и обработку, после чего поступает в общую очередь. Оператор рассматривает очередную заявку вручную - на основе контекста он определяет категорию заявки и направляет ее в очередь
соответствующего отдела. Далее в этом отделе для заявки назначается исполнитель.
Проблемная ситуация заключается в повышенной информационной нагрузке операторов службы поддержки. Предлагается внедрить комплекс программных средств (КПС), который позволит снизить информационную нагрузку операторов.
1.2. Современные подходы к решению задачи классификации текстовых документов
В начале 1960-х годов изменился подход к анализу решения проблемы классификации текстовых документов. Выделяют следующие современные подходы к классификации текстовых документов на естественном языке.
Инженерия знаний. Классификация реализуется по заранее определенным экспертом (или экспертами) правилам. В качестве положительных сторон данного подхода выделяют хорошую интерпретацию результатов и высокое качество классификации.
Однако такой подход имеет следующие существенные недостатки: трудозатратность и сложность актуализации правил (т.к. в таком случае следует постоянно подключать к работе экспертов, компетентных в заданной области).
Обучение с учителем. Пусть имеется конечная совокупность прецедентов, называемая обучающей выборкой. Необходимо создать алгоритм, который для нового объекта выдает достаточно точный результат (точность классификатора выше случайного). Для определения точности вводится функционал качества. Под учителем понимается либо тот, кто размечал объекты (указал на заданных объектах правильные ответы), либо сама обучающая выборка.
В обоих подходах изначально необходимо наличие эксперта, однако подход «обучение с учителем» не требует постоянного присутствия эксперта, т.к. актуализация производится за счет обновления данных обучающего множества.
Реализация подхода инженерии знаний, а именно процесс актуализации правил, значительно сложнее относительного «обучения с учителем».
Наиболее актуальным способом распределения обучающего множества является разделение его на обучающее (training), проверочное (validation) и тестовое (test).
Классификация на основе подхода «обучение с учителем» разделяется на три этапа.
1. Определение критериев принятия решения на основе обучающего множества.
2. Регулирование критериев. По результатам обработки вносятся изменения в параметры классификатора. Далее процесс повторяется до тех пор, пока параметры не окажутся настроены оптимальным образом.
3. Окончательное тестирование классификатора на тестовом множестве текстов. Если построить оптимальное решение не удалось, процесс настройки начинают заново. При каждом новом тестировании должно генерироваться новое тестовое множество.
При работе с большими объемами информации из документа стараются исключить все неинформативные части речи (предлоги, частицы, союзы и пр.).
Построение классификатора заключается в создании функции, аппроксимирующей значения целевой функции.
Для оценки качества классификации его запускают для определенного тестового множества объектов, для которых правильные ответы известны заранее. В случае ансамбля из нескольких алгоритмов оценка качества применяется для выбора классификатора, наиболее подходящего для решения поставленной задачи.
1.3. Особенности современных подходов классификации неструктурированной информации
Известно, что задачи классификации тесно связаны с появлением и развитием в 40-х годах ХХ в. идей искусственных нейронных сетей, логического исчисления идей, появлением первых ЭВМ, разработкой алгоритмов обучения, изобретением перцептрона и демонстрации его способности решать задачи классификации. В 60-70-х годах интересы ученых обратились к распознаванию образов [27-30], где применение перцептронов и нейронных сетей играли заметную роль [31-34]. Решение задач классификации на основе машинного обучения проводилось при помощи построения нейронных сетей, применения алгоритмов на основе обучения с учителем, ансамблей алгоритмов [35]. Однако при решении задач регрессии, классификации, кластеризации, уменьшения размерности, выявления аномалий применялись в основном эмпирические подходы.
Исследователи А.П. Петров, М.М. Бонгард, М. Минский и др., вскрыли ограниченности перцептрона, дальнейшие эксперименты привели к задачам преобразования пространства первичных признаков (пространства рецепторов) в такое пространство, где поверхность, разделяющая классы, достаточно проста. На основе первичных признаков объектов генерировались вторичные признаки как функции от первичных, из которых отбирались наиболее информативные. Классификация проводилась в сформированном признаковом пространстве. При постановке задач распознавания необходимо максимально перейти от получения результата путём эксперимента к логическим рассуждениям и математическим доказательствам.
Вероятностный характер результатов распознавания приводит к привлечению методов математической статистики, а модификация нейронных сетей, начиная с 80-х гг. (введение обратных связей, развитие метода обратного распространения ошибки, разработка алгоритмов глубокого обучения
многослойных нейронных сетей), вновь приводит к сближению методов распознавания образов и идей создания искусственного интеллекта [36].
В современном направлении обработки естественного языка (Natural Language Processing, NLP) важнейшим направлением является разработка математических и информационных технологий, основанных на вероятностном тематическом моделировании и гибридных подходах, объединяющих статистические и лингвистические методы анализа текстов [37]. Решение прикладных задач NLP включает исследование проблемы сходимости и устойчивости численных методов матричных и тензорных разложений, разработку иерархической тематической модели научного и научно-популярного контента, классификации и динамической тематизации новостных потоков, и др. Недостатками применяемых методов и критериев является их зависимость не только от качества модели, но и от размерных характеристик коллекции, длины документов, мощности словаря, разреженности вероятностного распределения термов [38].
Методы классификации текстовых документов подразделяются на линейные и нелинейные. Преимущества линейных методов заключаются в компактности модели; высокой скорости, что позволяет применять их для работы в режиме реального времени; высокой интерпретируемости модели, что приводит к прозрачности процесса классификации для пользователя; отсутствии склонности к переобучению [39].
Сравнительный анализ методов машинного обучения для решения задачи классификации документов научно-образовательного учреждения приводит к заключению, что «при уменьшении потока входной информации (N^0) ухудшается процесс распознавания» [40]. Недостатком является отсутствие общепринятого инструмента для количественной оценки эффективности применяемых решений задач классификации [41-43].
Наиболее распространенные классификаторы текстовых документов приведены в таблице 1.1.
Таблица 1.1 - Классификаторы текстовых документов
Название Поддерживаемые языки Подход Метод / Технология
uClassify [44] Английский Испанский Французский Шведский Машинное обучение Наивный байесовский классификатор
Eureka Engine [45] Русский Машинное обучение Метод опорных векторов
Семантическое зеркало [46] Английский Русский Машинное обучение - (нет данных)
IBM Watson™ Natural Language Classifier [47] Английский Арабский Испанский Итальянский Корейский Немецкий Португальский Французский Японский Машинное обучение Метод опорных векторов
uClassify - сервер для решения задач классификации - отнесения объекта к заведомо определенным категориям. Работает в виде отдельного сервера или в виде веб-сервиса. Ядром является наивный байесовский классификатор. В uQassify добавлены несколько дополнительных классов, которые позволяют повысить качество классификации (класс нормализации и специальный сглаживающий класс). Результатом являются вероятности принадлежности документа к классу, значения которых распределены в интервале от 0 до 1. Это позволяет установить пороговое значение для классификации. В частности, все документы с вероятностями более 90% считаются спамом.
Большинство классификаторов, в том числе и uQassify, задействуют байесовские модели. Применяя теорему Байеса, условную вероятность запишем следующим образом:
р^л...../„)=(1.1)
где ...:Л - признаки, по которым обучается классификатор;
ci, —,ст - заведомо известные классы.
Так как p(di) (вероятность встретить документ di) не зависит от ск и значения fi даны, то знаменатель считается константой. Предположение о «наивности» говорит о том, что свойство fi не зависит от любого другого свойства. Это означает:
п
P(ck,fl, -,fn) = Р(Ск) • I рШСк),
У (1.2)
п
с* = агдтахр(Ск) • II рШск),
ke[l,...,K}
где с*- решение классификатора.
Поскольку при перемножении большого числа вероятностей, близких к нулю, возникают малые величины, принято заменять произведение на сложение логарифмов (1.3):
V(Ck,fi,...,fn) = Р(Ск) • l'n=ilog(p(filCk) + £),
п
с* = агдтахр(Ск) • V log(v(filck) + е). (13)
ke[i.....K} f->
При £ = 0 предполагается, что p(fi\ck) > 0.
Eureka Engine - система анализа текстовых документов на естественном языке, поддерживает работу с русскоязычными документами и позволяет извлекать факты и знания из неструктурированных данных.
Система включает в себя модуль (независимый сервис) автоматической классификации текстов. Модуль автоматически классифицирует русскоязычные документы по заранее заданным классам. Модуль определяет документы по 13 тематическим категории (спорт, политика, авто и др.).
Сервис реализован на основе машинного обучения и задействует метод опорных векторов [48].
Каждый объект (в рамках классификации текстовых документов - это документ, контекст или терм) классификации представлен как точка в ^-мерном пространстве, которая принадлежит только одному классу. Необходимо разделить эти точки гиперплоскостью размерностью p — 1, максимизируя расстояния между
классами. Если существует такая гиперплоскость, расстояние от которой до ближайшей точки максимально, то классификатор называется оптимально разделяющим.
В том случае, если обучающая выборка линейно разделима, найдутся такие гиперплоскости, что между ними не лежит ни одна точка обучающей выборки. Далее необходимо максимизировать расстояние между гиперплоскостями. Ширину полосы легко найти из соображений геометрии (рисунок 1.2): она равна
1МГ
Рисунок 1.2 - Оптимальная разделяющая гиперплоскость для метода опорных векторов, построенная на точках из двух классов.
2
Таким образом, задача сводится к минимизации ||ш||. Для исключения всех точек из полосы необходимо убедиться, что для всех I выполняется условие:
• X/ — Ь > 1, С/ = 1, _
и^ л л (1.4)
^ • %1 —Ь <—1,С1 =—1. у 7
Условие 1.4 преобразуется в вид:
ci(w-xi-b)>1,1<i<n. (1.5)
Следующий классификатор - «Семантическое зеркало». Он позволяет определить тему веб-страницы, новости, поискового запроса или другого вида текста. Темы определяются по созданному специально для «Семантического зеркала» рубрикатору из более 3000 рубрик. Рубрикатор имеет древовидную структуру: к корневым рубрикам принадлежат дочерние рубрики второго уровня, к ним, в свою очередь, - рубрики третьего уровня и т. д. В частности, к корневой рубрике «Авто, мото» принадлежит, в числе прочих, подрубрика «Мототехника», а к ней - рубрика третьего уровня «Скутеры, мопеды». К каждой из рубрик силами редакторов-экспертов отнесены от нескольких десятков до нескольких десятков тысяч терминов, формирующих семантические образы рубрик; на основании этих терминов и происходит присвоение темы. Общий объем базы «Семантического зеркала» - более 600 тысяч терминов, отобранных полностью вручную. Кроме того, «Семантическое зеркало» применимо для классификации английских текстов. Принцип работы классификатора «Семантическое зеркало» продемонстрирован на рисунке 1.3.
Похожие диссертационные работы по специальности «Системный анализ, управление и обработка информации (по отраслям)», 05.13.01 шифр ВАК
Вычислительный комплекс-классификатор текстов с использованием морфологического анализа и нейро-семантических сетей2017 год, кандидат наук Ле Мань Ха
Метод конверсационного анализа неструктурированных текстов социальных сетей2021 год, кандидат наук Рыцарев Игорь Андреевич
Систематизация, разработка методов и коллективов решающих правил классификации библиографических текстовых документов2009 год, доктор технических наук Толчеев, Владимир Олегович
Разработка метода и создание системы полнотекстового поиска на основе статистической обработки ограниченного контекста слова2006 год, кандидат технических наук Григорьев, Александр Сергеевич
Методы извлечения и резюмирования критических отзывов пользователей о продукции2016 год, кандидат наук Тутубалина Елена Викторовна
Список литературы диссертационного исследования кандидат наук Капитанов Андрей Иванович, 2022 год
СПИСОК ЛИТЕРАТУРЫ
1. Rapp R., Zock M. The CogALex-IV Shared Task on the Lexical Access Problem // Proceedings of the 4th Workshop on Cognitive Aspects of the Lexicon. -Dublin, Ireland, 2014. - P. 1-14.
2. Lund K., Burgess C. Producing high-dimensional semantic spaces from lexical co-occurrence // Behavior Research Methods. - 1996. - Vol. 28(2). - P. 203-208.
3. Landauer T.K., Dumais S.T. A Solution to Plato's Problem: The Latent Semantic Analysis Theory of the Acquisition, Induction, and Representation of Knowledge // Psychological Review. - 1997. - Vol. 104(2). - P. 211-240.
4. Griffiths T., Steyvers M., Tenenbaum J. Topics in semantic representation // Psychological Review. - 2007. - Vol. 114. - P. 211-244.
5. Baroni M., Lenci A. One distributional memory, many semantic spaces // Proceedings of the EACL GEMS Workshop. - Athens, Greece, 2009. - P. 1-8.
6. Mikolov T., Chen K., Corrado G., Dean J. Efficient Estimation of Word Representations in Vector Space // Proceedings of Workshop at ICLR. - 2013. [Электронный ресурс]. Режим доступа: https://arxiv.org/abs/1301.3781 (дата обращения: 07.07.2021).
7. Lee L. Measures of distributional similarity // Proceedings of the 37th Annual Meeting of the Association for Computational Linguistics on Computational Linguistics. - College Park, MA, USA, 1999. - P. 25-32.
8. Agirre E., Alfonseca E., Hall K., Kravalova J., Paçca M., Soroa A. A study on similarity and relatedness using distributional and wordnet-based approaches // Proceedings of NAACL-HLT 2009. - Boulder, CO, USA, 2009. - P. 19-27.
9. Ferret O. Testing semantic similarity measures for extracting synonyms from a corpus // Proceedings of LREC 2010. - Valletta, Malta, 2010. - P. 3338-3343.
10. Panchenko A. Similarity measures for semantic relation extraction: Ph.D. thesis. - Université catholique de Louvain, Louvain-la-Neuve, Belgium, 2013. - 167 p.
11. Baroni M., Dinu G., Kruszewski G. Don't count, predict! A systematic comparison of context-counting vs. context-predicting semantic vectors // Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics. -Baltimore, MD, USA, 2014. - Vol. 1. - P. 238-247.
12. Rubenstein H., Goodenough J. B. Contextual Correlates of Synonymy // Communications of the ACM. - 1965. - Vol. 8(10). - P. 627-633.
13. Curran J. R. From distributional to semantic similarity: Ph.D. thesis. -University of Edinburgh, UK., 2004. - 159 p.
14. Yang D., Powers D. M. W. Verb Similarity on the Taxonomy of WordNet // Proceedings of GWC-06. - Jeju Island, Korea, 2006. - P. 121-128.
15. Турдаков Д. Ю. Методы и программные средства разрешения лексической многозначности терминов на основе сетей документов, дис. ... канд. физ.-мат. наук: 05.13.11; МГУ имени М.В.Ломоносова; науч. рук. проф. С.Д. Кузнецов. - М., 2010. - 138 с.
16. Zervanou K., Iosif E., Potamianos A. Word Semantic Similarity for Morphologically Rich Languages // Proceedings of the Ninth International Conference on Language Resources and Evaluation. - Reykjavik, Iceland, 2014. - P. 1642-1648.
17. Крижановский А.А. Оценка результатов поиска семантически близких слов в википедии // Труды СПИИРАН. - 2007. - Вып. 5. - С. 113-116.
18. Сокирко, А. Майнинг близких по смыслу языковых выражений для поисковой системы Яндекс (до 2012 года) [Электронный ресурс]. Режим доступа: http://book.lib-i.ru/25filologiya/821774-1-v-dannoy-rabote-opisivaetsya-process-poiska-blizkih-smislu-slov-kotorimi-avtomaticheski.php (дата обращения: 07.06.2021).
19. Меры семантической близости в онтологии / К.В. Крюков [и др.]. - М.: Изд-во Сенсидат-Плюс, 2010. - 92 с.
20. Sahlgren M. The Word-Space Model: Using distributional analysis to represent syntagmatic and paradigmatic relations between words in high-dimensional vector spaces: Ph.D. thesis. - Stockholm University, Stockholm, Sweden, 2006. - 146 p.
21. Panchenko A., Loukachevitch N. V., Ustalov D., Paperno D., Meyer C. M., Konstantinova N. RUSSE: The First Workshop on Russian Semantic Similarity // Proceeding of the International Conference on Computational Linguistics DIALOGUE 2015. - Moscow, Russia, 2015. - P. 89-105.
22. «Текстовая аналитика» Information intelligence [Электронный ресурс]. Режим доступа:
https://www.tadviser.ru/index.php/Статья:мТекстовая_аналитикам_Information_intelli gence (дата обращения: 07.06.2021).
23. ПО для цифровой обработки входящей корреспонденции [Электронный ресурс]. Режим доступа: https://igmna-idm.com/ru/digital-mailroom-automation-software-scan-capture-incoming-mail-post-correspondence/ (дата обращения: 22.02.2022).
24. Qidenus Technologies | High Performance Book Scanners & Trusted Digitization Services [Электронный ресурс]. Режим доступа: http://qidenus.com/technologies/ (дата обращения: 22.02.2022).
25. Automatic Book Scanner | Treventus [Электронный ресурс]. Режим доступа: https://www.treventus.com/scanner/automatic-book-scanner (дата обращения: 22.02.2022).
26. Book Scanners :: Image Access 2022 [Электронный ресурс]. Режим доступа: https://www.imageaccess.de/?page=ScannersBookscanner&lang=en (дата обращения: 22.02.2022).
27. Аркадьев А.Г., Браверман Э.М. Обучение машины распознаванию образов [Текст]. - М.: Наука, 1964. - 112 с.
28. Бонгард М.М. Проблема узнавания [Текст]. - М.: Физматгиз, 1967.
29. Аркадьев А.Г., Браверман Э.М. Обучение машины классификации объектов [Текст]. - М.: Наука, 1971. - 192 с.
30. Вапник В.Н., Червоненкис А.Я. Теория распознавания образов [Текст]. -М.: Наука, 1974. - 416 с.
31. Крыжановский В.М., Микаэлян А.Л. Векторная параметрическая нейросеть для распознавания бинарных образов [Текст] // Известия Южного Федерального университета. Технические науки. - 2005. - №10 (54). - С. 90-98.
32. Баранов В.Г. Нейросетевые алгоритмы распознавания образов [Текст] / В.Г. Баранов, В.В. Кондратьев, В.Р. Милов, Ю.Х. Зарипова // Нейрокомпьютеры: разработка, применение. - 2007. - № 11. - С. 20-27.
33. Мишустин И.А. Аппаратная реализация нейроноподобной сети с возможностью распознавания зашумленных образов [Текст] / И.А. Мишустин, Н.Б. Преображенский, А.А. Жданов, И.В. Степанян // Нейрокомпьютеры: разработка, применение. - 2018. - № 6. - С. 19-25.
34. Чобан А.Г. Особенности построения нейросетевых алгоритмов в задачах распознавания образов [Текст] / А.Г. Чобан, Д.Г. Стадников, Д.П. Иниватов, А.Е. Сулавко // Информационная безопасность: современная теория и практика. -Омск: Сибирский государственный автомобильно-дорожный университет (СибАДИ), 2019. - С. 127-134.
35. Капитанов А.И., Капитанова И.И. Методы повышения качества автоматической классификации текстовых документов // Актуальные проблемы информационного общества в науковедении, культуре, образовании, экономике. Москва, 2018. - С. 295-301.
36. Маткасым Н.Н. Распознавание образов с помощью нейронных сетей [Текст] // Технологии Microsoft в теории и практике программирования : сборник трудов XIII Всероссийской научно-практической конференции студентов, аспирантов и молодых ученых. - Томск, 2016. - С. 23-25.
37. Анализ текстов и информационный поиск [Электронный ресурс]. -Режим доступа:
http://www.machinelearning.ru/wiki/index.php?title=Участник:Vokov (дата обращения: 07.07.2021).
38. Воронцов К.В. Вероятностное тематическое моделирование: теория, модели и проект BigARTM [Электронный ресурс]. - 2020. Режим доступа: http://www.machinelearning.ru/wiki/images/d/d5/Voron17survey-artm.pdf (дата обращения: 07.07.2021).
39. Гагарина Л.Г., Капитанов А.И. Проблема автоматической обработки неструктурированных текстовых сообщений в режиме реального времени // Современная наука: актуальные проблемы теории и практики. Серия: Естественные и технические науки, №7. Издательство «ООО Научные технологии», 2021. - С. 67-69.
40. Краснянский М.Н. Сравнительный анализ методов машинного обучения для решения задачи классификации документов научно-образовательного учреждения [Текст] / М.Н. Краснянский, А.Д. Обухов, Е.М. Соломатина, А.А. Воякина // Вестник ВГУ. Серия: Системный анализ и информационные технологии. - 2018. - № 3. - С. 173-182.
41. Clancey W.J. Heuristic classification [Текст] // Artificial Intelligence. - 1985. - Vol. 27, Iss. 3. - P. 289-350.
42. Бауман Е.В., Дорофеюк А.А. Рекуррентные алгоритмы автоматической классификации // Автомат. и телемех. - 1982. - № 3. - С. 95-105.
43. Блануца В.И. Система методов автоматической классификации географических объектов: некоторые способы оценки качества классификации [Текст] // Изв. АН СССР. Сер. геогр. - 1984. - № 3. - С. 91-99.
44. uClassify - Free text classifiacation [Электронный ресурс] - Режим доступа: https://www.uclassify.com/ (дата обращения: 07.07.2021)
45. Eureka Engine - Модуль автоматической классификации текстов (TextClassifier) [Электронный ресурс] - Режим доступа: http://eurekaengine.ru/ru/description/ (дата обращения: 07.07.2021)
46. Семантическое зеркало - Сервис автоматической классификации текстов и подбора ключевых слов [Электронный ресурс] - Режим доступа: http://sm.ashmanov.com/ (дата обращения: 07.07.2021)
47. Natural Language Classifier - Interpret and classify natural language with confidence. [Электронный ресурс] - Режим доступа: http://www.ibm.com/watson/developercloud/nl-classifier.html (дата обращения:
01.04.2020)
48. Vapnik V.N. The Nature of Statistical Learning Theory. - New York, NY: Springer, 2000. - 314 p.
49. Гельбух А.Ф. Модель морфологии флективного естественного языка // Материалы III Международной конференции «Программное обеспечение ЭВМ». - Тверь, 1990. - С. 27-31.
50. Russian stemming algorithm [Электронный ресурс] - Режим доступа: http: //snowball. tartarus. org/algorithms/russian/stemmer. html (дата обращения:
07.07.2021)
51. Коваленко А. Вероятностный морфологический анализатор русского и украинского языков [Электронный ресурс] - Режим доступа: http://www.keva.ru/stemka/stemka.html (дата обращения: 15.11.2019)
52. Segalovich I. A fast morphological algorithm with unknown word guessing induced by a dictionary for a web search // Proceedings of the International Conference on Machine Learning; Models, Technologies and Applications. - Las Vegas, 2003. - P. 273-280.
53. Боярский К. К. Введение в компьютерную лингвистику. Учебное пособие. - СПб.: НИУ ИТМО, 2013. - 72 с.
54. Freund Y., Schapire R. A Short Introduction to Boosting // Journal of Japanese Society for Artificial Intelligence. - New Jersey, 1999. - P. 771-780.
55. Ferri C., Hernandez-Orallo J., Salido M.A. Volume under the ROC Surface for Multi-class Problems // Machine Learning: ECML 2003. - 2003. - P. 108-120.
56. Hand D. J., Till R. J. A Simple Generalisation of the Area Under the ROC Curve for Multiple Class Classification Problems // Machine Learning. - 2012. - Vol. 45. - P. 171-186.
57. Bennett K. P. Regression error characteristic curves // Twentieth International Conference on Machine Learning (ICML-2003). - Washington, DC, 2003. - P. 43-50.
58. Green D. M., Swets J. A. Signal detection theory and psychophysics. - New York, NY: John Wiley and Sons Inc., 1966. - 455 p.
59. Zweig M.H., Campbell G. Receiver-operating characteristic (ROC) plots: a fundamental evaluation tool in clinical medicine // Clinical Chemistry. - 1993. - Vol. 39 (8). - P. 561-577.
60. Pepe M.S. The statistical evaluation of medical tests for classification and prediction. - New York, NY: Oxford, 2003. - 245 p.
61. Obuchowski N.A. Receiver operating characteristic curves and their use in radiology // Radiology. - 2003. - Vol. 229. - P. 3-8.
62. Van Rijsbergen C.J. Information Retrieval (2nd ed.). - London: Butterworth, 1979. -208 p.
63. David M. Evaluation: From Precision, Recall and F-Measure to ROC, Informedness, Markedness & Correlation // Journal of Machine Learning Technologies. - 2011. - Vol. 2, Iss. 1. - P. 37-63.
64. Beitzel S. M. On Understanding and Classifying Web Queries: Ph.D. thesis. -Chicago, Illinois, 2006. - 88 p.
65. Li X., Acero A. Learning query intent from regularized click graphs // Proceedings of the 31st SIGIR Conference. - 2008. - P. 339-346.
66. Зализняк А.А. Грамматический словарь русского языка: словоизменение: около 110 000 слов. - Изд. 6-е, стер. - М.: АСТ-ПРЕСС, 2009. - 795 c.
67. Кузнецов П.С. Морфологическая классификация языков. Материалы к курсам языкознания. - М., 2016. - 138 с.
68. Маслов Ю.С. Введение в языкознание. - М.: Высшая школа, 1987. - 272 с.
69. Frakes W. B., Fox, C. J. Strength and Similarity of Affix Removal Stemming Algorithms // SIGIR Forum. - 2003. - Vol. 37. - P. 26-30.
70. Lovins J. B. Development of a Stemming Algorithm // Mechanical Translation and Computational Linguistics. - 1968. - Vol. 11. - P. 22-31.
71. Kraaij, Pohlmann W., Viewing Stemming as Recall Enhancement // Proceedings of the 17th ACM SIGIR conference held at Zurich, August 18-22. - 1996. - P. 40-48.
72. Liu H., Christiansen T., Baumgartner W. A., Verspoor K. BioLemmatizer: A lemmatization tool for morphological processing of biomedical text // Journal of Biomedical Semantics. - 2012. - Vol. 3. [Электронный ресурс]. Режим доступа: https://doi.org/10.1186/2041-1480-3-3 (дата обращения: 07.06.2021).
73. Осокин В.В., Алимов Р.Ф., Хайдаров Р.Р. Основы реализации поисковой системы // Интеллектуальные системы. - 2015. - Т. 19.- № 1. - С. 71-98.
74. Salton G., McGill M. J. Introduction to modern information retrieval. - New York: McGraw-Hill, 1983. - 472 p.
75. Salton G., Fox E. A. Wu H. Extended Boolean information retrieval // Commun. ACM. - 1983. - Vol. 26. - P. 1022-1036.
76. Salton G., Buckley C. Term-weighting approaches in automatic text retrieval // Information Processing & Management. - 1988. - P. 513-523.
77. Федоровский А.Н., Костин М.Ю. Р0МИП-2005 // в сб. «Труды Р0МИП'2005» Труды третьего российского семинара по оценке методов информационного поиска. - СПб.: НИИ Химии СПбГУ, 2005. - С. 106-124.
78. Капитанов А.И. Использование семантической близости слов для задачи классификации текстовых документов // 9-я Всероссийская межвузовская научно-практическая конференция «Актуальные проблемы информатизации в науке, образовании и экономике - 2016». М.: МИЭТ, 2016. - С. 27.
79. Капитанов А.И., Капитанова И.И. Разработка методики устранения многозначности слов при автоматической классификации текстовых документов // 11-я Всероссийская межвузовская научно-практическая конференция «Актуальные проблемы информатизации в науке и образовании - 2018». М.: МИЭТ, 2018. - С. 27.
80. Baayen R.H. Word Frequency Distributions. - Dordrecht: Kluwer acad. publ., 2001. - 333 p.
81. Kapitanov A.I., Kapitanova I.I., Troyanovskiy V.M., Ilyushechkin V.M., Dorogova E.G. Clustering of Word Contexts as a Method of Eliminating Polysemy of Words // 2019 IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering, Moscow, 2019. - pp. 1861-1864, DOI: 10.1109/EIConRus.2019.8656851.
82. Schreiner A. Object oriented programming with ANSI-C. - Hanser, 1993. -223 p. - ISBN 3-446-17426-5.
83. Weisfeld M. The Object-Oriented Thought Process. - Addison-Wesley Professional, 2013. - Ed. 4.- 336 p. - ISBN 978-0-321-86127-6.
84. Schach S. Object-Oriented and Classical Software Engineering. - New York, NY: McGraw-Hill, 2011. - Ed. 8. - 667 p. - ISBN 978-0-07-337618-9.
85. Грэхем И. Объектно-ориентированные методы. Принципы и практика. -3-е изд. - М.: «Вильямс», 2004. - С. 880. - ISBN 0-201-61913-Х.
86. Трояновский В.М. Программная инженерия информационно-управляющих систем в свете прикладной теории случайных процессов. - М.: ФОРУМ: ИНФРА-М, 2018. - 325 с. + доп. материалы. DOI: 10.12737/textbook 5ad88bf5c35cd8.81685342.
87. Арнольд В.И. Геометрические методы в теории обыкновенных дифференциальных уравнений. - М.: МЦНМО, 2012. - 384 с.
88. Ивахненко А.Г. Системы эвристической самоорганизации в технической кибернетике [Текст]. - Киев : Техшка, 1971. - 372 с.
89. Журавлев Ю.И. Об алгебраическом подходе к решению задач распознавания и классификации // Проблемы кибернетики. - 1978. - Вып. 33. - С. 5-68.
90. Kapitanov A., Troyanovskiy V., Kapitanova I., Dorogov V., Dorogova E. Analysis of the Statistical Fluctuations of Text Documents Classification Accuracy // 2020 IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering (EIConRus). - Moscow, 2020. - P. 1964-1968.
91. Kapitanov A.I., Kapitanova I.I., Dorogova E.G., Dorogov V.G., Troyanovskiy V.M. Analysis of Establishing the Maximum Efficiency of the Classifier and Its Evaluation Based on Training Results // 2021 IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering, Moscow, 2021. - pp. 2110-2113, DOI: 10.1109/ElConRus51938.2021.9396640.
92. Python IDE, Django IDE for Web developers: JetBrains PyCharm [Электронный ресурс] - Режим доступа: https://www.jetbrains.com/pycharm/whatsnew/ (дата обращения: 07.06.2021).
93. Kapitanov A.I., Kapitanova I.I., Troyanovskiy V.M., Slyusar V.V., Fedotova E.L. Investigation of the Influence of Outliers on Text Documents Probabilistic Classifier Quality // 2017 IEEE Russia Section Young Researchers in Electrical and Electronic Engineering Conference. Moscow, 2017. - pp. 438-439, DOI: 10.1109/EIConRus.2017.7910585.
94. WhatsApp is now delivering roughly 100 billion messages a day | TechCrunch [Электронный ресурс] - Режим доступа: https://techcrunch.com/2020/10/29/whatsapp-is-now-delivering-roughly-100-billion-messages-a-day/ (дата обращения: 07.06.2021).
95. 10 Amazing Telegram Stats (October 2017) | By the Numbers [Электронный ресурс] - Режим доступа: https://expandedramblings.com/index.php/telegram-stats/ (дата обращения: 07.06.2021).
96. Facebook by the Numbers: Stats, Demographics & Fun Facts [Электронный ресурс] - Режим доступа: https://www.omnicoreagency.com/facebook-statistics/ (дата обращения: 07.06.2021).
97. Twitter by the Numbers: Stats, Demographics & Fun Facts [Электронный ресурс] - Режим доступа: https://www.omnicoreagency.com/twitter-statistics/ (дата обращения: 07.06.2021).
98. Instagram by the Numbers: Stats, Demographics & Fun Facts [Электронный ресурс] - Режим доступа: https://www.omnicoreagency.com/instagram-statistics/ (дата обращения: 07.06.2021).
99. Kapitanov A.I., Kapitanova I.I., Troyanovskiy V.M., Shangin V.F., Krylikov N.O. Approach to automatic identification of terrorist and radical content in social networks messages // 2018 IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering. - Moscow, 2018. - P. 1517-1520.
ПРИЛОЖЕНИЕ 1. ЛИСТИНГИ ФРАГМЕНТОВ ПРОГРАММ Модифицированный метод сглаживания
# -*- coding: utf-8 -*-
from future_import print_function
from .version import_version_
from sklearn.naive_bayes import MultinomialNB import numpy as np import logging import sys
class MNaiveBayesEx(MultinomialNB):
def_init_(self, logger=None):
super()._init_()
self.logger = logger if logger else self.get_default_logger(logging.ERROR)
@staticmethod
def get_default_logger(level):
......Get default logger......
logger = logging.getLogger() logger.setLevel(level)
handler = logging.StreamHandler(sys.stdout) handler.setLevel(level)
formatter = logging.Formatter('%(asctime)s [%(levelname)s]: %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
return logger
def calculate_alpha(self):
std = np.std(self.feature_count_) avg = np.average(self.feature_count_) alpha = avg / np.sqrt(std)
self.logger.debug('alpha = {}'.format(alpha)) return alpha
def get_smooth_fc(self): return self.feature_count_ + self.calculate_alpha()
def _update_feature_log_prob(self, alpha): smoothed_fc = self.get_smooth_fc() smoothed_cc = smoothed_fc.sum(axis=1)
self.feature_log_prob_ = (np.log(smoothed_fc) - np.log(smoothed_cc.reshape(-1, 1)))
Подбор параметров классификации
class ExpFun: params = []
p0 = None T1 = None T2 = None delta = 1
def_init_(self, *params, color-blue', **kwargs):
self.color = color
self.set_function(*params, * *kwargs)
self.noise = kwargs['noise'] if 'noise' in kwargs else 0
def_add_(self, other):
return self._class_(self.params + other.params, noise=self.noise + other.noise)
def_mul_(self, color):
if isinstance(color, str):
self.color = color return self
def_str_(self):
return str(self.params)
def_getitem_(self, key):
return self.f(key)
@classmethod
def custom_plot(cls, x, y, **kwargs): plt.plot(x, y, **kwargs)
@classmethod
def delta_fun(cls, N, p0, p_max, T): return (p_max - p0) * (np.exp(-N / T) - np.exp(-(N + cls.delta) / T))
@classmethod
def double_exp(cls, N, p_max, k): a = 1. - np.exp(-N / cls.Tl) b = 1. - np.exp(-N / cls.T2)
return cls.pO + (p_max - cls.pO) * (a + k * b) / (1. + k) @classmethod
def double_exp_full(cls, N, p_max, k, T1, T2): a = 1. - np.exp(-N / T1) b = 1. - np.exp(-N / T2)
return cls.pO + (p_max - cls.pO) * (a + k * b) / (1. + k)
def predict(self, left_range, right_range, full_range, pO, maxT): (_, _, T1), _ = curve_fit(
self._class_.delta_fun,
left_range,
(self[left_range + 1] - self[left_range]), pO=(O, 1, 1OO), bounds=(O, [1., 1., maxT])
)
(_, _, T2), _ = curve_fit(
self._class_.delta_fun,
right_range,
(self[right_range + 1] - self[right_range]), p0=(0, 1, 2000), bounds=(0, [1., 1., maxT])
)
print(self[right_range + 1])
print(T1, T2)
self._class_.p0 = p0
self._class_.T1 = T1
self._class_.T2 = T2
(p_max, k, T1, T2), _ = curve_fit(
self._class_.double_exp_full,
full_range,
self[full_range],
p0=(p0, 1, T1, T2),
bounds=(0, [1., np.inf, maxT, maxT])
)
print(T1, T2, p0, p_max, k) return DoubleExpFun( p0=p0,
p_max=p_max,
k=k,
T1=T1,
T2=T2,
color='m',
)
def set_function(self, *params, **kwargs): self.params = params[0] if params else [( kwargs['p0'], kwargs['p_max'], kwargs['T']
)]
def get_T(self):
return self.params[0][2]
@classmethod
def func_static(cls, x, p0, p_max, T):
return p0 + (p_max - p0) * (1. - np.exp(-x / T))
@classmethod
def func(cls, x, params, noise=0):
return cls.func_static(x, *params) + cls.fluctuation(x, noise)
@staticmethod
def fluctuation(x, noise):
size = len(x) if isinstance(x, Iterable) else 1
return np.random.normal(loc=0, scale=noise / 2, size=size)
@staticmethod
def plot_array(x, functions): for f in functions: f.plot(x)
@staticmethod
def show(): plt.grid() plt.legend()
plt.xlabel('N')
plt.ylabel('Per(N)')
plt.show()
def f(self, x):
res = np.sum([self.func(x, params, noise=self.noise) for params in self.params], axis=0)
return res if isinstance(x, Iterable) else res[0]
def plot(self, x, show=False, color=None, **kwargs): color = color if color else self.color plt.plot(x, self.f(x), color=color, **kwargs)
if show:
ExpFun.show() return self
Определение контекстов
import numpy as np
from sklearn.manifold import TSNE
from matplotlib import pyplot as plt
from gensim.models.keyedvectors import KeyedVectors
class Convert: @staticmethod
def inject_word(w, docs_train, docs_test, clusters): if w is None:
return docs_train, docs_test k = 0
res = [[], []]
for i, docs in enumerate((docs_train, docs_test)): for doc in docs: words = []
for word in doc.split(' '): if word == w: word += '_' + str(clusters[k]) + '_SPEC' k += 1
words.append(word) res[i].append(' '.join(words))
return res[0], res[1]
@staticmethod
def filter_by_word(word, train_docs, train_target, test_docs, test_target): x_train, y_train, x_test, y_test = [], [], [], [] for i, doc in enumerate(train_docs): words = doc.split(' ') if word in words: x_train.append(doc) y_train.append(train_target[i])
for i, doc in enumerate(test_docs): words = doc.split(' ') if word in words: x_test.append(doc) y_test.append(test_target[i])
return x_train, y_train, x_test, y_test
@staticmethod
def documents_to_vec(train_docs, test_docs): words = {}
for doc in (train_docs + test_docs): for w in doc.split(' '): if w not in words:
words[w] = 1 else: words[w] += 1
words = {k: v for k, v in words.items() if v > 1OOO or (k[-5:] == '_SPEC')} words = {k: i for i, (k, _) in enumerate(words.items())} words_size = len(words) print('Words size = ' + str(words_size))
vectors = [None, None]
for c, docs in enumerate((train_docs, test_docs)): docs_size = len(docs)
vectors[c] = np.zeros((docs_size, words_size)) for i, doc in enumerate(docs): for w in doc.split(' '): if w not in words: continue
j = words[w] vectors[c][i][j] += 1
return vectors[0], vectors[1]
def contexts_to_vectors(path, contexts):
model = KeyedVectors.load_word2vec_format(path, binary=True) vectors = [] for context in contexts: vec_context = [] for w in context: if w in model: vec_context.append(model [w])
length = len(vec_context)
if length == O: new_context = O. print('Zero context!\n') else:
new_context = sum(vec_context) / float(length)
vectors .append(new_context) return vectors
def get_contexts(docs, word, window=5): docs_index = {} contexts = [] k = O
for ind, words in enumerate(docs): max_index = len(words) - 1 for i, w in enumerate(words): if w[O] != word: continue
context = words[max(O, i - window):i] + words[min(i + 1, max_index):min(i + window, max_index)]
if len(context) > O:
k += 1
contexts. append(context) docs_index[k] = ind
return contexts, docs_index
def show(X, Y, title="", figsize=(1O, 1O), fontsize=5):
sne = TSNE(n_components=2, perplexity=21, random_state=1OO).fit_transform(X)
plt.figure(figsize=figsize)
plt.grid(True)
plt.title(title)
for i, (x, y) in enumerate(sne):
plt.scatter(x, y, color-black', marker='o')
plt.annotate(str(i),
xУ=(x, У), xycoords='data',
fontsize=fontsize, textcoords='offset points', )
plt.show()
def euclidean_dist(data, centroids, clusters): for instance in data: mu_index = min([(i[O], np.linalg.norm(instance - centroids[i[O]])) \ for i in enumerate(centroids)], key=lambda t: t[1])[O]
try:
clusters [mu_index].append(instance) except KeyError:
clusters[mu_index] = [instance]
for cluster in clusters: if not cluster:
cluster.append(data[np.random.randint(0, len(data), size=1 )].flatten().tolist()) return clusters
Семантический классификатор
import random import numpy as np import warnings import hashlib import math import sys
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim') from gensim.models.keyedvectors import KeyedVectors from scipy.spatial import distance from abc import ABCMeta
from sklearn.base import BaseEstimator, ClassifierMixin from sklearn.externals import six
from sklearn import svm from profiler import Profiler import numpy as np import profiler
class SemanticClassification(six.with_metaclass(ABCMeta, BaseEstimator, ClassifierMixin)):
_model = None
__counter = O
__distances = dict()
_wordvec = dict()
def_init_(self, vocab, path):
SemanticClassification._counter += 1
self.classes = dict() self.vocab = vocab
self.id = SemanticClassification._counter
self.rand = O self.proba = [] self.classes_ = [] self.min_classes = O
self._mode = KeyedVectors.load_word2vec_format(path, binary=True)
@staticmethod
def my_kernel(X, Y): return np.dot(X, Y.T)
@staticmethod def clear_history():
SemanticClassification._distances = dict()
def fit(self, docs, y):
......Fit Semantic classifier according to X, y
Parameters
X : {array-like, sparse matrix}, shape = [n_samples, n_features] Training vectors, where n_samples is the number of samples and n_features is the number of features.
y : array-like, shape = [n_samples] Target values.
Returns
self : object
Returns self. !! !! !!
for c in set(y):
self.classes[c] = []
i = 0 X = [] Y = []
for doc, target in zip(docs, y):
words = doc.split()
len_words = len(words)
if len_words != 0:
vec = np.zeros(SemanticClassification._model.vector_size)
for word in words:
if word in SemanticClassification._wordvec:
vec += SemanticClassification._wordvec[word]
elif word in SemanticClassification._model:
SemanticClassification._wordvec[word] =
SemanticClassification._model[word]
vec += SemanticClassification._wordvec[word]
else:
len_words -= 1
if len_words != 0: vec /= len_words self.classes[target].append(vec) X.append(vec) Y.append(target)
i += 1
self.min_classes = len(self.classes[0]) for cl in self.classes: if len(self.classes[cl]) < self.min_classes: self.min_classes = len(self.classes[cl])
return self
def random_predict(self): keys = self.classes.keys() return random.choice(keys)
def predict(self, docs): !! !! !!
Perform classification on an array of test vectors X. Parameters
X : array-like, shape = [n_samples, n_features] Returns
C : array, shape = [n_samples] Predicted target values for X
self.classes_ = []
for doc in docs: doc_proba = [1.] * len(self.classes) words = doc.split() len_words = len(words) if len_words == 0: self.rand += 1
self.classes_.append(self.random_predict()) doc_proba = [1. / len(self.classes)] * len(self.classes) self.proba.append(np .array(doc_proba)) continue
vec = np.zeros(SemanticClassification._model.vector_size)
for word in words:
if word in SemanticClassification._wordvec:
vec += SemanticClassification._wordvec[word]
elif word in SemanticClassification._model:
SemanticClassification._wordvec[word] =
SemanticClassification._model[word]
vec += SemanticClassification._wordvec[word]
else:
len words -= 1
if len_words == 0: self.rand += 1
self.classes_.append(self.random_predict()) doc_proba = [1. / len(self.classes)] * len(self.classes) self.proba.append(np .array(doc_proba)) continue
vec = vec / len_words proximity = (None, None)
for c in self.classes: cur_proximity = [] for v in self.classes[c]: nplnorm = np.linalg.norm(vec - v) cur_proximity.append(nplnorm)
cur_proximity .sort() cur_proximity = cur_proximity[0:3] cur_proximity = sum(cur_proximity)
if (proximity[0] is None) or (cur_proximity < proximity[0]):
proximity = (cur_proximity, c) if cur_proximity != 0: doc_proba[c] = 1. / cur_proximity
else:
doc_proba[c] = 0.
self.classes_.append(proximity[1 ]) self.proba.append(np.array(doc_proba))
if self.rand > 0:
print("Random classification: " + str(self.rand) + " (" + str(self.rand * 100 / len(self.classes_)) + "%)")
self.classes_ = np.array(self.classes_) return self.classes_
def predict_probab(self, docs): if len(self.proba) == 0:
self.predict(docs) return self.proba
ПРИЛОЖЕНИЕ 2. АКТЫ ВНЕДРЕНИЯ
Утверждаю
АКТ
о практическом применении полученных результатов диссертационного исследования Капитанов» А.И. на тему: «Разработка методики и алгоритмов повышения эффективности линейной классификации неструктурированной текстовой информации в технических системах», представленной на соискание
учёной степени кандидата технических наук по специальности 05.13.01 «Системный анализ, управление и обработка информации»
Настоящим актом удостоверяется, что результаты диссертационной работы Каштанова А.И. используются в сервисе «Ensi Communication».
Результаты диссертационного исследования обладают высокой актуальностью и представляют практический интерес для ООО «Гринсайт», а именно:
• методика устранения многозначности терминов;
• алгоритм нормализации текстовых докуме»гтов, позволяющий привести неструктурированные тексты на естественном языке к единому формату;
• алгоритм классификации текстовых документов на основе семантической близости терминов, учитывающий понятийный состав и семантико-синтаксическую структуру текста;
Результаты позволили снизить объем входного текста для операторов службы поддержки на 15%.
Технический директор ООО «Гринсайт»
УТВЕРЖДАЮ Проректор МИЭТ по учебной работе . ¿т.н., профессор _it ( / И.Г. Игнатова
«j£i2» сг*4ллр1л. 2021 г.
АКТ
внедрения результатов диссертационной работы Капитанова А.И. на тему: «Разработка методики и алгоритмов повышения эффективности линейной классификации неструктурированной текстовой информации в технических системах», представленной на соискание учёной степени кандидата технических наук по специальности 05.13.01 «Системный анализ, управление и обработка
информации»
Результаты кандидатской диссертации Капитанова А.И., посвященной разработке методики и алгоритмов повышения эффективности линейной классификации неструктурированной текстовой информации в технических системах, а именно:
• методика устранения многозначности терминов;
• алгоритм нормализации неструктурированных текстовых документов на естественном языке;
• алгоритм классификации текстовых документов на основе семантической близости терминов, учитывающий понятийный состав и семантико-синтаксическую структуру текста;
используются в учебном процессе Института системной и программной инженерии и информационных технологий (СПИНТех) федерального государственного автономного образовательного учреждения высшего образования «Национальный исследовательский университет «Московский институт электронной техники» в лекционных, практических и лабораторных занятиях по дисциплинам: «Программирование на языке Python», «Современные технологии программирования».
Гагарина Л.Г.
Слюсарь В.В.
ПРИЛОЖЕНИЕ 3. СВИДЕТЕЛЬСТВО ОБ ИТЕЛЛЕКТУАЛЬНОЙ
СОБСТВЕННОСТИ
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.