Ранее по теме - синтаксическая конструкция для синонимов.

В википедии есть два малозаметных механизма, которые в русском языке могли бы быть связаны с падежами:
1) списки синонимов;
2) списки различения смысла (омонимы).

Список синонимов в википедии представлен в неявном виде. Если зайти на страницу через синоним, то на странице будет написно "перенаправлено с ..."

Омонимы — слова, одинаковые по звучанию и написанию, но разные по значению.
Примеры омонимов: коса — заплетенные волосы, коса — сельскохозяйственное орудие, которым косят траву.
Следует различать омонимы и многозначные слова: значения многозначных слов имеют нечто общее, а значения омонимов никак не связаны между собой. Омонимы — это разные слова, совпадающие по звучанию и написанию, но не имеющие ничего общего в семантическом плане.
Многозначные слова обладают несколькими значениями, которые базируются на первичном, основном, прямом значении лексемы.

Тут не очень ясно что такое "нечто общее", "семантический план", как формализуется "базирование на значении". Всегда ли многозначные слова формируются способом "переносных значений" (кстати, как этот способ формализуется)? Желательно было бы иметь более развёрнутое описание.

Если в язык добавлять синтаксическую конструкцию для синонимов, то надо добавлять сразу и для многозначных слов и для омонимов.

Ещё пониманию мешают опечатки, типовые и нетиповые. Надо ли составлять словари автоматического детектирования типовых опечаток (программирвоание -> программирование)? Нужно ли совмещать предсказания, основывающиеся на физической модели клавиатуры со словарём опечаток, или одного словаря достаточно? Человек ведь явно знает о клавиатуре и может на неё посмотреть, если видит непонятное слово. Кроме клавиатуры нужна модель мозга (дислексия, перепутывание порядка букв), модель языка (например Павиа очень странно расставляет пробелы). В произвольном тексте с форумов в интернете все эти (и другие? какие?) явления обязательно будут присутствовать. И для понимания смысла текста с ними надо уметь разбираться.

Кроме языков программирования, ещё могут быть системы накопления знаний (та же википедия), и в таких системах информация представляется не в виде текста как в языке программирования, а в виде "структурированного документа", например HTML (или XML?). И среда редактирования (текстовый процессор) должна уметь записывать и считывать языковые явления синонимии, омонимии и многозначности в нужных форматах.

Среда должна это уметь делать для того, чтобы связывать различные места различных текстов со словарными определениями (улучшить гиперссылки в википедии, прописав варианты значения многозначных слов, или прописав вариант омонимии), а так же автоматически применять синонимию. Все три механизма нужны для того, чтобы обрабатывать случаи вроде "учёт -> бухгалтерский учёт на предприятии". Здесь и слово "учёт" многозначное, и контекст надо указать, и синонимия должна быть использована, для того, чтобы выявить такую связь автоматически.

Было бы интересно поискать/почитать научные работы на темы "снятие омонимии" (word-sense disambiguation), "автоматическое разрешение синонимии" и подобные. Узнать, что настоящие учёные пишут по этой теме, и можно ли такую теорию использовать на практике простому инженеру-программисту.

Почему возникла эта тема? У меня, как и у БудДена, есть своя IDE (на английском языке программирования), кастомизированная из редактора общего назначения (только у БудДена на одном стеке, у меня на другом). И вот я задумался о том, чтобы как-нибудь прикрутить к этой IDE словарь из состава OpenCorpora. Ведь система Protégé очень тупая и не учитывает особенности русского языка, а моя IDE могла бы.

Но у меня пока не хватает фантазии сформулировать, для чего прикручивать OpenCorpora к IDE, какие должны появиться автоматизированные процессы редактирования, и сформулировать в чём будут заключаться улучшения для пользователей. Простые оправдания типа "ну, начнут накапливаться словари" не достаточны для мотивации на написание патчей.

Отредактировано Лис (2019-11-08 21:51:47)