某些语言,特别是斯拉夫语言,根据语法背景改变了人们姓名的结尾。 (对于那些懂语法或学习过语言的人,比如德语或俄语,以及帮助搜索关键词,我说的是名词变换。)
这可能是最简单的一组示例(波兰语,以保存整个不同的字母表问题):
现在,如果在这些例子中,这里的名字是用户输入的,那就引入了一个语法噩梦的世界。重要的是,如果我选择凯蒂( Kasia ),examples are not directly comparable - 3和4都是 Kasi ,而不是 * Kasy 和 * Kasie - 男性名称为wholly different again。
我猜之前有人处理过这种情况,但今天我的Google-fu似乎很弱。我可以找到很多关于自然语言处理的链接,但我不认为这是我想要的。要明确:我每个用户只会有一个用户输入的名称,我需要将它们拒绝为已知的配置 - 我将有一个本地化的文本,其占位符类似于{name nominative}
和{name dative}
,为了争论。我真的不想对文本进行词法分析来解决问题,我只需要拒绝一个用户输入的名称。
任何人都有关于如何做到这一点的任何建议,或者我是否需要开始致电本地化代理机构; o)
进一步阅读(所有维基百科上的)感兴趣的内容:
免责声明:我知道这种情况会发生在许多其他语言中;突出斯拉夫语言仅仅是因为我有一个项目将被本地化为一些斯拉夫语言。
答案 0 :(得分:2)
对我来说,就像你想要一个用于抛光的形态学引擎。在很短的时间内,他们可以进行分析和生成,从表面形式(我们阅读和写入)到一些抽象形式,如“Dorothy + FEM + DAT”,同时考虑到变形和音韵。
看看这里(我不是很好,但它看起来不错,而且最重要的是它有下载:)) http://nlp.ipipan.waw.pl/~wolinski/morfeusz/
Here是关于这个主题的一些介绍。
答案 1 :(得分:1)
在德语中唯一被修改的是文章:Der,Die,Das。名字没有它们。所以对德语一无所知。 (顺便说一句,这不是斯拉夫语)
关于俄语(我的母语)。改变结局的整个概念对于处理来说是痛苦的,但是(!)如果你只有人的名字并且你有{name nominative}这样的提示,那就相对容易了。大多数女性名字都有共同的结构:root + a / ya(а/я),每个提示都会给你一定的知识如何改变结局。我看到在波兰语中它是相同的:Dorot | a,Dorot |ę。男性名字也很简单。它们要么遵循完全相同的规则(如果以/ ya(а/я)结尾),要么以j / y结尾(如我的名字为Andrey),映射略有不同。