/shughni

Парсер (вернее, «таггер») для глагольных форм шугнанского языка, построенный на материал словаря Карамшоева.

Primary LanguagePython

Привет! Здесь вы можете скачать таггер глаголов для шугнанского языка. Можно посмотреть презентацию таггера на Google Docs (или в пдф).

ЧТО УМЕЕТ ДЕЛАТЬ ТАГГЕР

  • строит систему глагольных основ шугнанского языка по словарю Карамшоева
  • заполняет лакуны в системе по регулярным правилам
  • конвертирует текст в экспедиционную орфографию, сохраняя регистр
  • распознаёт глаголы в тексте
  • определяет и указывает формы настоящего и прошедшего времён, перфекта и плюсквамперфекта, инфинитива (а также производных от них форм — причастий и отглагольных существительных; стяжённых форм настоящего времени и отрицательных форм)
  • знает о существовании нерегулярных и недостаточных глаголов и умеет с ними разбираться
  • знает о существовании клитик, которые присоединяются к концу глагола, и умеет с ними разбираться

ЧТО ОН БУДЕТ ДЕЛАТЬ В БУДУЩЕМ

  • распознавать формы императива (скоро)
  • распознавать формы, от которых убежали клитики (скоро)
  • распознавать формы с ошибками в долготах (скоро)
  • радовать глаз пользователя приятным графическим интерфейсом (возможно???)
  • существовать в виде самостоятельного и независимого exe-шника (возможно???)
  • сам скачивать из Интернета обновления (возможно???)
  • работать с вручную почищенной версией словаря Карамшоева (возможно???)

КАК ПОЛЬЗОВАТЬСЯ ТАГГЕРОМ

  • Таггер написан на языке Python, поэтому убедитесь, что среда Python установлен на вашем компьютере.
  • Скачайте себе на компьютер всё содержимое папки PARSER и поместите все находящиеся в ней файлы в одну папку на вашем устройстве.
  • Запустите файл program.py и следуйте инструкциям в открывшемся окне. Вам понадобится вставить в text.txt тот шугнанский текст, в котором вы хотите найти глаголы. По умолчанию в этом файле лежит тестовый текст про медвежонка, «Duzd yörӿak».
  • Таггер спросит вас, нужна ли вашему тексту конвертация орфографии. (Для тестового текста про медвежонка конвертация нужна.)
  • После этого текст с распознанными глаголами появится в файле output.txt. (Если такого файла нет в вашей папке, это нормально; он будет создан автоматически.)
  • Пожалуйста, не меняйте содержимое никаких файлов, кроме text.txt! Если вы что-то поменяли и ничего не работает, скачайте всё заново.
  • Обратите внимание! Таггер работает несовершенно. Если простановка долгот в вашем тексте отличается от простановки долгот в словаре Карамшоева, который мы берём за основу, то часть глаголов может не распознаться. В самом словаре Карамшоева (а точнее, в оцифрованной его версии) тоже есть ошибки, которые ухудшают работу таггера. Наконец, некоторые глагольные формы совпадают с другими словами в шугнанском языке. Мы работаем над решением этих проблем, но пока что их стоит иметь в виду. Тем не менее, большинство форм таггер определяет верно.
  • Также: не для всех глаголов указывается лемма (перевод). Это тоже связано с ограничениями словаря Карамшоева.

УСТРОЙСТВО ТАГГЕРА

  • Сначала строится матрица словаря из файла vocab.txt, в котором лежит таблица с глагольными основами. Если каких-то форм в словаре нет, таггер предполагает, что они образуются по регулярным правилам, и достраивает их сам.
  • Затем программа читает ваш текст из text.txt, конвертирует орфографию (если вы указали, что это нужно) и делит текст на токены (слова).
  • В каждом токене таггер пытается найти какую-нибудь основу из словаря; он просматривает весь словарь и сравнивает токен с каждой основой.
  • Если какие-то основы совпадают, программа пытается определить, может ли токен быть какой-либо формой, образованной от данной основы, и глоссирует найденные формы.
  • Затем таггер отдельно смотрит, не является ли токен отрицательной или условной формой, стяжённой формой или нерегулярным глаголом.
  • Все глоссирования вставляются в текст и выводятся в файл output.txt.

Можно посмотреть исходный код в program.py для более полного понимания алгоритма.


ФАЙЛЫ

Все файлы, необходимые для работы программы, находятся в папке PARSER.

program.py — это основной файл программы. Его нужно запустить, чтобы начать программу.

ortho.txt — это данные для конвертации орфографии. Для каждого символа "неправильной" орфографии обозначен символ, на который его нужно заменить.

text.txt — это файл с текстом, в котором пользователь хочет распознать формы глаголов.

vocab.txt — это файл-словарик с основами шугнанских глаголов, которые знакомы программе.

vocab (ver1).txt и vocab (ver2).txt — две версии vocab. Обе теоретически совместимы с таггером, но в них разные ошибки. В первой версии j (й) часто неправильно заменён на ǯ (джь), но там почищено много помарок распознавания Карамшоева. Во второй помарок распознавания почищено меньше, зато с j всё в порядке.

vocab.txt — бывший vocab_with_lexemes, который сделал Юра. Он создан на основе ver1, потому что так лучше распознаётся. Там есть лексемы.

orthocorrupt.txt — это файл с данными о символах, которые не могут встречаться в тексте вместе; то есть если они встречаются, надо выдать предупреждение (пока что эта функция не работает).

irreg.txt — это файл-словарик нерегулярных глаголов и их глоссирований.