有些语言(尤其是斯拉夫语言)会根据语法上下文来更改人名的结尾。 (对于那些了解语法或学习过对单词执行此操作的语言(例如德语或俄语)并且为了帮助使用搜索关键字的人们,我正在谈论名词变格。)

这可能是最简单的例子(用波兰语,这是为了保存整个不同的字母问题):

  • Dorothy看到了猫— Dorotazobaczyłakota
  • 猫看见了多萝西— KotzobaczyłDorotę
  • 这是多萝西的猫-开玩笑说说kot Doroty
  • 我把猫送给了桃乐丝(Dorothy)—Dałamkota Dorotie
  • 我和桃乐丝(Dorothy)一起去散步—波斯尼亚和本地的z
  • “你好,多萝西!” -“威坦,多罗托!”

  • 现在,如果在这些示例中,此处的名称是用户输入的名称,那将引入一个语法噩梦世界。重要的是,如果我去了Katie(Kasia),则examples are not directly comparable — 3和4都是Kasi,而不是* Kasy和* Kasie —,男性名字将是wholly different again

    我猜以前有人处理过这种情况,但是今天我的Google-fu似乎表现不佳。我可以找到很多有关自然语言处理的链接,但是我认为那不是我想要的。需要说明的是:我只会为每个用户提供一个用户输入的名称,并且需要将其拒绝为已知配置-我将拥有一个本地化文本,该文本中将使用占位符,例如{name nominative}{name dative},为了争论。我真的不想对文本进行词法分析以得出结论,我只需要拒绝一个用户输入的名称即可。

    任何人都对如何执行此操作有任何建议,或者我需要开始致电本地化代理机构; o)

    感兴趣的进一步阅读(全部在Wikipedia上):
  • Declension
  • Grammatical case
  • Declension in Polish
  • Declension in Russian
  • 捷克语nounspronouns的下降

  • 免责声明:我知道这在许多其他语言中也会发生。强调斯拉夫语言的原因仅仅是因为我有一个将要本地化为某些斯拉夫语言的项目。

    最佳答案

    在我看来,就像您想要一种用于抛光的形态引擎。在很短的时间内,他们可以将表面形式(我们读和写的东西)转换成某种抽象形式(例如“Dorothy + FEM + DAT”)进行分析和生成,同时考虑到偏斜和语音。

    在这里看看(我不是波兰人,但看起来不错,最重要的是它有下载:))
    http://nlp.ipipan.waw.pl/~wolinski/morfeusz/

    Here是关于该主题的一些介绍。

    10-05 18:30