拉丁变形:

我不知道这里是否有人能说(或写)拉丁文的“死语”。但也许你甚至可以在不懂这种语言的情况下帮助我...... 我有一个单词数据库(包括名词和动词)。现在我想生成那些名词和动词的所有不同(变形)形式。这样做的最佳策略是什么? 拉丁语是一种高度变化的语言,有: a)名词的变形 b)动词的结合 有关动词的共轭(“mandare”)的示例,请参阅此翻译页面:共轭 我不想手动输入所有这些单词的形式。那么如何自动生成它们呢?什么是最好的方法? 如何反映所有单词的复杂规则列表 贝叶斯方法 ... 非常感谢你提前! 编辑(可能的解决方案?): 我现在发现有一个名为“威廉·惠特克的话”的节目。它也会为拉丁语单词创建变形,所以它正是我想要做的事情。 维基百科称该程序的工作原理如下:“单词使用一组基于自然前置,入内和后缀,变换和共轭的规则来确定进入的可能性。这种分析结构的方法的结果言语,不能保证这些词语曾被用于拉丁文学或言语,即使该程序找到了某个词的可能含义。“ 该程序的来源也可在此处获得。但我真的不明白这是如何工作的。你能帮助我吗?也许这将是我的问题的解决方案......     
已邀请:
你可以做类似于hunspell字典格式的东西(参见http://www.manpagez.com/man/4/hunspell/) 您定义了2个表。一个包含单词的根(永不改变的部分),另一个包含给定类的修改。对于给定的类,对于每个变量(或共轭),它告诉在根的结尾(或开头)添加哪些字符。它甚至可以指定替换给定数量的字符。现在,为了得到一个特定的变元,你取根,从它所属的类中应用变换,然后vo! 例如,对于mandare,根将是mand,并且类将包含诸如o,as,ate,amous,atis等后缀,用于活动指示性存在。     
也许这会有所帮助     
我将使用名词作为例子,但它也适用于动词。 首先,我会创建两个类:
Regular
Irregular
。对于
Regular
名词,我会为三个变量做三个类,并使它们全部实现一个Declensable(或者这个单词是英文:)接口(
FirstDeclension extends Regular implements Declensable
)。界面将定义两个
static enum
s(
NOMINATIVE
VOCATIVE
等,和
SINGULAR
PLURAL
)。 所有都有一个根的字符串和一个后缀的静态hashmap。然后,方法
FirstDeclension#get (case, number)
将根据hashmap附加正确的后缀。
Irregular
类应该为每个单词定义一个局部散列映射,然后实现相同的Declensable接口。 它有意义吗? 附录:为了澄清,
class Regular
的构造函数将是
public Regular (String stem) {
    this.stem = stem
}
    
也许,您可以在实施中遵循AOT的路线。 (它在LGPL下。) http://prometheus.altlinux.org/en/Sisyphus/srpms/aot http://seman.sourceforge.net/ http://aot.ru/ 在AOT中没有拉丁形态,而只有俄语,德语,英语,其中俄语当然是一个像拉丁语一样复杂的屈折形态的例子,因此AOT应该作为实现它的框架。 尽管如此,我相信在进行编程之前,必须有一个精确的形式系统,用于已经明确定义的形态学。至于俄语,我猜,大多数工作形态计算机系统都是基于对Andrey Zalizniak所做的俄语形态的严肃分析以及俄语和相关作品的语法词典。     

要回复问题请先登录注册