Санкт-Петербургский государственный университет
Кафедра математической лингвистики
Направление: «Лингвистика»
Образовательная программа: «Прикладная,
экспериментальная и математическая лингвистика
(английский язык)»
ЛИНГВИСТИЧЕСКИЕ ЭКСПЕРТНЫЕ СИСТЕМЫ (НА
МАТЕРИАЛЕ ИЖОРСКОГО ЯЗЫКА)
Выпускная квалификационная работа
соискателя на степень бакалавра филологии
Ченцовой Ольги Кирилловны
Научный руководитель:
к.ф.н., доц. И.С.Николаев
Рецензент:
к.ф.н., доц. В.П.Захаров
Санкт-Петербург
2017
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ.................................................................................................... 3
ГЛАВА 1. ЭКСПЕРТНЫЕ СИСТЕМЫ ...................................................... 5
1.1 Что такое экспертные системы ........................................................... 5
1.2 Экспертные системы в лингвистике ................................................ 10
ГЛАВА 2. ИЖОРСКИЙ ЯЗЫК.................................................................. 14
2.1 Ижорский язык ................................................................................... 14
2.2 Угроза исчезновения ижорского языка ........................................... 17
ГЛАВА 3. ЭКСПЕРТНАЯ СИСТЕМА ДЛЯ ИЖОРСКОГО ЯЗЫКА ... 25
3.1 Цели и задачи программы ................................................................. 25
3.2 Описание программы ........................................................................ 26
Инструменты для создания программы ................................................ 26
Процесс разработки программы ............................................................. 26
Работа с данными в системе Izhora ........................................................ 28
Описание работы программы ................................................................. 28
Выводы ...................................................................................................... 36
ЗАКЛЮЧЕНИЕ ........................................................................................... 37
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ................................... 38
ПРИЛОЖЕНИЯ ........................................................................................... 40
Приложение 1. Код программы экспертной системы по ижорскому
языку. ................................................................................................................... 40
ВВЕДЕНИЕ
Экспертные системы являются одним из направлений исследований в
области искусственного интеллекта и обладают большим потенциалом для
выполнения практических задач. В лингвистике, как и во многих других
областях знаний, существует много проблем, для решения которых могли бы
применятся технологии экспертных систем.
В последнее время вопрос изучения языков, находящихся под угрозой
исчезновения, приобрёл особую значимость в лингвистике. Всё больше
языков отмирает по всему миру, и зачастую не остаётся ни исчерпывающих
описаний исчезнувшего языка, ни корпусов языковых и фольклорных
материалов. На территории Российской Федерации эта проблема стоит
особенно остро, что связано как с невероятным этническим и языковым
разнообразием в стране, так и с несовершенной языковой политикой
государства. В России на данный момент более сотни языков либо уже
причислены к вымершим, либо находятся под угрозой исчезновения.
Ижорский язык – один из таких.
Для сохранения информации об отмирающем языке представляется
целесообразным
создать
экспертную
систему,
обладающую
исчерпывающими знаниями по структуре и грамматике данного языка,
корпусами текстов (в том числе фольклорных), медиафайлами (записи речи,
песен и т.д.) и рассчитанную на работу с пользователями разных уровней
лингвистической подготовки.
Цель данной работы – создание программы экспертной системы,
способной предоставить пользователю исчерпывающую информацию об
ижорском языке.
В рамках работы должны быть выполнены следующие задачи:
1. обзор истории экспертных систем и их использования для решения
лингвистических задач;
2. рассмотрение
проблемы
языков,
находящихся
под
угрозой
исчезновения;
3. описание базовой концепции программы экспертной системы и
постановка требований к ней;
4. создание программы;
5. наполнение программы необходимой информацией по языку.
Актуальность данной работы определяется тем, что в условиях
быстрого отмирания языка чрезвычайно важно собрать и структурировать
всю имеющуюся о нём информацию. Представление этой информации в
удобной и доступной форме программы экспертной системы может помочь
повысить интерес пользователей различных уровней образования к языкам
малых этносов. В условиях глобализации и развития компьютерных и
Интернет-технологий именно форма компьютерной программы экспертной
системы
представляется
поставленных целей.
наиболее
выгодной
для
осуществления
ГЛАВА 1. ЭКСПЕРТНЫЕ СИСТЕМЫ
1.1 Что такое экспертные системы
Экспертная система – это компьютерная программа, которая оперирует
со знаниями в определенной предметной области с целью выработки
рекомендаций или решения проблем. Проще говоря, экспертная система
призвана частично заменить собой человека-специалиста или играть роль
ассистента эксперта. Технология разработки экспертных систем является
одним из направлений искусственного интеллекта. Эта технология нацелена
на эмулирование тех областей деятельности человека, которые требуют
мышления и опыта.
Для того, чтобы компьютерную программу можно было назвать
экспертной системой, она должна отвечать некоторым требованиям [2]:
• эта программа должна обладать знаниями. Знания при
этом
предполагают определённую организацию и интеграцию;
• знания,
которыми
обладает
программа,
должны
быть
сконцентрированы на определённой предметной области;
• из знаний должно вытекать решение проблем.
Экспертные системы способны выполнять ряд задач, среди которых:
извлечение информации из первичных данных, диагностика неисправностей,
структурный анализ сложных объектов, выбор конфигурации сложных
многокомпонентых систем, планирование последовательности операций,
приводящих к заданной цели, и т.д.
Экспертные
системы
обладают
определёнными
свойствами,
отличающими их от остальных прикладных программ. Система моделирует
не столько физическую природу определённой проблемной области, сколько
механизм мышления человека в рамках задач, которые необходимо решить в
этой области, то есть много внимания уделяется воспроизведению методики
решения проблем, которая применяется экспертом.
Таким образом,
экспертная система стремится выполнить задачи (или части их) так же (или
даже лучше), как это делает эксперт.
Для решения задач в основном применяются не алгоритмические, а
эвристические и приближенные методы. Это позволяет моделировать
процесс получения человеком знаний по мере накопления некоего
практического опыта, однако в то же время такие методы предполагают
определённую степень неуверенности в правильности предлагаемого
решения. Причина применения подобных методов заключается в том, что
экспертные системы обычно имеют дело с предметами реального мира, для
работы с которыми требуется наличие значительного опыта, накопленного
человеком. В силу характера своих задач такие системы часто имеют
практическую и коммерческую направленность.
На основе знаний, которыми она располагает, экспертная система
формирует определённые соображения и выводы. Знания, на которые
опирается экспертная система, называются базой знаний. Таким образом,
экспертная система представляет собой так называемую knowledge-based
system (систему, основанную на знаниях). Иногда термины «экспертная
система» и «система, основанная на знаниях» употребляются как синонимы.
Таким образом, экспертная система содержит знания в определённой
предметной области, накопленные в результате практической деятельности
человека, и использует их для решения проблем, специфичных для этой
области.
Базовыми функциями экспертной системы являются:
• приобретение знаний;
• представление знаний;
• управление процессом поиска решения;
• разъяснение принятого решения.
Приобретение знаний – это передача потенциального опыта решения
проблемы от некоторого источника знаний и преобразование его в вид,
который позволяет использовать эти знания в программе. Передача знаний
осуществляется путём диалога создателя экспертной системы с экспертом в
данной области знаний. Это достаточно длительный и трудоёмкий процесс,
поэтому этот этап создания программы часто рассматривается как «узкое
место». В качестве возможных способов решения этой проблемы и
увеличения
производительности
могут
выступать
автоматизированное
извлечение знаний (automated knowledge elicitation) и машинное обучение.
В области экспертных систем представление знаний означает
систематизированную методику описания на машинном уровне того, что
знает человек-эксперт.
Использование разных стратегий перебора имеющихся знаний, как
правило, оказывает довольно существенное влияние на характеристики
эффективности программы. Эти стратегии определяют, каким способом
программа отыскивает решение проблемы в некотором пространстве
альтернатив.
Фредерик Хайес-Рот выделяет следующие типы экспертных систем на
основании решаемых задач [15]:
• интерпретация данных;
• прогнозирование;
• диагностирование;
• проектирование;
• планирование;
• мониторинг;
• отладка;
• ремонт;
• обучение;
• управление.
Технология
экспертных
систем
может
успешно
применятся
в
различных сферах человеческой деятельности, например, в органической
химии, поиске полезных ископаемых, медицинской диагностике.
Старейшая программа, к которой был применён термин «экспертная
система» – это Dendral. Система Dendral была создана в Стэнфордском
университете. Её задачей было определение молекулярной структуры
неизвестного органического соединения. DENDRAL реально применялась на
практике для определения химических структур.
Одной из самых знаменитых ранних экспертных систем является
система MYCIN, разработанная в семидесятых годах в Стэнфордском
университете. Эта система была предназначена для диагностики наблюдения
за состоянием пациента при менингите и бактериальных инфекциях
(название системы происходит от суффикса, часто встречающегося в
названиях антибиотиков). Однако, несмотря на то, что по оценкам
исследователей, MYCIN превосходила в эффективности стэнфордских
профессоров-медиков, система никогда не использовалась на практике в силу
недостаточного технологического обеспечения тех времён, а также по
этическим и правовым соображениям.
Другая известная экспертная система – PROSPECTOR – применялась
при
поиске
ископаемых.
коммерчески
Работа
оправданных
системы
основана
месторождений
на
нечёткой
полезных
логике;
ход
«рассуждений» системы может быть непонятен пользователю, в связи с чем
возникает необходимость для программы в объяснении своих действий.
Помимо перечисленных, существует большое количество других
экспертных систем, часть из которых успешно применяется на практике для
решения совершенно различных задач: медицинской диагностики, обучения,
синтеза химических соединений, оценке займов и рисков страхования и т.д.
1.2 Экспертные системы в лингвистике
В области лингвистики, как и в других сферах человеческой
деятельности, существуют задачи, которые возможно решить с помощью
технологии экспертных систем. В перечень таких задач входят распознавание
речи, обучение языку, методы идентификации говорящего и другие.
Одной из самых ранних и, в то же время, самых известных таких
программ была система Hearsay-II. Hearsay была ранней попыткой решить
проблему распознавания речи с помощью технологии экспертных систем.
Система Hearsay-II, разработанная в университете Карнеги-Меллон,
распознаёт связную речь в рамках словаря из тысячи слов, достигая при этом
90 процентов правильных интерпретаций предложений. Изначально система
разрабатывалась
как
внешний
интерфейс
базы
данных
библиотеки.
Предполагалось, что пользователь мог обратиться к программе на
английском языке с запросом о книгах, содержащихся в библиотеке,
например: «Есть ли у вас труды авторов Фихтенгольца и Ландау?». В ответ
система должна была предоставить информацию из базы данных библиотеки.
Для достижения достаточного уровня распознавания речевых сигналов,
при создании системы было необходимо сочетать классические техники,
применяемые в создании искусственного интеллекта, и специфические
лингвистические и акустические знания. Распознавание речи требует
интеграции ряда различных процессов, для которых необходимы знания и
данные из разных областей. С каждым уровнем анализа связана отдельная
отрасль знаний: фонетика, лексика, грамматика, семантика и прагматика, и
ни одна из них не способна отдельно от остальных предоставить достаточно
данных для решения проблемы распознавания речи. Поэтому в системе
Hearsay-II был применён принцип, который впоследствии стал называться
«классной доской» (blackboard). Это стратегия, применяемая для решения
сложных задач с привлечением разнородных источников знаний, которые
взаимодействуют через общее информационное поле. Необходимые для
работы программы знания о предметных областях распределены между
источниками знаний (knowledge sources), а само решение принимается в
некой глобально доступной структуре, которая и является классной доской.
Созданная позднее система Hearsay-III является обобщением подхода,
принятого при создании Hearsay-II, и представляет собой оболочку для
проектирования экспертных систем. На основе структуры Hearsay были
созданы
программы
кристаллографический
для
анализ
многих
совершенно
белков,
разных
распознавание
задач:
изображений,
понимание диалога и другие.
Экспертные системы могут использоваться и для перевода с одного
естественного языка на другой. Так, существует экспертная система
поддержки перевода (ЭСПП), представляющая собой экспериментальную
двуязычную систему машинного перевода с английского языка на
азербайджанский. ЭСПП была разработана в Институте информационных
технологий при Национальной академии наук Азербайджана и реализована
на базе программы Delphi 7, применяемой для создания систем управления
базами данных и знаний.
Данная экспертная система работает в двух режимах, а именно:
перевод фразы (словосочетания на основе морфосинтаксического анализа) и
пословный перевод (используется скорее как аварийное средство в случае,
если не удаётся построить синтаксическую структуру).
Работа системы опирается на базу знаний и правила на основе
трансформационной
грамматики
с
элементами
грамматики
непосредственных составляющих и конечных автоматов. Данная система
способна пополняться по ходу и в результате работы, делать выводы из
посылок и обладает практической ценностью.
Технологии экспертных систем имеют большой потенциал в области
обучения языку. И хотя на данный момент компьютер ещё не может
полностью заменить учителя, он может использоваться как вспомогательное
средство.
Сейчас уже существуют экспертные системы, целью которых является
обучение пользователей языку. Одной из таких является система для
обучения английской грамматике (an expert system for the teaching of English
grammar), созданная при Наньянском технологическом университете.
Система написана на языке Turbo PROLOG и использует контекстносвободный метод рекурсивного спуска.
Данная система содержит две среды: среду учителя и среду ученика.
Среда учителя необходима для создания гибкой системы, которая смогла бы
подстраиваться под нужды конкретного ученика. Таким образом, учитель
может сам настраивать и, в каком-то смысле, «учить» систему, определяя
необходимое для обучения в конкретном случае множество правил
английской грамматики. Здесь программа обучается тому, предложения с
какой структурой и какие слова она должна распознавать. Система также
содержит расширяемые базы данных, которые могут пополняться.
Ученик имеет возможность заносить в систему предложения и тексты и
проверять их на грамматическую корректность, согласно правилам,
установленным учителем. Также можно создавать так называемые error files,
то есть файлы, содержащие грамматические ошибки из текстов, что может
пригодиться впоследствии.
Обучающие экспертные системы успешно применяются на практике.
Это, например, так называемые tactical language and culture training systems
(TLCTS) – системы тактического обучения языку и культуре, которые
используются для тренировок военных США перед отправкой на операции в
восточные страны. Такие системы позволяют обучающимся быстро овладеть
навыками, необходимыми для адекватного общения на иностранном языке в
другой культурной среде. Обучение проходит отчасти в игровой форме и
фокусируется прежде всего на конкретных коммуникативных навыках: для
того, чтобы выполнить задание, пользователю необходимо научиться
говорить на изучаемом языке и понимать культурные особенности народа.
В этих программах особое значение имеет технология распознавания
речи. Задача в данном случае усложняется из-за того, что программа имеет
дело с речью обучающегося, а не носителя языка. Причём, в отличие от
обычных распознавателей речи, которые разрабатываются так, чтобы
игнорировать и обходить речевые ошибки, TLCTS должны, напротив,
фокусироваться на ошибках говорящего и предоставлять обратную связь.
TLCTS могут использоваться как самостоятельно, так и в сочетании с
работой «в классе». Обучение с помощью TLCTS показало себя весьма
эффективным. Так, например, утверждается, что морские пехотинцы США,
тренировавшиеся с помощью программы Tactical Iraqi, были способны
справляться с заданиями во время военной операции в Ираке в декабре 2007
года, не полагаясь на переводчиков, что позволило работать эффективней и
улучшило отношения с местным населением.
ГЛАВА 2. ИЖОРСКИЙ ЯЗЫК
2.1 Ижорский язык
Ижорский
язык
–
язык
малочисленной
народности
ижора,
проживающей на территории Ленинградской области. К настоящему времени
ижорцы почти полностью ассимилированы. Современная ижора проживает в
основном на южном побережье Финского залива в Ломоносовском районе
Санкт-Петербурга и Кингисеппском районе Ленинградской области.
Ижорский язык относится к прибалтийско-финской подгруппе финноугорской ветви уральских языков. Ижорский язык наиболее близок к
эвремейсскому диалекту финского языка.
В ижорском языке выделяются четыре основных диалекта:
• Хэваский, ныне исчезнувший; был распространён в Ломоносовском
районе Ленинградской области по берегам реки Коваши
• Оредежский, исчезнувший; носители проживали в верховьях реки
Оредеж
• Сойкинский диалект, распространённый на Сойкинском полуострове
Кингисеппского района
• Нижнелужский, распространённый в низовьях реки Луги
На Рисунке 1 продемонстрировано распространение малых народов на
территории Ленинградской области, в том числе народа ижора.
Рисунок 1. Малые народы Ленинградской области.
Ижорский язык оставался бесписьменным в Российской Империи. В
начале XX века исследователями отмечалось относительно плохое знание
ижорцами русского языка, несмотря на то, что большая часть населения была
издавна обращена в православие и носила русские имена. Расцвет ижорской
культуры пришёлся на тридцатые годы в СССР: тогда была создана
письменность на основе латиницы, язык преподавался в школах, впускались
учебники, газеты и книги на ижорском, в некоторых сельсоветах часть
документации велась на ижорском языке. Но позднее в период сталинских
репрессий вся национальная политика была свёрнута, ижорское письмо
запрещено как проявление «буржуазого национализма». Во время Второй
мировой войны (а именно в 1943 году) почти все носители прибалтийскофинских языков были депортированы в Финляндию, за исключением
жителей нескольких деревень (Куровцы, Орлы, Ванакюля, Кейкино),
скрывавшихся во время проведения акции, а в послевоенные годы многие
жили в Эстонии, так как до середины 1950-х годов существовали
ограничения на расселение финно-угорских народов в местах прежнего
проживания. В результате репрессий по «национальным линиям» и Великой
Отечественной войны численность ижорского народа уменьшилась в
шестнадцать раз. В этот период и позднее многие ижорцы скрывают своё
происхождение и национальность, записываясь в паспорте русскими.
Общий социально-экономический кризис, существовавший в СССР и
СНГ в 1980-90 годах также привёл к резкому сокращению численности
малых
народов
и
значительному
превышению
смертности
над
рождаемостью. Данные переписи 2002 года о распределении ижор по
возрастам представлены на Таблице1.
В возрасте, лет
Ижоры, численность в
пределах Ленинградской области,
чел.
0 – 15
3
15 – 19
1
20 – 24
3
25 – 29
4
30 – 39
1
40 – 49
21
50 – 59
14
60 и страше
130
общая
177
Таблица 1. Перепись ижорского населения.
На данный момент на территории Российской Федерации по
различным данным проживает до трёхсот ижорцев. По Всероссийской
переписи населения 2010 года к ижорцам себя причислили 266 человек.
По данным Центра коренных народов Ленинградской области от 20
февраля 2015 года, живыми носителями ижорского языка являются 20
человек.
В настоящий момент в деревне Вистино, в которой проживает
наибольшее количество носителей ижорского языка, планируется создание
промышленных зон и портов, что может привести к окончательному
исчезновению этого народа
2.2 Угроза исчезновения ижорского языка
В последние десятилетия чрезвычайно остро стоит проблема изучения
исчезающих языков. Согласно оценкам некоторых учёных [16],за последние
пятьсот лет вымерло больше половины существовавших ранее мировых
языков, причём около половины из существующих на данный момент можно
отнести
к
находящимся
под
угрозой
исчезновения.
В
условиях
усиливающейся глобализации можно утверждать, что множество языков (в
особенности малых народов) вымирает с ужасающей скоростью. По данным
интерактивного Атласа исчезающих языков мира ЮНЕСКО, 131 язык на
территории России находятся в опасности, причём 15 из них уже признаны
мёртвыми [20]:
20 – уязвимы (vulnerable);
49 – есть явная угроза исчезновения (definitely endangered);
29 – серьёзная угроза исчезновения (severely endangered);
22 – критичная угроза исчезновения (critically endangered).
На Рисунке 2 изображена карта России с сайта Атласа исчезающих
языков ЮНЕСКО, на которой отмечены уязвимые языки в ареалах их
распространения.
Рисунок 2. Исчезающие языки в России.
В 2009 году ижорский язык был включён в Атлас исчезающих языков
мира ЮНЕСКО как находящийся под серьёзной угрозой исчезновения. Под
такими языками понимаются те языки, которые понятны только старшим
поколениям, и почти не используются в повседневной жизни и при общении
с детьми. Согласно другой классификации, предложенной лингвистом
Майклом
Крауссом,
язык
находится
в
безопасности,
если
можно
предположить, что в течение 100 лет дети будут говорить на нём; язык
находится под угрозой исчезновения (endangered), если предполагается, что
через 100 лет дети не будут его использовать; язык считается «отмирающим»
(moribund), если на данный момент дети уже не говорят на нём (таким
образом, ижорский язык можно отнести к отмирающим).
Когда можно утверждать, что данный язык мёртв? Британский
лингвист Дэвид Кристал в своей работе «Смерть языка» («Language death»)
объясняет это просто: «Язык отмирает только тогда, когда умирает
последний человек, говорящий на нём».
Зачастую смерти языка предшествует билингвизм его носителей,
которые перенимают другой, более распространённый и «престижный» язык.
Крситал
выделяет
три
основных
причины
отмирания
языков:
физическое уничтожение носителей (истребление народов и геноцид),
враждебность
по
отношению
к
отдельным
языкам
и
глобализация/ассимиляция. Многими лингвистами именно глобализация и
ассимиляция выделяются как основные причины отмирания языков
(Crystal2001, Krauss 1992, Hale1992, Trudgill 1995:192-193 and Mufwene
2004).В настоящий момент среди языков мира наиболее уязвимы те, которые
не используются в образовании, административной деятельности и СМИ.
Решающим фактором угрозы для существования языка часто является не
число его носителей, а статус и престиж этого языка в обществе.
По Кристалу, ассимиляция доминирующим языком малых языков
происходит за три этапа. На первой стадии доминирующий язык угнетает
языковое сообщество в политическом, экономическом, социальном и
культурном аспектах (на данный момент это происходит особенно быстро за
счёт развитых средств массовой информации). Очень важную роль на данном
этапе играет региональная и государственная языковая политика (законы о
языке, преподавание языка в школах и т.д.).
На второй стадии (Кристал называет её стадией «развивающегося
билингвизма»), языковое сообщество принимает доминирующий язык как
второй язык, который постепенно начинает вытеснять малый язык
сообщества.
На третьей стадии сообщество полностью принимает доминирующий
язык в качестве основного и ассимилируется, что приводит к моноязыковому
сообществу.
Вопрос, который часто возникает при рассмотрении проблемы
отмирания языков, звучит следующим образом: должны ли мы вообще
беспокоиться об этой проблеме и заниматься ей, и если да, то
почему?Процесс отмирания языков естественен существовал на протяжении
всей человеческой истории. Однако именно в последнее столетие скорость
исчезновения языков набирает тревожные обороты. Важность проблемы и
необходимость изучать языки, находящиеся под угрозой исчезновения,
обусловлены многими факторами.В первую очередь, такие исследования
важны с чисто лингвистической точки зрения. Описания исчезающих языков
представляют собой чрезвычайно ценный материал для последующего
изучения как самих отмирающих языков, так и родственных им. Так же
важно изучение самого процесса отмирания языка, в том числе и социальных
и социолингвистических изменений, происходящих в языковом сообществе в
это время. Более того, исчезновение любого языка является невосполнимой
утратой, поскольку языки отражают исторический и культурный опыт
народов, являются инструментом передачи социальных и культурных
традиций,
служат
средством
этнической
самоидентификации.
Таким
образом, смерть языка неизбежно приводит к потере определённых
социальных и этнографических знаний и памятников культуры, а в
дальнейшем, возможно, и к социальным и политическим проблемам.
Американский лингвист и исследователь многих исчезающих языков Кеннет
Хэйл писал об этом: «Потеря местных языков и культурных систем, которые
они
выражают,
означает
невосполнимую
потерю
разнообразных
и
интересных интеллектуальных богатств, бесценных продуктов человеческого
ума» («The loss of local languages, and of the cultural systems that they express,
has meant irretrievable loss of diverse and interesting intellectual wealth, the
priceless products of human mental industry»).
Говоря
об
ижорском
языке,
необходимо
адекватно
оценить
лингвистическую и социокультурную ситуацию и понять, действительно ли
язык нуждается в том, чтобы предпринимались активные действия,
нацеленные на его сохранение.
Для того чтобы оценить степень опасности исчезновения языка, нужно
рассматривать четыре группы явлений, происходящих в языке и обществе:
социологические,
этнопсихологические,
социолингвистические
и
лингвистические [10]. При этом социологические и этнопсихологические
факторы, в числе которых малое число носителей и тенденция к
аккультурации, кажется, не являются достаточно надёжными для того, чтобы
на их основании можно было отнести язык к исчезающим, так как для малых
народов нормально иметь небольшое количество носителей языка, а
аккультурация может всего лишь говорить о том, что представители малого
народа находятся в тесном контакте с более многочисленной народностью.
Тенденция носителей отказываться от родного языка в пользу более
престижного является более существенным фактором, однако и это не всегда
оказывается однозначно негативным и необратимым процессом.
Гораздо более существенными представляются социолингвистические
и чисто лингвистические параметры. К социолингвистическим факторам
относятся:
• двуязычность всех носителей малого языка;
• активными
носителями
языка
являются
в
основном
представители старшего поколения;
• дети не перенимают язык от родителей;
• родной язык используется только в ограниченной сфере
общения;
• языковые заимствования носят однонаправленны й характер;
К лингвистическим параметрам относятся:
• большое количество заимствований из доминантного языка;
• слабая степень фонологической и морфологической интеграции
заимствованных слов;
• замещение
оригинальных
морфологичеких
показателей
заимствованными;
• словообразовательные правила перестают быть продуктивными;
• редукция фонологической системы;
• редукция словоизменительной морфологии;
• замена синтетических конструкций на аналитические;
• сокращение количества и исчезновение сложноподчинённых
предложений.
Из перечисленных выше лингвистических факторов ни один сам по
себе не является достаточным для того, чтобы можно было судить об
отмирании языка. В то же время, такие социолингвистические факторы как
то, что носителями в основном являются люди старшего возраста, а
молодому поколению язык не передаётся, могут служить основанием для
того, чтобы утверждать, что языку угрожает опасность.
Как раз этим двум параметрам удовлетворяет ситуация, сложившаяся
вокруг ижорского языка. Угроза подкрепляется и другими факторами: малым
и
всё
уменьшающимся
лингвистическими
количеством
явлениями,
а
носителей
именно:
и
некоторыми
большим
количеством
заимствований, отсутствием интеграции заимствованных слов, редукцией
словоизменительной
морфологии
и
отсутствием
построенных из оригинального ижорского материала.
новообразований,
Таким образом, можно говорить о том, что ижорский язык находится
под сильной угрозой исчезновения, хотя и говорить о том, что этот язык
необратимо отмирает, возможно, пока рано. Тем не менее, очевидно, что
ижорский язык нуждается в поддержке и проведении исследований,
направленных на его сохранение.
Существуют два пути, по которым могут пойти лингвисты для того,
чтобы сохранить исчезающий язык: документирование и возрождение языка
(ревитализация). Второй путь чрезвычайно сложен, сопряжён со многими
серьёзными проблемами и требует не только серьёзной работы лингвистов,
но и поддержки государства, работы по созданию положительного
отношения к языку и т.д. Очень важным является принятие нормативноправовых актов, разработка целевых программ, пропаганда и поощрение
использования языка в образовании и СМИ.
В рамках документирования одной из основных задач лингвистов,
занимающихся изучением и охраной отмирающих языков, является сбор и
структурирование материалов языка (создание корпусов текстов, коллекций
фольклорных материалов и т.д.), а также подробное описание этих языков.
В последнее время всё больше уделяется внимания вопросу сохранения
многоязычия в киберпространстве. Библиотеки и лингвисты принимают
участие в разработке различных многоязычных порталах, выпускают
компакт-диски и программы, содержащие информацию о традициях, истории
и верованиях коренных народов, размещают на своих сайтах электронные
библиотеки и каталоги.
В связи с этим представляется целесообразным создать программуэкспертную систему, в рамках которой была бы собрана информация по
ижорскому языку. Такая программа способна выполнять сразу несколько
глобальных функций: повысить интерес к исчезающим языкам, в частности,
ижорскому; помочь в обучении ижорскому языку; сохранить часть
культурного наследия ижорского народа. Использование подобных систем
позволит пользователям получать информацию о языке, которая вне этих
систем труднодоступна.
ГЛАВА 3. ЭКСПЕРТНАЯ СИСТЕМА ДЛЯ ИЖОРСКОГО
ЯЗЫКА
3.1 Цели и задачи программы
Лингвистическая экспертная система Izhora представляет собой
программу, предоставляющую разнообразную информацию об ижорском
языке для пользователей любого уровня образования, с возможностью
обращения к эксперту для получения справки по сложным вопросам,
возможностью обратной связи.
Основными целями создания экспертной системы являются:
• сбор и структурирование информации и материалов об ижорском
языке;
• создание удобного и понятного интерфейса для работы с системой для
пользователей разных уровней подготовки;
• предоставление корпусов ижорских текстов, в том числе фольклора и
устной речи;
• предоставление грамматической, исторической и культурной справки о
языке;
• возможность обращения за справкой к эксперту.
Программа содержит в себе следующие базы данных:
• корпус ижорских текстов;
• коллекция мультимедиа-материалов;
• русско-ижорский и ижорско-русский словари;
• база данных общей информации по ижорскому языку;
• база данных грамматической информации.
3.2 Описание программы
Инструменты для создания программы
В качестве материала для разработки программы были взяты
лингвистические труды по ижорскому языку, а также материалы из открытых
источников. В частности, базы знаний раздела общелингвистической справки
и грамматического раздела были составлены на основании трудов
А.Лаанеста «Ижорский язык» и И.С. Николаева «Ижорцы и ижорский язык.
Социолингвистическое описание», так как они предоставляют наиболее
полную и точную информацию по теме на русском языке из всех имеющихся
источников. Другие материалы, например, мультимедиа материалы, такие
как видеозаписи и песни, были взяты из открытых источников, в частности
были использованы материалы, предоставленные Центром коренных народов
Ленинградской области, и материалы, собранные энтузиастами.
Программа была написана как классическое приложение Windows на
языке C#. Такой формат был выбран за его удобство и простоту как
непосредственно в разработке, так и в последующем использовании. Язык C#
представляется наиболее подходящим для создания подобных приложений.
Процесс разработки программы
Для того, чтобы обозначить конкретные функции системы, необходимо
сначала
определить
категории
пользователей,
которые
могут
быть
заинтересованы в конечном продукте. Можно выделить следующие
основные категории:
• рядовые пользователи, не знакомые ранее с ижорским языком
• лингвисты
• носители ижорского языка или потомки носителей
Каждая категория будет использовать программу по-разному исходя из
поставленных целей и имеющегося языкового опыта. Программа должна
быть в состоянии предоставить что-то ценное для всех категорий
пользователей, но наибольшую пользу из неё смогут извлечь в первую
очередь пользователи, не знакомые до этого с ижорским языком: раздел
общеязыковой справки рассчитан прежде всего на них; также мультимедиа
материалы призваны повысить заинтересованность таких пользователей в
изучении ижорского языка. Для таких пользователей необходимо, чтобы вся
информация была представлена ёмко и понятно и была легкодоступна. Для
лингвистов наиболее полезной может быть информация о грамматическом
строе языка и корпусы текстов. Важно, чтобы информация в этих разделах
была хорошо структурирована и была достоверной. Что касается носителей
языка и их потомков, то их может заинтересовать всевозможная информация
в зависимости от уровня владения языком. Чрезвычайно важным будет
являться «фидбек» таких пользователей и их вопросы, которые они смогут
отправить с помощью специальной функции.
Исходя из потребностей пользователей была спроектирована структура
программы.
В состав программы Izhora входят следующие подсистемы:
• общелингвистическая справка;
• грамматическая справка;
• база текстов;
• русско-ижорский и ижорско-русский словарь;
• коллекция мультимедиа файлов;
• форма для отправки вопроса эксперту.
В свою очередь, подсистемы имеют свои внутренние разделы. Есть
возможность быстрого перехода из словарей в грамматическую справку и из
коллекции мультимедиа в коллекцию текстов.
Программа выполняет следующие функции:
• обеспечение доступа пользователя к различным материалам,
хранящимся в базах данных программы
• отображение информации из баз данных в текстовой и
графической форме
• навигация по разделам и подсистемам программы
• воспроизведение
аудио-
и
видеоматериалов
в
стороннем
приложении
• поиск заданного слова по запросу пользователя
• отправка пользовательского запроса на выделенный для этих
целей адрес электронной почты
Работа с данными в системе Izhora
Информация, хранящаяся в базах данных программы, представляет
наибольшую ценность, так как её сбор, структурирование и предоставление
пользователю и является основной задачей Izhora.
Программа имеет несколько каталогов, каждый из которых относится к
определённой подсистеме. Данные программы хранятся в таких специально
выделенных каталогах в файлах .txt. При необходимости пополнения или
изменения данных в базе, достаточно внести изменения в существующие
текстовые файлы. Предполагается, что рядовому пользователю такая
возможность предоставляться не будет.
На вход программе поступают текстовые пользовательские запросы
при работе со словарями и при отправке вопроса эксперту. В остальных
случаях взаимодействие пользователя с программой происходит посредством
простого «клика» на необходимые разделы и функции.
Описание работы программы
Izhora предназначена для работы на персональных компьютерах с
установленной операционной системой Windows, для корректной работы
мультимедиа раздела также требуется наличие установленного внешнего
проигрывателя. Код программы представлен в Приложении 1.
При запуске программы пользователь видит меню с навигацией по
основным разделам, а также кнопкой «Задать вопрос». При работе с
программой пользователю предлагается переходить по разделам программы
с целью получения необходимых знаний по запросу. Функция «Задать вопрос
эксперту» доступна для пользователя на любом этапе работы с программой.
Кнопка перенаправляет пользователя на форму, в которую тот может вписать
свой вопрос и оставить контактные данные. После этого вопрос направляется
эксперту на специально созданную электронную почту с помощью функции
send_ask.
На Рисунке 3 демонстрируется окно ввода запроса эксперту.
Рисунок 3. Окно запроса эксперту.
Подсистема общелингвистической информации предназначена для
первичного знакомства пользователя с ижорским языком. Раздел общей
информации о языке состоит из следующих частей: история языка,
распространение языка (данный раздел также содержит диалектологическую
информацию), культура ижор. Данные для этой подсистемы хранятся в
ресурсных файлах программы в папке information корневой папки
программы.
Диаграмма 1 представляет собой примерный алгоритм работы с
подразделом.
Диаграмма 1
На Рисунке 4 показан экран программы с открытым разделом об ареале
распространения ижорского языка.
Рисунок 4. Окно общей информации.
Таким образом, подраздел общей информации выполняет в работе
следующие
функции:
предоставление
общей
справки
по
языку,
предоставление справки по истории языка, предоставление информации об
ареале распространения, демонстрация графических материалов (карты),
предоставление справки о культуре.
Раздел «Грамматика» содержит краткую грамматическую справку об
ижорском языке и состоит из четырёх подразделов: фонетика, морфология,
лексика и синтаксис. В свою очередь раздел морфологии содержит в себе
разделы
по
частям
речи,
а
именно:
имя
существительное,
имя
прилагательное, имя числительное, глагол, наречие, послелоги и предлоги.
Подраздел фонетики описывает фонетическую систему ижорского
языка: классификацию гласных и согласных фонем, артикуляцию звуков,
фонетические закономерности.
В подразделе морфологии пользователь может получить справку о
лексико-грамматических
разрядах
частей
речи
ижорского
языка
и
словоизменительных парадигмах.
Подраздел синтаксиса содержит информацию о синтаксических связях
слов в ижорском языке, о структуре простых и сложных предложений.
На Рисунке 5 показан пример работы с данным разделом.
Рисунок 5. Окно работы с грамматической справкой.
Словари
представляют
предоставляющую
для
собой
пользователя
интерактивную
возможность
подсистему,
быстрого
поиска
конкретного слова по словарной базе. Поиск осуществляется по заглавному
слову в его начальной форме, ошибки и опечатки программой не
распознаются. Корпус словаря состоит из текстовых файлов со словарными
статьями и насчитывает на данный момент порядка четырёх тысяч слов.
Поиск перевода может осуществляться как с ижорского на русский, так и с
русского на ижорский.
За выбор языка отвечает переменная ind_lang. В зависимости от её
значения функция button_translate обращается к нужной папке корневого
каталога программы (dictionary(from izh) и dictionary(from rus)), в которых
ищет текстовый файл со словарной статьёй для заданного слова.
Алгоритм работы словарей показан на Диаграмме 2.
Диаграмма 2
Izhora содержит в себе подраздел корпусов ижорских текстов.
Подраздел текстов на ижорском языке содержит следующие корпуса:
• ижорские песни (руны)
• сказки
• записи устной речи
• публицистика
• художественные тексты
• научные тексты
В тех случаях, где это возможно, ижорские тексты снабжены
переводом на русский язык.
Структура и содержание коллекции текстов показаны на Диаграмме 3.
Диаграмма 3
Подраздел
мультимедиа
содержит
следующие
аудио-
и
видеоматериалы:
• песни (ижорские руны);
• записи устной речи;
• фильмы;
• музыкальные видеозаписи;
• интервью.
Мультимедиа материалы воспроизводятся во внешнем проигрывателе.
При воспроизведении ижорской песни при наличии её текста и русского
перевода в базе программы есть возможность открыть его параллельно с
воспроизведением.
Алгоритм работы раздела показан на Диаграмме 4.
На Рисунке 6 показано окно программы при воспроизведении песни с
открытым параллельно корпусом текстов рун.
Рисунок 6. Окно работы с файлами мультимедиа.
Выводы
В данной главе была описана разработанная экспертная система для
ижорского языка. Была описана структура программы, её основные функции,
базы данных, приведены примеры пользовательских сценариев и алгоритмов.
Экспертная
система
Izhora
является
единственной
известной
существующей на данный момент компьютерной программой, призванной
помочь в обучении ижорскому языку и способствовать увеличению к нему
интереса.
ЗАКЛЮЧЕНИЕ
В условиях глобализации и отсутствия грамотной языковой политики
проблема исчезновения языков стоит чрезвычайно остро. В современном
мире с развитыми компьютерными и Интернет-технологиями самым
адекватным способом сохранения информации о языке и привлечения новых
людей, изучающих язык, является создание интерактивных баз знаний и
компьютерных программ. Подобная программа была создана в рамках
данной работы.
В рамках исследования был произведён обзор технологий экспертных
систем и их применения для решения лингвистических задач; были
рассмотрены основные аспекты проблемы отмирания языков, подчёркнута
важность и актуальность вопроса в настоящий момент, в особенности на
территории Российской Федерации. Была создана первая версия программы
для ижорского языка, нацеленная на помощь в обучении языку, его
распространение и создание массового интереса к нему. Для этой программы
были собраны материалы, дающие исчерпывающее представление как о
самом ижорском языке, так и об ижорской истории и культуре.
Созданная экспертная система обладает практической значимостью,
которая заключается в том, что подобные программы способны внести
существенный вклад в сохранение языков, находящихся под угрозой
исчезновения. В частности, данная программа может предоставить широкому
пользователю информацию об ижорском языке, которая в остальных случаях
может оказаться труднодоступной, и повысить интерес к этому языку не
только у лингвистов и энтузиастов, но и у самих носителей языка.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Булгакова Е.В. Экспертные системы и методы идентификации диктора
/ Е.В. Булгакова, Е.В. Краснова // Известия высших учебных заведений.
Приборостроение – 2014 – №2, том 57 – С. 58-63.
2. Джексон П. Введение в экспертные системы – Вильямс, 2001.
3. Замятин К. Как и зачем сохранять языки народов России/ Замятин К.,
Пасанен А., Саарикви Я. – Хельсинки, 2012.
4. Историко-культурный атлас республики Коми. – М., 1997.
5. Конькова О. Ижора: очерки истории и культуры – СПб., 2009.
6. Кулиева З.Ю. Экспертная система поддержки перевода / З.Ю. Кулиева
// Штучний інтелект – 2009 – С. 87-93.
7. Лаанест А. Ижорский язык – М.: Языки народов СССР, 1966.
8. Многоязычие в России: региональные аспекты – М.: Межрегиональный
центр библиотечного сотрудничества, 2008.
9. Нейлор К. Как построить свою экспертную систему – М., 1991.
10.Николаев И.С. Ижорцы и ижорский язык. Социолингвистическое
описание Учебное пособие. СПб, 2008.
11.Crystal D. Language Death – Cambrige University Press, 2002.
12.Dorian N. Investigating obsolescence. Studies in language contraction and
death – Cambrige University Press, 1989.
13.Erman Lee D. The Hearsay-II speech-understanding system: integrating
knowledge to resolve uncertainty / Lee D. Erman, F. Hayes-Roth, V.R.
Lesser, D.R. Reddy // Computing Surveys – 1980 – Vol 12, No 2 – С. 213253.
14.Ferreira M. Language death: why should we care? – 2013.
15.Hayes-Roth, Frederick; Waterman, Donald; Lenat, Douglas (1983). Building
Expert Systems.
16.Janse M.Language Death and Language Maintenance: Problems and
Prospects.
17.Keong C.C An expert system for the teaching of English grammar / C.C.
Keong // Computer and munication systems – 1990.
18.Lester James Introduction to the special issue on intelligent user interfaces /
J.Lester // AI Magazine – 2001 – Vol 22, No 4 – С. 13-14.
19.Miller Perry L. Prose generation from expert systems: an applied
computational linguistics approach / Perry L. Miller, Glenn D. Rennels // AI
Magazine – 1988 – Vol 9, No 3 – С. 37-44.
20.UNESCO Atlas of the World’s Languaes in Danger [Электронныйресурс]
//http://www.unesco.org/languages-atlas.
21.W. Lewis Johnson Tactical language and culture training systems: Using AI
to teach foreign languages and cultures / W. Lewis Johnson, Andre Valente
// AI Magazine – 2009 – Vol 30, No 2 – С. 72-83.
ПРИЛОЖЕНИЯ
Приложение 1. Код программы экспертной системы по ижорскому
языку.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Net;
using System.Net.Mail;
namespace Kurs
{
public partial class Form1 : Form
{
const int h = 613, w = 600;
int[] output_height = {300, 60};
string[] languages
"Введите слово на ижорском"};
=
{"Введите
слово
на
русском",
string[] texts_categories = { "Песни(руны)", "Сказки",
"Устная речь", "Публицистика", "Художественные тексты", "Научные
тексты" };
string[] texts_folders = { "runes", "tales", "spoken",
"public", "art", "science" };
string[] media_categories = { "Песни(руны)", "Записи
речи", "Фильмы", "Видеозаписи исполнения музыки", "Интервью" };
string[] media_folders = { "songs", "voices", "films",
"videos", "interviews" };
string[] grammar_categories = { "Фонетика", "Морфология",
"Синтаксис", "Лексика" };
string[] grammar_folders = { "phonetics", "morphology",
"syntax", "lexis" };
string[] morphology_categories = { "Имя существительное",
"Имя
прилагательное",
"Имя
числительное",
"Глагол",
"Наречие",
"Послелоги", "Предлоги" };
string[] morphology_folders = { "noun",
"numeral", "verb", "adverb", "postposition", "pretext" };
"adjective",
int ind_lang = 0;
string root_folder, directory_now;
bool vision_files = false;
string mailboxfrom = "izorin.keli@gmail.com", mailboxto =
"izorin.keli@gmail.com", mailpass = "Izhora111";
bool is_categories;
public Form1()
{
InitializeComponent();
}
void start_vision()
{
grammar_vision(false);
dictonary_vision(false);
information_vision(false);
texts_vision(false);
media_vision(false);
main_menu_vision(true);
ask_vision(false);
}
void main_menu_vision(bool command)
{
button_grammar.Visible = command;
button_dictonary.Visible = command;
button_information.Visible = command;
button_texts.Visible = command;
button_media.Visible = command;
button_main_menu.Visible = !command;
}
void dictonary_vision(bool command)
{
ind_lang = 0;
label_language.Text = languages[ind_lang];
label_language.Visible = command;
textBox_input.Visible = command;
textBox_output.Height = output_height[ind_lang];
textBox_output.Visible = command;
button_change_language.Visible = command;
button_translate.Visible = command;
button_clear.Visible = command;
button_grammar_small.Visible = command;
}
void information_vision(bool command)
{
textBox_header.Visible = command;
textBox_information.Visible = command;
button_history.Visible = command;
button_culture.Visible = command;
button_map.Visible = command;
button_to_start_informatoin.Visible = false;
textBox_areal.Visible = false;
pictureBox_map.Visible = false;
}
void texts_vision(bool command)
{
comboBox_texts.Visible = command;
comboBox_text_files.Visible = command;
label_texts.Visible = command;
textBox_texts.Visible = command;
button_choose_text.Visible = command;
textBox_text_orig.Visible = false;
textBox_text_translate.Visible = false;
}
void media_vision(bool command)
{
comboBox_media.Visible = command;
label_media.Visible = command;
listView_media.Visible = command;
button_play.Visible = command;
button_back.Visible = false;
textBox_song.Visible = false;
//button_vision.Visible = command;
}
void ask_vision(bool command)
{
button_ask.Visible = !command;
label_ask.Visible = command;
textBox_ask.Visible = command;
button_send.Visible = command;
}
void grammar_vision(bool command)
{
button_lexis.Visible = command;
button_morphology.Visible = command;
button_syntax.Visible = command;
button_phonetics.Visible = command;
textBox_grammar.Visible = false;
button_back_to_gr.Visible = false;
comboBox_grammar.Visible = false;
}
private void Form1_Load(object sender, EventArgs e)
{
start_vision();
root_folder = Environment.CurrentDirectory;
directory_now = Environment.CurrentDirectory;
}
private
void
button_dictonary_Click(object
sender,
EventArgs e)
{
main_menu_vision(false);
dictonary_vision(true);
}
private
void
button_information_Click(object
sender,
EventArgs e)
{
main_menu_vision(false);
information_vision(true);
string direct = root_folder + @"\information";
if (!Directory.Exists(direct))
{
Directory.CreateDirectory(direct);
}
string file = direct + @"\information.txt";
textBox_information.Text
Encoding.GetEncoding(1251));
=
File.ReadAllText(file,
textBox_header.Text = "Информация об ижорском языке";
}
private void button_texts_Click(object sender, EventArgs
e)
{
main_menu_vision(false);
texts_vision(true);
comboBox_texts.Items.Clear();
string direct = root_folder + @"\texts";
if (!Directory.Exists(direct))
{
Directory.CreateDirectory(direct);
}
for (int i = 0; i < 6; i++)
comboBox_texts.Items.Add(texts_categories[i]);
directory_now = root_folder + @"\texts";
}
private void button_media_Click(object sender, EventArgs
e)
{
comboBox_media.Items.Clear();
main_menu_vision(false);
media_vision(true);
listView_media.Clear();
directory_now
=
Environment.CurrentDirectory
+
"\\media";
for (int i = 0; i < 5; i++)
comboBox_media.Items.Add(media_categories[i]);
}
private
void
button_main_menu_Click(object
EventArgs e)
{
start_vision();
}
sender,
private void button_change_language_Click(object sender,
EventArgs e)
{
ind_lang = 1 - ind_lang;
label_language.Text = languages[ind_lang];
textBox_output.Height = output_height[ind_lang];
}
private void button_clear_Click(object sender, EventArgs
e)
{
textBox_input.Text = "";
textBox_output.Text = "";
}
private
void
textBox_input_TextChanged(object
sender,
EventArgs e)
{
textBox_output.Text = "";
}
private
void
button_translate_Click(object
sender,
EventArgs e)
{
string file = root_folder;
if (ind_lang == 0)
file
=
textBox_input.Text + ".txt";
file
+
@"\dictonary(from
rus)\"
+
file
+
@"\dictonary(from
izh)\"
+
else
file
=
textBox_input.Text + ".txt";
if (File.Exists(file))
{
textBox_output.Text
Encoding.GetEncoding(1251));
=
File.ReadAllText(file,
}
else
{
textBox_output.Text = "Такого слова нет";
}
}
private
void
button_choose_text_Click(object
sender,
EventArgs e)
{
try
{
string
file
=
directory_now
comboBox_text_files.SelectedItem.ToString() + @".txt";
@"\translate\"
@".txt";
+
+
@"\"
+
string
file_translate
=
directory_now
comboBox_text_files.SelectedItem.ToString()
+
+
if (File.Exists(file))
{
if (!File.Exists(file_translate))
{
textBox_texts.Visible = true;
textBox_text_orig.Visible = false;
textBox_text_translate.Visible = false;
textBox_texts.Text
File.ReadAllText(file, Encoding.GetEncoding(1251));
}
else
{
=
textBox_texts.Visible = false;
textBox_text_orig.Visible = true;
textBox_text_translate.Visible = true;
textBox_text_orig.Text
File.ReadAllText(file, Encoding.GetEncoding(1251));
=
textBox_text_translate.Text
File.ReadAllText(file_translate, Encoding.GetEncoding(1251));
=
}
}
else
{
textBox_texts.Text
=
"Данный
текст
отсутствует";
}
}
catch
{
textBox_texts.Text = "Выберите текст из списка";
}
}
void play()
{
if (listView_media.SelectedItems.Count == 1)
{
string name_of_file
listView_media.SelectedItems[0].Text;
string[]
Directory.GetFiles(directory_now);
string file = "";
=
directory_now
files
+
@"\"
+
=
for (int i = 0; i < files.Length; i++)
{
int j = 0;
while
name_of_file[j] == files[i][j])
(j
<
name_of_file.Length
&&
j++;
if (j == name_of_file.Length)
{
file = files[i];
break;
}
}
if (file != "")
{
if
(comboBox_media.SelectedItem
==
media_categories[0])
{
name_of_file
=
directory_now
@"\translations\" + listView_media.SelectedItems[0].Text + @".txt";
+
if (File.Exists(name_of_file))
{
textBox_song.Text
File.ReadAllText(name_of_file, Encoding.GetEncoding(1251));
media_vision(false);
button_back.Visible = true;
textBox_song.Visible = true;
}
}
Process.Start(file);
}
}
=
}
private void button_play_Click(object sender, EventArgs
e)
{
play();
}
private
void
sender, MouseEventArgs e)
listView_media_MouseDoubleClick(object
{
play();
}
string name_dir(string road)
{
string res = "";
int i = road.Length - 1;
while (road[i] != '\\')
i--;
i++;
for (int j = i; j < road.Length; j++)
res = res + road[j];
return res;
}
/*void upd_listView()
{
listView_media.Clear();
if (!vision_files)
{
List<string>
directs
=
List<string>(Directory.EnumerateDirectories(directory_now));
new
for (int i = 0; i < directs.Count(); i++)
{
listView_media.Items.Add(name_dir(directs[i]));
}
}
else
{
if (!Directory.Exists(directory_now))
{
vision_files = true;
button_back.Text = "Выбрать тему";
upd_listView();
}
else
{
string[]
Directory.GetFiles(directory_now);
string[]
files
name_of_files
=
=
new
string[files.Length];
for (int i = 0; i < files.Length; i++)
{
name_of_files[i] = "";
for (int j = directory_now.Length + 1; j
< files[i].Length; j++)
name_of_files[i] += files[i][j];
listView_media.Items.Add(name_of_files[i]);
}
}
}
}*/
void send_ask()
{
if (textBox_ask.Text != "")
{
MailMessage
MailMessage(mailboxfrom, mailboxto,
textBox_ask.Text);
SmtpClient
SmtpClient("smtp.gmail.com", 587);
question
"Вопрос по
=
ижорскому
sclient
sclient.Credentials
NetworkCredential(mailboxfrom, mailpass);
=
=
new
языку",
new
new
sclient.EnableSsl = true;
sclient.DeliveryMethod
SmtpDeliveryMethod.Network;
=
sclient.Send(question);
}
}
private void button_back_Click(object sender, EventArgs
e)
{
media_vision(true);
}
private void button_vision_Click(object sender, EventArgs
e)
{
/*if (vision_files)
{
button_vision.Text = "Выбрать файл";
label_media.Text = "Выберите нужную тему";
}
else
{
button_vision.Text = "Выбрать тему";
label_media.Text
=
"Выберите
файл
для
проигрывания";
}
vision_files = !vision_files;
//upd_listView();*/
}
private void label_media_Click(object sender, EventArgs
e)
{
}
private void button_ask_Click(object sender, EventArgs e)
{
start_vision();
main_menu_vision(false);
ask_vision(true);
}
private void button_send_Click(object sender, EventArgs
e)
{
send_ask();
textBox_ask.Text = "";
start_vision();
}
private
void
button_history_Click(object
sender,
EventArgs e)
{
pictureBox_map.Visible = false;
textBox_areal.Visible = false;
textBox_information.Visible = true;
button_to_start_informatoin.Visible = true;
textBox_header.Text = "История возникновения языка";
string
@"\information\history";
direct_history
=
root_folder
+
if (!Directory.Exists(direct_history))
{
Directory.CreateDirectory(direct_history);
}
string
file_history
=
direct_history
+
@"\history.txt";
textBox_information.Text
File.ReadAllText(file_history, Encoding.GetEncoding(1251));
=
}
private
void
button_culture_Click(object
EventArgs e)
{
pictureBox_map.Visible = false;
textBox_areal.Visible = false;
textBox_information.Visible = true;
button_to_start_informatoin.Visible = true;
sender,
textBox_header.Text = "Культура народа ижор";
string
@"\information\culture";
direct_culture
=
root_folder
+
if (!Directory.Exists(direct_culture))
{
Directory.CreateDirectory(direct_culture);
}
string
file_culture
=
direct_culture
+
@"\culture.txt";
textBox_information.Text
File.ReadAllText(file_culture, Encoding.GetEncoding(1251));
=
}
private
sender, EventArgs e)
void
button_to_start_informatoin_Click(object
{
button_main_menu.PerformClick();
button_information.PerformClick();
}
private
sender, EventArgs e)
void
comboBox_texts_SelectedIndexChanged(object
{
for (int i = 0; i < 6; i++)
{
if
(comboBox_texts.SelectedItem.ToString()
==
texts_categories[i])
{
directory_now
texts_folders[i];
}
}
=
root_folder
+
@"\texts\"
+
comboBox_text_files.Items.Clear();
string[]
files
=
Directory.GetFiles(directory_now,
"*txt");
string[] name_of_files = new string[files.Length];
for (int i = 0; i < files.Length; i++)
{
name_of_files[i] = "";
for (int
files[i].Length - 4; j++)
j
=
directory_now.Length
+
1;
j
<
name_of_files[i] += files[i][j];
comboBox_text_files.Items.Add(name_of_files[i]);
}
}
private void button_map_Click(object sender, EventArgs e)
{
textBox_information.Visible = false;
button_to_start_informatoin.Visible = true;
pictureBox_map.Visible = true;
textBox_areal.Visible = true;
textBox_header.Text = "Ареал распространения";
string
@"\information\map.jpg";
file_areal_map
=
root_folder
+
string
@"\information\areal.txt";
file_areal_text
=
root_folder
+
pictureBox_map.Image
Image.FromFile(file_areal_map);
=
textBox_areal.Text
File.ReadAllText(file_areal_text, Encoding.GetEncoding(1251));
=
}
private
sender, EventArgs e)
void
comboBox_media_SelectedIndexChanged(object
{
for (int i = 0; i < 5; i++)
{
if
(comboBox_media.SelectedItem.ToString()
==
media_categories[i])
{
directory_now
=
root_folder
+
@"\media\"
+
media_folders[i];
}
}
listView_media.Items.Clear();
string[] files = Directory.GetFiles(directory_now);
string[] name_of_files = new string[files.Length];
for (int i = 0; i < files.Length; i++)
{
name_of_files[i] = "";
for (int
files[i].Length - 4; j++)
j
=
directory_now.Length
+
1;
j
<
name_of_files[i] += files[i][j];
listView_media.Items.Add(name_of_files[i]);
}
}
private
void
button_grammar_Click(object
EventArgs e)
{
main_menu_vision(false);
grammar_vision(true);
directory_now = root_folder + @"\grammar";
sender,
}
private
void
button_grammar_small_Click(object
sender,
EventArgs e)
{
button_main_menu.PerformClick();
button_grammar.PerformClick();
}
private
void
button_phonetics_Click(object
sender,
EventArgs e)
{
grammar_vision(false);
button_back_to_gr.Visible = true;
textBox_grammar.Visible = true;
textBox_grammar.Text = File.ReadAllText(directory_now
+ @"\" + grammar_folders[0] + @".txt", Encoding.GetEncoding(1251));
}
private
void
button_morphology_Click(object
sender,
EventArgs e)
{
grammar_vision(false);
button_back_to_gr.Visible = true;
comboBox_grammar.Visible = true;
textBox_grammar.Visible = true;
textBox_grammar.Text = "";
directory_now
grammar_folders[1];
=
directory_now
comboBox_grammar.Items.Clear();
for (int i = 0; i < 7; i++)
+
@"\"
+
{
comboBox_grammar.Items.Add(morphology_categories[i]);
}
}
private void button_syntax_Click(object sender, EventArgs
e)
{
grammar_vision(false);
button_back_to_gr.Visible = true;
textBox_grammar.Visible = true;
textBox_grammar.Text = File.ReadAllText(directory_now
+ @"\" + grammar_folders[2] + @".txt", Encoding.GetEncoding(1251));
}
private void button_lexis_Click(object sender, EventArgs
e)
{
grammar_vision(false);
button_back_to_gr.Visible = true;
textBox_grammar.Visible = true;
textBox_grammar.Text = File.ReadAllText(directory_now
+ @"\" + grammar_folders[3] + @".txt", Encoding.GetEncoding(1251));
}
private
void
button_back_to_gr_Click(object
EventArgs e)
{
button_main_menu.PerformClick();
button_grammar.PerformClick();
}
sender,
private void comboBox_grammar_SelectedIndexChanged(object
sender, EventArgs e)
{
textBox_grammar.Text = "";
int i = 0;
while
(i
<
7
&&
morphology_categories[i]
comboBox_grammar.SelectedItem.ToString())
!=
i++;
if (i != 7)
{
textBox_grammar.Text
File.ReadAllText(directory_now
+
@"\"
+
@".txt", Encoding.GetEncoding(1251));
}
}
}
}
morphology_folders[i]
=
+
Отзывы:
Авторизуйтесь, чтобы оставить отзыв