Я пишу небольшую и упрощенную программу перевода, используя .NET 4.7.1, которая должна переводить письменное предложение в созданный мной конланг. Это довольно примитивно, без какой-либо грамматики или чего-то еще, в основном это просто список придуманных слов, поэтому процесс «перевода» по сути просто заменяет английские слова их эквивалентами на конланге.
Способ Переводчик работает прямо сейчас, заключается в том, что слова-конланги упорядочены в список, который содержит структуры слова и массив значений для него, и для каждого слова входного предложения я проверяю, имеет ли какое-либо из слов-конланга одно и то же слово в своих значениях. массив и замените входное слово первым возвращенным совпадением.
Теперь я хочу расширить его функциональность, чтобы он мог распознавать различные формы слова («бой», «бои», «сражался», «сражался» и т. д. В результате получается совпадение со словом-конлангом, имеющим значение «драка»), и в идеале я хотел бы также найти способ поиска синонимов («драка», «битва»). ,и т.д. также возвращает совпадение со словом "fight").
Для различных форм слов я подумал использовать поиск по шаблону, через RegEx или что-то в этом роде, но это может привести к неправильным совпадениям - " "правильно" и "вправильно", например.
Я нашел два похожих вопроса с решениями, но для одного требуется установка Microsoft Word, а решение другая — это библиотека, для работы которой требуется дорогая лицензия (1200 долларов!), которую я совершенно не могу себе позволить, особенно для крошечного хобби-эксперимента.
Обе, вероятно, слишком перепроектированы для моего в любом случае, имея различные другие функции, такие как проверка орфографии, которые мне не понадобятся.
Я хотел бы, чтобы моя программа была автономной и не зависела от какого-либо другого программного обеспечения, установленного на компьютер.
Подробнее здесь: https://stackoverflow.com/questions/781 ... ia-c-sharp