09_Морфологическая+разметка

=Морфологическая разметка и дизамбигуация текстов=

Практикум по снятию лексико-грамматической омонимии
чеклист к д/з [|программа Disambiguator] файл(ы) для д/з - см. в дропбоксе


 * Уровни разметки (аннотации) текста:**
 * токенизация (выделение словоформ, знаков препинания и других графических элементов)
 * морфологическая разметка(part-of-speech/PO annotation)
 * определение части речи (part-of-speech/PO annotation)
 * лемматизация (определение леммы)
 * грамматический разбор словоформ
 * разметка лексико-семантических классов (разрядов), названий организаций, персон и т.п.
 * словообразовательная разметка
 * синтаксическая разметка
 * + более глубокие уровни аннотации (например, анафора - к какому элементу отсылают местоимения //он, его// и т.п.)

Для разных языков объем аннотации может различаться, для русского важна морфологическая разметка, для английского - синтаксис.

Стандарты разметки: примеры
> C7 tagset (Corpus of Spoken English) -- набор тегов

> Стандарт НКРЯ

**По** **с`аду**  **м`ожно** **гул`ять** **час`ами**

> Стандарт Тюбингенского корпуса русского языка


 * шофер**/substantiv_masc_sg_nom_bel **бегал**/verb_finit_prt_0_sg_masc_nref_ipf
 * куда-то**/adverb
 * ремонтировать**/verb_infinitiv_nref_ipf **тягу**/substantiv_fem_sg_akk_unb
 * ,**/satzzeichen_komma
 * а**/konj_koor
 * чекист**/substantiv_masc_sg_nom_bel

> Позиционный стандарт MULTEXT для русского языка

языкознанию/языкознание_**Ncnsdn** (Noun Type=common Gender=neuter Number=singular Case=dative Animate=no) щадящему/щадить_**Vm-p-snafpd** (Verb Type=main Tense=present Number=singular Gender=neuter Voice=active Definiteness=full-art Aspect=progressive Case=dative)

В HTML и XML используются специальные обозначения для нестандартных знаков, например, ́ для обозначения комбинированного знака ударения "акут" (как в á ).
 * Формат XML** (XHTML), в котором хранятся оффлайн-версии многих корпусов мира (см. стандарт НКРЯ) - новое поколение HTML-подобной разметки, где названия и атрибуты тегов задаются пользователями. (В HTML этот список строго ограничен стандартом и касается, прежде всего, форматирования текста).

Практикум по снятию лексико-грамматической омонимии
1. Разархивируйте скачанный архив [|Disamb.zip] программы Disambiguator. Запустите программу //Disambiguator.exe//. NB Если в проводнике отображаются расширения файлов, программа будет называться Disambiguator (тип: приложение).

2. Для работы в классе: разархивируйте архив, нам будет нужен //grant_lundberg.gr.xhtml//. Для выполнения домашнего задания: файлы c расширением .xhtml должны находиться в вашей папке в дропбоксе (под списком Unit 1-9).

3. Откройте файл: меню Файл -- Открыть. Вы увидите примерно такую картинку: Кликнув по любому слову, вы можете увидеть в окошке все его разборы.

4. Сделайте резервную копию файла. Сохраните файл с расширением .xhtml (= Extensible html). меню Файл -- Сохранить как... Просмотрите, как выглядит файл в текстовом редакторе.

5. На сайте ruscorpora.ru, вкладка [|Морфология], приведены списки всех помет, которые используются в грамматических разборах (морфологический стандарт НКРЯ).

Снятие омонимии
6. Красными стрелками вы можете перемещаться к следующему (предыдущему) неоднозначному разбору.

7. Двойной клик на правильном разборе убирает все остальные. Зеленый "минус" внизу - убирает выделенный разбор. "i" справа - позволяет отредактировать выделенный разбор. Зеленый "плюс" - добавляет строчку для нового разбора (если приведенные машиной не годятся). Как выбирать разборы - ниже

8. Выбрав разбор, перейдите красной стрелкой к следующему и так далее до конца файла. Закончив работу, нажмите кнопку "Принять изменения" и сохраните текущий файл.

9. Если вы ошибочно выбрали неправильный разбор: кликните на словоформе и нажмите кнопку "редактировать" (справа от плюса).

10. Прокликайте еще раз все разборы в тексте, в том числе не имеющие омонимов, обнаружив ошибки, отредактируйте разборы. Помните, что среди однозначных разборов могут попадаться неправильные, сгенерированные машиной для несловарных слов. Сохраните текущий файл (.xhtml).

Как выбирать разборы 11. Разбор имеет формат вида lex="..." gr=".....", где в поле lex указана лемма (начальная форма), а в поле gr - часть речи (на первом месте) и другие грамматические характеристики (в произвольном порядке). Обозначения в поле gr можно посмотреть в справке [|Морфология] НКРЯ или задав грам. признак в окне поиска (латинское обозначение появится в поле "Грамматика").

12. Что придется добавить (машина сама не делает): Пометьте новый разбор знаком ! после леммы (lex="отойти!"), в поле gr запишите часть речи и все требуемые грамматические признаки (по образцу других слов). Что придется поправить:
 * разборы для инициалов (например, lex="С" gr="INIT,abbr"
 * разборы для несловарных слов (если машина не построила правильную гипотезу)
 * разборы для имен собственных - лемму записать с Прописной буквы (например, lex="Москва")

13. Предикатив или наречие? Предикатив (=категория состояния) встречается в конструкции с инфинитивом и именами в дат. падеже (//мне холодно здесь сидеть//), а также в изолированном употреблении, когда человек дает оценку ситуации или предмету (//Прекрасно!//). Наречие "определяет" глагол, прилагательное или другое наречие (//холодно посмотрел//).

14. Союз или местоимение(=союзное слово)? Местоимение занимает позицию определенного члена предложения (подлежащего, дополнения и т.д.) и часто несет ударение (//Вы слышали, что он сказал?//). Союз связывает предложения (//Он услышал, что мама вызвала такси//).

15. Золотое правило - если не знаете, что выбрать, оставьте все разборы на месте и переходите к следующему омониму.

16. **Дефисы**. Слово с дефисом считается одним словом, если оно целиком значит не то же самое, что его часть (//штабс-капитан != капитан, Москва-река != Москва, бело-голубой != голубой//). Неопределенные местоимения (на //-то, -либо, -нибудь, кое-//) составляют одно слово. Двумя словами считаются: слово с приложением-характеристикой (//Мишка-тракторист//), а также частицы //-то, -ка, -с// (//я-то, иди-ка, конечно-с//) Иногда компьютер правильно разбирает слово с дефисом, но разбор приписан только к первой части (ср. лемма //какой-то//). В этом случае разборы второй части (//-то//) нужно оставить как есть, они будут удалены автоматически. Если разбор программы (лемма с дефисом/ лемма как два, три и т.д. отдельных слова) не совпадает с тем, который вам кажется правильным, припишите правильный разбор последнему слову в цепочке, а затем отредактируйте его, добавив звездочку, например: lex="сити" gr="S,0,geo,inan,loc,n,norm=*"

[|Более полная инструкция] (читать по желанию).

17. Если вы неправильно выбрали разбор... К сожалению, в программе Disambiguator нет кнопки Undo. Вернитесь к этому разбору, кликнув на словоформе, нажмите кнопку "редактировать" и исправьте как надо.

18. **Что делать с искаженными формами?** Если вы правильно обработали искаженные формы на предыдущем этапе, заключив их в тег distinct и приписав "нормальную" форму следующим образом: нет то автоматический разметчик предлагает только теги для нормальной формы "нет". Однако, если вы забыли обработать искажение, то будут предложены самые причудливые разборы для искаженной формы. Исправление происходит в два этапа: 1) выберите и отредактируйте разбор так, чтобы у него была "нормальная" лемма, после разбора поставьте звездочку следующим образом: lex="нет" gr="PART=*"

2) в конце работы в NotePad++ (см. п. 20) вам нужно будет найти это место по звездочке и исправить следующим образом: БЫЛО <ana lex="нет" gr="PART=*">нееееет</w> СТАЛО <distinct form="нееееет"> <ana lex="нет" gr="PART">нет</w> (звездочку в исправленном варианте нужно убрать).

19. В конце работы с программой Disambiguator, когда у вас уже не осталось "красных" (многозначных) слов, прокликайте каждое слово и проверьте, что все разборы (особенно часть речи, падеж, род, одушевленность) правильные. Может так случиться, что словоформе может быть преписан единственный, но неверный тег -- отредактируйте его. По статистике, неопытные разметчики делают от 5% до 15% ошибок в разборах, будьте внимательны.

20. **Финишная правка в NotePad++ (исправление звездочек)**. Если вы в процессе дизамбигуации ставили =* у неправильных разборов (неправильное членение слов с дефисом, искаженные формы, которые вы ранее забыли разметить), то их нужно исправить в текстовом редакторе. Пример исправления: БЫЛО <ana lex="солт" gr="S,anim,m,nom,norm,persn,sg"> Солт</w>-<ana lex="лейк" gr="S,0,anim,bastard,f,famn"> <ana lex="лейк" gr="S,anim,bastard,m,nom,persn,sg"> <ana lex="лейк" gr="S,anim,bastard,famn,m,nom,sg"> Лейк</w>- <ana lex="сити" gr="S,0,geo,inan,loc,n,norm**=***"> Сити</w> СТАЛО <ana lex="**Солт-Лейк-Сити**" gr="S,0,geo,inan,loc,n,norm"> **Солт-Лейк-Сити**</w> (У вас должен остаться один тег ...</w>, один тег <ana...> ; и лемма, и словоформа должны содержать все части дефисного написания).



Чеклист к д/з:
Проверьте, что в папке LiveCorpus теперь лежат В идеале ваши файлы видео/аудио и транскриптов должны иметь одинаковое имя, но разные расширения. Вам будет выставлена общая оценка по результатам обработки ваших файлов и морфологической дизамбигуации.
 * В программе [[file:Disambiguator-0.96.zip|Disambiguator]] снять морфологическую омонимию в файле для корпуса живой речи (файл(ы) с автоматической разметкой лежат в дропбоксе под юнитами).
 * если вы не знаете, какой разбор выбрать, оставьте, как есть
 * все сложные случаи (если есть - например, слова с дефисами, обрывы и т.п.) выписать в файл gramcomment.txt
 * сохранить файл(ы) cо снятой вами омонимией под именем исходноеимя_disamb.xhtml
 * положить сделанные файлы и gramcomment.txt в Dropbox (в папку **LiveCorpus**)
 * файл транскрипта, первый вариант - старое
 * файл транскрипта, второй вариант (форматы .txt, .xml (если есть), Speakers.txt) - старое
 * файл файлы транскрипта с морфологической разметкой (в формате .xhtml) - новое,
 * файл с комментарием gramcomment.txt, если есть - новое.


 * Примечание: Как разметить свой файл (выполнять не нужно)**

Выберите текстовый файл для работы - например, из ваших текстов/транскриптов для корпуса (кодировка файла - UTF-8, формат конца строки - UNIX).

Подсказка: в NotePad++ Кодировки - Преобразовать в UTF без BOM; Правка - Формат Конца Строк.

Вы можете размечать xml-версию транскрипта/блогов, но для этого нужно дополнительно удалить начало и конец файла: строки

<?xml version="1.0" encoding="windows-1251"?>

и

и все теги.

2. Скачайте Python 2.7.x (но не третью версию!) и установите его.

3. (Если вы ранее еще не делали этого, скачайте архив Disamb.zip и разархивируйте его.) Проверьте (в текстовом редакторе), что файл Disambiguator.ini правильно ссылается на папку, куда вы установили Python (например, так: C:\Python27\python.exe).

3. Автоматическая разметка файла выполняется программой Mystem (меню Файл -- Разметить -- выбрать файл из п. 1). Файлы перед разметкой должны быть конвертированы в формат UTF-8 без BOM, формат конца строк - UNIX(!). NB Если файл не размечается, попробуйте //разметить// в Disambiguator файл grant_lundberg.txt из папки grant_lundberg или //открыть// файл grant_lundberg.gr.xhtml.