open corpora
DESCRIPTION
Как и зачем мы делаем «Открытый корпус»Виктор Бочаров, Дмитрий Грановский (инициатива Mathlingvo)TRANSCRIPT
Как и зачем мы делаем Открытый корпус
Как и зачем мы делаем Открытый корпус
В. В. Бочаров Д. В. ГрановскийMathlingvo
14 мая 2011 г.
Как и зачем мы делаем Открытый корпус
Жизненный цикл текста
1 Исходный текстпод лицензией, совместимой с CC-BY-SAпроходит вычиткуделится на абзацы, предложения и токены
2 Морфологические интерпретациисловарь на базе словаря проекта АОТно морфологический стандарт — свойгенерируются все возможные гипотезы
3 Полуавтоматика (сейчас её нет)привязка к словарю на основе эвристикснятие простой неоднозначности
4 Ручное снятие неоднозначности пользователями5 Разметка доступна для просмотра и скачивания
Как и зачем мы делаем Открытый корпус
Жизненный цикл текста
1 Исходный текстпод лицензией, совместимой с CC-BY-SAпроходит вычиткуделится на абзацы, предложения и токены
2 Морфологические интерпретациисловарь на базе словаря проекта АОТно морфологический стандарт — свойгенерируются все возможные гипотезы
3 Полуавтоматика (сейчас её нет)привязка к словарю на основе эвристикснятие простой неоднозначности
4 Ручное снятие неоднозначности пользователями5 Разметка доступна для просмотра и скачивания
Как и зачем мы делаем Открытый корпус
Жизненный цикл текста
1 Исходный текстпод лицензией, совместимой с CC-BY-SAпроходит вычиткуделится на абзацы, предложения и токены
2 Морфологические интерпретациисловарь на базе словаря проекта АОТно морфологический стандарт — свойгенерируются все возможные гипотезы
3 Полуавтоматика (сейчас её нет)привязка к словарю на основе эвристикснятие простой неоднозначности
4 Ручное снятие неоднозначности пользователями5 Разметка доступна для просмотра и скачивания
Как и зачем мы делаем Открытый корпус
Жизненный цикл текста
1 Исходный текстпод лицензией, совместимой с CC-BY-SAпроходит вычиткуделится на абзацы, предложения и токены
2 Морфологические интерпретациисловарь на базе словаря проекта АОТно морфологический стандарт — свойгенерируются все возможные гипотезы
3 Полуавтоматика (сейчас её нет)привязка к словарю на основе эвристикснятие простой неоднозначности
4 Ручное снятие неоднозначности пользователями
5 Разметка доступна для просмотра и скачивания
Как и зачем мы делаем Открытый корпус
Жизненный цикл текста
1 Исходный текстпод лицензией, совместимой с CC-BY-SAпроходит вычиткуделится на абзацы, предложения и токены
2 Морфологические интерпретациисловарь на базе словаря проекта АОТно морфологический стандарт — свойгенерируются все возможные гипотезы
3 Полуавтоматика (сейчас её нет)привязка к словарю на основе эвристикснятие простой неоднозначности
4 Ручное снятие неоднозначности пользователями5 Разметка доступна для просмотра и скачивания
Как и зачем мы делаем Открытый корпус
Уровни текста
Концептуальные уровни:1 Графематика2 Морфология3 Синтаксис (в отдаленных планах)4 Семантика (в совсем отдаленных планах)5 Something else?
4 иерархических уровня деления (это графематика):1 Текст2 Абзац3 Предложение4 Токен*
* некоторая последовательность символов без пробелов
Как и зачем мы делаем Открытый корпус
Уровни текста
Концептуальные уровни:1 Графематика2 Морфология3 Синтаксис (в отдаленных планах)4 Семантика (в совсем отдаленных планах)5 Something else?
4 иерархических уровня деления (это графематика):1 Текст2 Абзац3 Предложение4 Токен*
* некоторая последовательность символов без пробелов
Как и зачем мы делаем Открытый корпус
Токенизация
Как разделить текст на эти единицы?на абзацы – взять из источника
на предложения – пока вручнуюна токены – полуавтоматически
Как и зачем мы делаем Открытый корпус
Токенизация
Как разделить текст на эти единицы?на абзацы – взять из источникана предложения – пока вручную
на токены – полуавтоматически
Как и зачем мы делаем Открытый корпус
Токенизация
Как разделить текст на эти единицы?на абзацы – взять из источникана предложения – пока вручнуюна токены – полуавтоматически
Как и зачем мы делаем Открытый корпус
Токенизация
Токенизация должна быть:единообразнойудобной для морфологии
Проблемы ручной токенизации:очень трудоемкотрудно обеспечить единообразиене все отличия видны глазами
Как и зачем мы делаем Открытый корпус
Токенизация-2
Используем простое машинное обучение:корпус предложений, уже разделенных на токены (внутритекста расставлены границы)
набор бинарных характеристических функций (15 шт.)F1 = «является ли данный символ пробелом»...F7 = «является ли данный символ буквой кириллицы»...F15 = «является ли цепочка символов от ближайшегопробела слева до ближайшего пробела справа словарнымсловом»вычисляем все эти функции для каждой позиции впредложении
Как и зачем мы делаем Открытый корпус
Токенизация-2
Используем простое машинное обучение:корпус предложений, уже разделенных на токены (внутритекста расставлены границы)набор бинарных характеристических функций (15 шт.)F1 = «является ли данный символ пробелом»...F7 = «является ли данный символ буквой кириллицы»...F15 = «является ли цепочка символов от ближайшегопробела слева до ближайшего пробела справа словарнымсловом»
вычисляем все эти функции для каждой позиции впредложении
Как и зачем мы делаем Открытый корпус
Токенизация-2
Используем простое машинное обучение:корпус предложений, уже разделенных на токены (внутритекста расставлены границы)набор бинарных характеристических функций (15 шт.)F1 = «является ли данный символ пробелом»...F7 = «является ли данный символ буквой кириллицы»...F15 = «является ли цепочка символов от ближайшегопробела слева до ближайшего пробела справа словарнымсловом»вычисляем все эти функции для каждой позиции впредложении
Как и зачем мы делаем Открытый корпус
Токенизация-3
Используем простое машинное обучение:для каждой позиции получается двоичный векторПозиция 1: 001000010000000Позиция 2: 100000100000010...
для каждой позиции знаем, проходит ли в ней границатокеновдля каждого двоичного вектора на корпусе вычисляетсявероятность того, что в позиции с таким вектором естьграница токеновв реальном тексте в каждой позиции тоже вычисляемвектор и смотрим вероятность
Как и зачем мы делаем Открытый корпус
Токенизация-3
Используем простое машинное обучение:для каждой позиции получается двоичный векторПозиция 1: 001000010000000Позиция 2: 100000100000010...для каждой позиции знаем, проходит ли в ней границатокенов
для каждого двоичного вектора на корпусе вычисляетсявероятность того, что в позиции с таким вектором естьграница токеновв реальном тексте в каждой позиции тоже вычисляемвектор и смотрим вероятность
Как и зачем мы делаем Открытый корпус
Токенизация-3
Используем простое машинное обучение:для каждой позиции получается двоичный векторПозиция 1: 001000010000000Позиция 2: 100000100000010...для каждой позиции знаем, проходит ли в ней границатокеновдля каждого двоичного вектора на корпусе вычисляетсявероятность того, что в позиции с таким вектором естьграница токенов
в реальном тексте в каждой позиции тоже вычисляемвектор и смотрим вероятность
Как и зачем мы делаем Открытый корпус
Токенизация-3
Используем простое машинное обучение:для каждой позиции получается двоичный векторПозиция 1: 001000010000000Позиция 2: 100000100000010...для каждой позиции знаем, проходит ли в ней границатокеновдля каждого двоичного вектора на корпусе вычисляетсявероятность того, что в позиции с таким вектором естьграница токеновв реальном тексте в каждой позиции тоже вычисляемвектор и смотрим вероятность
Как и зачем мы делаем Открытый корпус
Токенизация-4
Так выглядит обучение:
Как и зачем мы делаем Открытый корпус
Токенизация-5
Получаемое деление – вероятностное, поэтому его нужнопроверять глазами:
Как и зачем мы делаем Открытый корпус
Токенизация-5
Получаемое деление – вероятностное, поэтому его нужнопроверять глазами:
Как и зачем мы делаем Открытый корпус
Вопросы про токенизацию?
Как и зачем мы делаем Открытый корпус
Морфология
Суть морфологического уровня:связать токен с морфологическим словаремили обозначить, что токен не является словом
Зачем нужен морфологический словарь?можно изменить конкретный разбор конкретнойсловоформы во всем корпусе сразулегче находить опечаткив будущем можно будет добавлять лексико-семантическуюинформацию, почти не меняя разметку
Как и зачем мы делаем Открытый корпус
Морфология
Суть морфологического уровня:связать токен с морфологическим словаремили обозначить, что токен не является словом
Зачем нужен морфологический словарь?можно изменить конкретный разбор конкретнойсловоформы во всем корпусе сразулегче находить опечаткив будущем можно будет добавлять лексико-семантическуюинформацию, почти не меняя разметку
Как и зачем мы делаем Открытый корпус
Морфология-2
за основу взят словарь группы АОТ
описание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формылеммы связаны между собой связямисловарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»
Как и зачем мы делаем Открытый корпус
Морфология-2
за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммы
описание формы = текст + набор граммем формылеммы связаны между собой связямисловарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»
Как и зачем мы делаем Открытый корпус
Морфология-2
за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формы
леммы связаны между собой связямисловарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»
Как и зачем мы делаем Открытый корпус
Морфология-2
за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формылеммы связаны между собой связями
словарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»
Как и зачем мы делаем Открытый корпус
Морфология-2
за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формылеммы связаны между собой связямисловарь можно редактировать
сочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»
Как и зачем мы делаем Открытый корпус
Морфология-2
за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формылеммы связаны между собой связямисловарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правил
каждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»
Как и зачем мы делаем Открытый корпус
Морфология-2
за основу взят словарь группы АОТописание слова = лемма + набор форм (парадигма) +набор граммем леммыописание формы = текст + набор граммем формылеммы связаны между собой связямисловарь можно редактироватьсочетаемость граммем регулируется моделью морфологии,которая выражена в виде набора правилкаждое правило имеет вид:«Если у [леммы/формы] есть граммема А, то у[леммы/формы] [должна быть/не должно быть/можетбыть] граммема Б»
Как и зачем мы делаем Открытый корпус
Морфология-3
Модель нужна, чтобы отслеживать ошибки, присутствующие всловаре изначально или вносимые редакторами.Примеры правил:
NOUN -> NMbr (лемма -> форма, обязательно)VERB -> ASpc (лемма -> лемма, обязательно)indc -> TEns (форма -> форма, обязательно)VERB -> Impe (лемма -> лемма, возможно)Impe -> PErs (лемма -> форма, запрещено)
Всего сейчас 107 граммем и 127 правил + 218 автоматическивыведенных.
Как и зачем мы делаем Открытый корпус
Морфология-4
Итого в словаре бывает 5 типов ошибок:1 неизвестная граммема2 несовместимые граммемы3 явно не разрешенная правилами граммема4 отсутствует обязательная граммема5 две формы в рамках парадигмы имеют полностью
совпадающие наборы граммем
Как и зачем мы делаем Открытый корпус
Вопросы про морфологию?
Как и зачем мы делаем Открытый корпус
Разрешение неоднозначности
2 этапа: (полу)автоматический (сейчас нет), ручной.
Ручное разрешение морфологической неоднозначности –основная задача, для которой мы хотим привлекатьпользователей-разметчиков.От разметчика требуется:
исключить неверные разборы, в идеальном случае –выбрать одинили отметить, что верный разбор отсутствует
Как и зачем мы делаем Открытый корпус
Разрешение неоднозначности
2 этапа: (полу)автоматический (сейчас нет), ручной.Ручное разрешение морфологической неоднозначности –основная задача, для которой мы хотим привлекатьпользователей-разметчиков.
От разметчика требуется:исключить неверные разборы, в идеальном случае –выбрать одинили отметить, что верный разбор отсутствует
Как и зачем мы делаем Открытый корпус
Разрешение неоднозначности
2 этапа: (полу)автоматический (сейчас нет), ручной.Ручное разрешение морфологической неоднозначности –основная задача, для которой мы хотим привлекатьпользователей-разметчиков.От разметчика требуется:
исключить неверные разборы, в идеальном случае –выбрать одинили отметить, что верный разбор отсутствует
Как и зачем мы делаем Открытый корпус
Интерфейс разрешения неоднозначности
(Here be live demonstration)
Как и зачем мы делаем Открытый корпус
Contacts
Берем студентов на практику!
http://opencorpora.org
[email protected]@opencorpora.org