Parsing 拉丁语屈折变化:

Parsing 拉丁语屈折变化:,parsing,inflection,latin,Parsing,Inflection,Latin,我不知道这里是否有人会说(或写)拉丁语。但也许你甚至可以在不懂这种语言的情况下帮我 我有一个单词数据库(包括名词和动词)。现在我想生成这些名词和动词的所有不同(屈折)形式。这样做的最佳策略是什么? 由于拉丁语是一种高度屈折的语言,有: (a) (b) 有关动词变位(“mandare”)的示例,请参见本翻译页: 我不想手动输入所有这些表格中的所有单词。那么我如何自动生成它们呢?最好的方法是什么 如何改变所有单词的复杂规则列表 贝叶斯方法 提前非常感谢 编辑(可能的解决方案?): 我现在发现有

我不知道这里是否有人会说(或写)拉丁语。但也许你甚至可以在不懂这种语言的情况下帮我

我有一个单词数据库(包括名词和动词)。现在我想生成这些名词和动词的所有不同(屈折)形式。这样做的最佳策略是什么?

由于拉丁语是一种高度屈折的语言,有:

(a)

(b)

有关动词变位(“mandare”)的示例,请参见本翻译页:

我不想手动输入所有这些表格中的所有单词。那么我如何自动生成它们呢?最好的方法是什么

  • 如何改变所有单词的复杂规则列表
  • 贝叶斯方法
提前非常感谢

编辑(可能的解决方案?):

我现在发现有一个叫做“威廉·惠特克的话”的节目。它也为拉丁语单词创造了词形变化,所以它正是我想要做的

说程序是这样工作的:单词使用一套基于自然前置、入位、后缀、变位和变位的规则来确定词条的可能性。由于这种分析单词结构的方法,无法保证这些单词曾经在拉丁语文学或演讲中使用过,即使程序找到了给定单词的可能含义。”


该程序的源代码也是可用的。但我真的不明白这是如何工作的。你能帮我吗?也许这就是我问题的解决方案…

也许会有帮助

你可以做一些类似于拼音词典格式的事情(请参阅)

您定义了两个表。一个表包含单词的根(永远不会改变的部分),另一个表包含给定类的修改。对于给定类,对于每个变位(或变位),它告诉您要在末尾(或开头)添加哪些字符它甚至可以指定替换给定数量的字符。现在,要获得一个特定倾斜的单词,您需要根,从它所属的类应用转换,然后瞧


例如,对于mandare,词根将是mand,类将包含后缀,如oasateamousatis,表示主动指示现在。

我将使用名词作为示例,但它也适用于动词

首先,我将创建两个类:
Regular
unregular
。对于
Regular
名词,我将为这三个declension创建三个类,并使它们都实现一个Declensable接口(
FirstDeclension扩展Regular implements Declensable
)。该接口将定义两个
静态枚举(
主格的
主格的
,等等,以及
单数的
复数的
)。 所有的方法都有一个根字符串和一个后缀的静态hashmap。方法
FirstDeclension\get(case,number)
将根据hashmap追加正确的后缀

unregular
类必须为每个单词定义一个本地hashmap,然后实现相同的可取消可扩展接口

这有什么意义吗

附录:澄清一下,
类常规
的构造函数

public Regular (String stem) {
    this.stem = stem
}

也许,您可以在实现中遵循AOT(在LGPL下)

AOT中没有拉丁语词法,只有俄语、德语和英语,俄语当然是像拉丁语一样复杂的屈折词法的一个例子,所以AOT应该准备好作为实现它的框架


尽管如此,我相信在进行编程之前,必须有一个精确的形态学形式系统。至于俄语,我想,大多数正在运行的形态学计算机系统都是基于安德烈·扎利兹尼亚克(Andrey Zalizniak)和《俄罗斯语法词典》对俄语形态学的认真分析n和相关作品。

非常感谢您的回答:)问题是并非所有的单词都遵循“mandare”这样的规则。这是一个规则动词。但也有很多不规则动词,如“toller、tollo、sustuli、sublatum”“。对于这种例外情况,您可以为每个特殊单词定义一个特定的类,其中某些偏折的转换可以是用某些内容替换整个词根。我们甚至可以考虑一个类的层次结构,其中子类只记录与父类的差异(告诉它与父类相同,除了这个和那个)。我们完全可以采用您的方法并将其付诸实践。可能有比你更复杂的方法,但你的方法肯定会奏效。非常感谢。谢谢你的回答。这确实有道理;)但你的答案中缺少的是单词可以有不同的词干,例如:“dominus”和“puer”以及“ager”都属于o形偏折。但它们的茎是“多明”、“普洱”和“阿格”。所以你需要茎,没有茎你什么都做不了。对不起,我叫它们“根”而不是“茎”。那是我的西班牙语。。。在“agr”中,词干应该是“ag”,而不是“agr”,因为“agr”不包含“agr”。为了这个分类,它将是不规则的。顺便说一句,我在很多年前学了一些拉丁语,以至于记不住每一个小的可能性。。。我希望我能记得多一点。因此,对于“奇怪”的情况,层次结构可能会变得更复杂一些,但在最坏的情况下,总是有可能出现一个不规则的实例,其根为空,哈希中包含完整的单词(尽管我记不起任何以不同字母开头的单词)