Обработка текста с использованием идей концептуальных зависимостей Р. Шенка
- Токенайзер - пока самый простой, разбиваем входное предложение по пробельным символам
- Словарь слов OpenCorpora Dict
- Таггер: HMM, тренированная на файлах CoNLLU, корпуса отсюда -- C++
- Построение дерева зависимостей
- статистика из CoNLLU файлов (3D matrix dependency head -> to -> dependency relation)
- построение ориентированного графа из всех возможных зависимостей с весами из статистики
- нахождение минимального остовного дерева из искуственного корня, (алгоритм двух китайцев, Chu Liu Edmonds -- C++
- Дерево зависимостей (или построенное на его основе другое синтаксическое дерево) как запрос к базе данных концептуальных зависимостей -- Haskell
- Добавить в словарь основную форму слова, которая будет нужна для построения правил. Возможно это есть в xml варианте словаря OpenCorpora Dict и на WikiData
- Добавить загрузку корпусов с OpenCorpora Dict.
- Идея одновременного проставления тегов частей речи и построения дерев зависимостей:
- каждому слову сопоставляется список всех возможных тегов
- есть набор правил вида (направление поска, что является родителем, что является потомком, вес правила), которые, начиная с дерева с одним элементом "root", строят (несколько) деревьев зависимостей с одновременным тегорованием
- сами правила, в теории, можно написать вручную, но можно использовать эволюционный алгоритм для их нахождения