open corpora

40

Click here to load reader

Upload: lidia-pivovarova

Post on 10-May-2015

880 views

Category:

Documents


0 download

DESCRIPTION

Как и зачем мы делаем «Открытый корпус»Виктор Бочаров, Дмитрий Грановский (инициатива Mathlingvo)

TRANSCRIPT

Page 1: Open Corpora

Как и зачем мы делаем Открытый корпус

Как и зачем мы делаем Открытый корпус

В. В. Бочаров Д. В. ГрановскийMathlingvo

14 мая 2011 г.

Page 2: Open Corpora

Как и зачем мы делаем Открытый корпус

Жизненный цикл текста

1 Исходный текстпод лицензией, совместимой с CC-BY-SAпроходит вычиткуделится на абзацы, предложения и токены

2 Морфологические интерпретациисловарь на базе словаря проекта АОТно морфологический стандарт — свойгенерируются все возможные гипотезы

3 Полуавтоматика (сейчас её нет)привязка к словарю на основе эвристикснятие простой неоднозначности

4 Ручное снятие неоднозначности пользователями5 Разметка доступна для просмотра и скачивания

Page 3: Open Corpora

Как и зачем мы делаем Открытый корпус

Жизненный цикл текста

1 Исходный текстпод лицензией, совместимой с CC-BY-SAпроходит вычиткуделится на абзацы, предложения и токены

2 Морфологические интерпретациисловарь на базе словаря проекта АОТно морфологический стандарт — свойгенерируются все возможные гипотезы

3 Полуавтоматика (сейчас её нет)привязка к словарю на основе эвристикснятие простой неоднозначности

4 Ручное снятие неоднозначности пользователями5 Разметка доступна для просмотра и скачивания

Page 4: Open Corpora

Как и зачем мы делаем Открытый корпус

Жизненный цикл текста

1 Исходный текстпод лицензией, совместимой с CC-BY-SAпроходит вычиткуделится на абзацы, предложения и токены

2 Морфологические интерпретациисловарь на базе словаря проекта АОТно морфологический стандарт — свойгенерируются все возможные гипотезы

3 Полуавтоматика (сейчас её нет)привязка к словарю на основе эвристикснятие простой неоднозначности

4 Ручное снятие неоднозначности пользователями5 Разметка доступна для просмотра и скачивания

Page 5: Open Corpora

Как и зачем мы делаем Открытый корпус

Жизненный цикл текста

1 Исходный текстпод лицензией, совместимой с CC-BY-SAпроходит вычиткуделится на абзацы, предложения и токены

2 Морфологические интерпретациисловарь на базе словаря проекта АОТно морфологический стандарт — свойгенерируются все возможные гипотезы

3 Полуавтоматика (сейчас её нет)привязка к словарю на основе эвристикснятие простой неоднозначности

4 Ручное снятие неоднозначности пользователями

5 Разметка доступна для просмотра и скачивания

Page 6: Open Corpora

Как и зачем мы делаем Открытый корпус

Жизненный цикл текста

1 Исходный текстпод лицензией, совместимой с CC-BY-SAпроходит вычиткуделится на абзацы, предложения и токены

2 Морфологические интерпретациисловарь на базе словаря проекта АОТно морфологический стандарт — свойгенерируются все возможные гипотезы

3 Полуавтоматика (сейчас её нет)привязка к словарю на основе эвристикснятие простой неоднозначности

4 Ручное снятие неоднозначности пользователями5 Разметка доступна для просмотра и скачивания

Page 7: Open Corpora

Как и зачем мы делаем Открытый корпус

Уровни текста

Концептуальные уровни:1 Графематика2 Морфология3 Синтаксис (в отдаленных планах)4 Семантика (в совсем отдаленных планах)5 Something else?

4 иерархических уровня деления (это графематика):1 Текст2 Абзац3 Предложение4 Токен*

* некоторая последовательность символов без пробелов

Page 8: Open Corpora

Как и зачем мы делаем Открытый корпус

Уровни текста

Концептуальные уровни:1 Графематика2 Морфология3 Синтаксис (в отдаленных планах)4 Семантика (в совсем отдаленных планах)5 Something else?

4 иерархических уровня деления (это графематика):1 Текст2 Абзац3 Предложение4 Токен*

* некоторая последовательность символов без пробелов

Page 9: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация

Как разделить текст на эти единицы?на абзацы – взять из источника

на предложения – пока вручнуюна токены – полуавтоматически

Page 10: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация

Как разделить текст на эти единицы?на абзацы – взять из источникана предложения – пока вручную

на токены – полуавтоматически

Page 11: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация

Как разделить текст на эти единицы?на абзацы – взять из источникана предложения – пока вручнуюна токены – полуавтоматически

Page 12: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация

Токенизация должна быть:единообразнойудобной для морфологии

Проблемы ручной токенизации:очень трудоемкотрудно обеспечить единообразиене все отличия видны глазами

Page 13: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация-2

Используем простое машинное обучение:корпус предложений, уже разделенных на токены (внутритекста расставлены границы)

набор бинарных характеристических функций (15 шт.)F1 = «является ли данный символ пробелом»...F7 = «является ли данный символ буквой кириллицы»...F15 = «является ли цепочка символов от ближайшегопробела слева до ближайшего пробела справа словарнымсловом»вычисляем все эти функции для каждой позиции впредложении

Page 14: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация-2

Используем простое машинное обучение:корпус предложений, уже разделенных на токены (внутритекста расставлены границы)набор бинарных характеристических функций (15 шт.)F1 = «является ли данный символ пробелом»...F7 = «является ли данный символ буквой кириллицы»...F15 = «является ли цепочка символов от ближайшегопробела слева до ближайшего пробела справа словарнымсловом»

вычисляем все эти функции для каждой позиции впредложении

Page 15: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация-2

Используем простое машинное обучение:корпус предложений, уже разделенных на токены (внутритекста расставлены границы)набор бинарных характеристических функций (15 шт.)F1 = «является ли данный символ пробелом»...F7 = «является ли данный символ буквой кириллицы»...F15 = «является ли цепочка символов от ближайшегопробела слева до ближайшего пробела справа словарнымсловом»вычисляем все эти функции для каждой позиции впредложении

Page 16: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация-3

Используем простое машинное обучение:для каждой позиции получается двоичный векторПозиция 1: 001000010000000Позиция 2: 100000100000010...

для каждой позиции знаем, проходит ли в ней границатокеновдля каждого двоичного вектора на корпусе вычисляетсявероятность того, что в позиции с таким вектором естьграница токеновв реальном тексте в каждой позиции тоже вычисляемвектор и смотрим вероятность

Page 17: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация-3

Используем простое машинное обучение:для каждой позиции получается двоичный векторПозиция 1: 001000010000000Позиция 2: 100000100000010...для каждой позиции знаем, проходит ли в ней границатокенов

для каждого двоичного вектора на корпусе вычисляетсявероятность того, что в позиции с таким вектором естьграница токеновв реальном тексте в каждой позиции тоже вычисляемвектор и смотрим вероятность

Page 18: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация-3

Используем простое машинное обучение:для каждой позиции получается двоичный векторПозиция 1: 001000010000000Позиция 2: 100000100000010...для каждой позиции знаем, проходит ли в ней границатокеновдля каждого двоичного вектора на корпусе вычисляетсявероятность того, что в позиции с таким вектором естьграница токенов

в реальном тексте в каждой позиции тоже вычисляемвектор и смотрим вероятность

Page 19: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация-3

Используем простое машинное обучение:для каждой позиции получается двоичный векторПозиция 1: 001000010000000Позиция 2: 100000100000010...для каждой позиции знаем, проходит ли в ней границатокеновдля каждого двоичного вектора на корпусе вычисляетсявероятность того, что в позиции с таким вектором естьграница токеновв реальном тексте в каждой позиции тоже вычисляемвектор и смотрим вероятность

Page 20: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация-4

Так выглядит обучение:

Page 21: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация-5

Получаемое деление – вероятностное, поэтому его нужнопроверять глазами:

Page 22: Open Corpora

Как и зачем мы делаем Открытый корпус

Токенизация-5

Получаемое деление – вероятностное, поэтому его нужнопроверять глазами:

Page 23: Open Corpora

Как и зачем мы делаем Открытый корпус

Вопросы про токенизацию?

Page 24: Open Corpora

Как и зачем мы делаем Открытый корпус

Морфология

Суть морфологического уровня:связать токен с морфологическим словаремили обозначить, что токен не является словом

Зачем нужен морфологический словарь?можно изменить конкретный разбор конкретнойсловоформы во всем корпусе сразулегче находить опечаткив будущем можно будет добавлять лексико-семантическуюинформацию, почти не меняя разметку

Page 25: Open Corpora

Как и зачем мы делаем Открытый корпус

Морфология

Суть морфологического уровня:связать токен с морфологическим словаремили обозначить, что токен не является словом

Зачем нужен морфологический словарь?можно изменить конкретный разбор конкретнойсловоформы во всем корпусе сразулегче находить опечаткив будущем можно будет добавлять лексико-семантическуюинформацию, почти не меняя разметку

Page 26: Open Corpora

Как и зачем мы делаем Открытый корпус

Морфология-2

за основу взят словарь группы АОТ

описание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формылеммы связаны между собой связямисловарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»

Page 27: Open Corpora

Как и зачем мы делаем Открытый корпус

Морфология-2

за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммы

описание формы = текст + набор граммем формылеммы связаны между собой связямисловарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»

Page 28: Open Corpora

Как и зачем мы делаем Открытый корпус

Морфология-2

за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формы

леммы связаны между собой связямисловарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»

Page 29: Open Corpora

Как и зачем мы делаем Открытый корпус

Морфология-2

за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формылеммы связаны между собой связями

словарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»

Page 30: Open Corpora

Как и зачем мы делаем Открытый корпус

Морфология-2

за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формылеммы связаны между собой связямисловарь можно редактировать

сочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»

Page 31: Open Corpora

Как и зачем мы делаем Открытый корпус

Морфология-2

за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формылеммы связаны между собой связямисловарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правил

каждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»

Page 32: Open Corpora

Как и зачем мы делаем Открытый корпус

Морфология-2

за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формылеммы связаны между собой связямисловарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»

Page 33: Open Corpora

Как и зачем мы делаем Открытый корпус

Морфология-3

Модель нужна, чтобы отслеживать ошибки, присутствующие всловаре изначально или вносимые редакторами.Примеры правил:

NOUN -> NMbr (лемма -> форма, обязательно)VERB -> ASpc (лемма -> лемма, обязательно)indc -> TEns (форма -> форма, обязательно)VERB -> Impe (лемма -> лемма, возможно)Impe -> PErs (лемма -> форма, запрещено)

Всего сейчас 107 граммем и 127 правил + 218 автоматическивыведенных.

Page 34: Open Corpora

Как и зачем мы делаем Открытый корпус

Морфология-4

Итого в словаре бывает 5 типов ошибок:1 неизвестная граммема2 несовместимые граммемы3 явно не разрешенная правилами граммема4 отсутствует обязательная граммема5 две формы в рамках парадигмы имеют полностью

совпадающие наборы граммем

Page 35: Open Corpora

Как и зачем мы делаем Открытый корпус

Вопросы про морфологию?

Page 36: Open Corpora

Как и зачем мы делаем Открытый корпус

Разрешение неоднозначности

2 этапа: (полу)автоматический (сейчас нет), ручной.

Ручное разрешение морфологической неоднозначности –основная задача, для которой мы хотим привлекатьпользователей-разметчиков.От разметчика требуется:

исключить неверные разборы, в идеальном случае –выбрать одинили отметить, что верный разбор отсутствует

Page 37: Open Corpora

Как и зачем мы делаем Открытый корпус

Разрешение неоднозначности

2 этапа: (полу)автоматический (сейчас нет), ручной.Ручное разрешение морфологической неоднозначности –основная задача, для которой мы хотим привлекатьпользователей-разметчиков.

От разметчика требуется:исключить неверные разборы, в идеальном случае –выбрать одинили отметить, что верный разбор отсутствует

Page 38: Open Corpora

Как и зачем мы делаем Открытый корпус

Разрешение неоднозначности

2 этапа: (полу)автоматический (сейчас нет), ручной.Ручное разрешение морфологической неоднозначности –основная задача, для которой мы хотим привлекатьпользователей-разметчиков.От разметчика требуется:

исключить неверные разборы, в идеальном случае –выбрать одинили отметить, что верный разбор отсутствует

Page 39: Open Corpora

Как и зачем мы делаем Открытый корпус

Интерфейс разрешения неоднозначности

(Here be live demonstration)

Page 40: Open Corpora

Как и зачем мы делаем Открытый корпус

Contacts

Берем студентов на практику!

http://opencorpora.org

[email protected]@opencorpora.org