Дипломная работа Программная поддержка морфемного словаря Швейкина О.А., 525 гр. Научный руководитель: к.ф.-м.н. доцент Большакова Е.И.
Терминология Морфема – наименьшая языковая единица, обладающая значением: Корень: стол, един Аффикс: при (приставка), от (суффикс) Морф – конкретная реализация морфемы в тексте; Пример: пер, пир, стал Алломорф - совокупность морфов одной морфемы; Пример: б р, бер, бор Морфемный разбор слова – нахождение минимальных значимых единиц, из которых оно составлено Пример: положение, полагать 2/14
Морфемные словари и подходы к их построению Морфемные словари (МС): Печатные: (словарь А.Н. Тихонова) Тяжело вносить дополнения Медленный поиск Электронные: («Яндекс. Словари», «Ариадна») Нет прикладного интерфейса Подходы к построению: Состаление вручную (высокая точность) Автоматизированный (точность около 80%) Генетический алгоритм Построение правил разбиения на морфы Вероятностный метод 3/14
Постановка задачи Цель: разработка компьютерного морфемного словаря русского языка и поддерживающих его программ Исходные данные составлены вручную (текст. файлы) Требуется разработать: 1) схему хранения однокоренных и много коренных слов; 2) программы загрузки исходных данных; 3) процедуры, выполняющие: Морфемный разбор слов, содержащихся в БД; Морфемный разбор слов, отсутствующих в БД; Поиск слов с заданной морфемой; 4) пользовательский и прикладной интерфейсы. 4/14
Принципы организации словарных данных Исходные данные – текстовые файлы со словами, разбитыми на морфы (типы морфов помечены): + бетон % о + мешал к * а Хранимые данные: для каждого слова хранится: 1) Строковое представление 2) Связи с морфами (морфемный состав) для каждого морфа хранится: 1) Строковое представление 2) Тип (соединит. гласная является отдельным типом) 3) Связи с морфами (алломорфы) 5/14
Схема базы данных словаря СловоId слова Бетономешалка235 Процедура15782 Id 1Id Id морфаморфТип морфа 21ОСоед.гласная 147БетонКорень 1543РасКорень 1547РастКорень Id слова морфа в слове Id морфа words word_morphs morphs allomorphs 6/14
Функции словаря 1) Осуществление морфемного разбора слов, хранящихся в БД словаря Пример: запрос:одичавший результат: -О+ДИЧ-АВШ*ИЙ 2) Поиск возможного морфемного разбора слов, отсутствующих в БД словаря 3)Поиск групп слов, содержащих заданную морфему (с учетом возможных алломорфов) Пример: запрос: -бер- (корень) результат: слова с корнями -бер-, -бир-, -б р-, -бор-. 7/14
Поиск вариантов морфемного разбиения (для отсутствующих в БД слов) Шаг поиска: 1) Отщепляются очередные несколько букв. Они рассматриваются как кандидаты в морфы 2) Проверяется, являются ли эти буквы нужным морфом 3) Если да – эти буквы считаются морфом слова, продолжается поиск разбиения для остатка Если нет – отщепляется еще одна буква, либо ищется след. тип Строится дерево поиска, в узлах: Разоб ранная и не разобранная части слова, Текущий тип морфа 8/14
Дерево поиска. Пример 1)«» 2) Столик 3) Приставка 1)«» 2) Столик 3) корень Приставка = « » 1)«+Стол» 2) ик 3) суффикс Корень = «Стол» 1)«+Стол-и» 2) к 3) суффикс 1)«+Стол-ик» 2) - 3) - Суффикс = «ик» Суффикс = «и» Суффикс = « » 1)«+Стол-и-к» 2) - 3) - Суффикс = «к» 9/14 1)«-С» 2) толик 3) корень 1)«+Стол» 2) ик 3) окончание Приставка = « С »
Программная реализация Язык реализации – С++ Среда разработки – Visual Studio 2005 Библиотека графического интерфейса – MFC Реляционная база данных – SQLITE Язык для работы с базой данных – SQL Прикладной интерфейс, поддерживающий : Загрузку исходных файлов; Поиск морфемного состава слов из БД, не из БД; Поиск слов с заданной морфемой 10/14
Пользовательский интерфейс. Поиск морфемного состава 11/14
Пользовательский интерфейс. Поиск слов с заданной морфемой 12/14
Результаты работы 1. Изучены существующие морфемные словари и способы их построения. 2. Предложена модель хранения словарных данных. 3. Разработаны программные средства поддержки: загрузки словарных данных из текстовых файлов; поиска морфемного разбора заданного слова из БД не из БД; поиска слов, содержащих заданную морфему. 4. Реализован прикладной и пользовательский интерфейсы. 13/14
14/14