Когда в вашем целевом языке используются одни и те же окончания для существительных в единственном и множественном числе, ответом может быть кодовая последовательность.

Как грамматическую категорию число может быть сложно зафиксировать в вашем коде. Возьмите английский язык и его довольно простой способ маркировки множественного числа, добавляя окончание -s (в большинстве случаев). Если вы создаете средство проверки пола для английского языка на Python, у вас может возникнуть соблазн просто преобразовать это правило в код. Это прекрасно работает для таких слов, как friends, но как насчет таких существительных, как lens (сама архаичная форма множественного числа) или bias? Как научить машину распознавать, где заканчивается форма единственного числа и начинается форма множественного числа, и является ли входное слово формой множественного числа?

Я столкнулся с этой проблемой сегодня, работая над добавлением польских существительных мужского рода в их обоих вариантах в мою простую проверку рода. В отличие от английского или испанского, в польском языке довольно сложная система множественных окончаний существительных, и они могут варьироваться от -a, -eдо-i, -yдо -owie, -anie, чтобы назвать основные. Вы могли бы сказать, что это настоящее испытание, и мои польские студенты, вероятно, с этим согласятся. Чтобы решить эту проблему, я сосредоточился только на существительных мужского рода.

Одна волшебная вещь, которую вам нужно знать о польской именной морфологии (или о различных формах, которые существительные принимают в языке), заключается в том, что, хотя все существительные в единственном числе могут быть мужского, женского или среднего рода, они либо мужественные, либо немужские ( да, вы правильно прочитали) во множественном числе. Поскольку польский язык в буквальном смысле является гендерно-одержимым языком с архаичной, ориентированной на мужчину системой грамматических чисел, только существительные, которые относятся к реальным людям (личные существительные), являются мужественными, в то время как остальные не являются мужественными. На практике это означает, что в то время как личные существительные мужского рода в польском языке предпочитают окончание -i, неличные существительные тяготеют к окончанию -y.

Это имеет последствия как для качества, так и для количества ограничений, которые необходимо включить в код, чтобы машина могла эффективно проводить это различие. Для -yсуществительных во множественном числе разработка кода довольно проста, так как редко встречаются слова с этим окончанием, которые не являются множественными — одним из ярких примеров может быть английское заимствование hobby. >, что в польском языке среднего грамматического рода». В большинстве случаев то же самое относится и к категории -i в целом, хотя вы должны быть осторожны, чтобы не смешивать эти слова с существительными номинально женского рода в единственном числе, оканчивающимися на -i. Однако настоящая проблема начинается с заметного совпадения категорий -yи-iво множественном числе, особенно когда вы пытаетесь научить машину идентифицировать и вернуть категорию множественного числа (мужской или немужской), к которой принадлежит входное слово. Здесь вам нужно углубиться в морфологию и сосредоточиться на буквах, которые стоят перед одним из двух окончаний.

Один из подходов, который я счел полезным для определения и тестирования в реальном времени по мере разработки кода, заключался в упорядочивании или размещении операторов if таким образом, чтобы более общие правила шли первыми, а более подробные те следуют. Так я понял, что не могу поставить правило -rze для немужских существительных (например, kurze'пыль'), потому что таким образом все имена профессии, которые также оканчиваются на -rze (например, stolarze «плотники»), также подпадают под эту категорию.

Еще одна вещь, которую я бы рекомендовал сделать, — это использовать корпус вашего целевого языка, если это возможно, для выявления случаев, которые могли пропустить ваше внимание, но которые могут создать проблемы для некоторых ограничений, включенных в ваш код. Даже носители языка не всегда могут придумать все возможные формы и исключения в своем родном языке. Возможность просмотреть корпус поможет вам мысленно отметить некоторые особенности, которые вы, возможно, забыли, и одновременно упражнять свои навыки распознавания языка, поскольку вам предоставляется больше потенциальных форм, которые вам необходимо учитывать в своем коде.

На следующем этапе я планирую заняться существительными женского и/или среднего рода во множественном числе. Предыдущие части серии смотрите здесь, здесь и здесь. А пока следите за грядущими обновлениями. Чтобы следить за этим проектом на GitHub, нажмите здесь. ▣