Dan*_*ski 8 morphological-analysis languagetool
我正在寻找一个可以对德语单词进行形态分析的库,即它将任何单词转换为其根形式并提供有关所分析单词的元信息.
例如:
gegessen -> essen
wurde [...] gefasst -> fassen
Häuser -> Haus
Hunde -> Hund
Run Code Online (Sandbox Code Playgroud)
我的收藏:
编辑:我知道没有任何字典就没有办法进行形态分析,因为不规则的单词.当我说,我更喜欢没有字典的图书馆,我的意思是那些完整的字典,它们映射每一个字:
arbeite -> arbeiten
arbeitest -> arbeiten
arbeitet -> arbeiten
arbeitete -> arbeiten
arbeitetest -> arbeiten
arbeiteten -> arbeiten
arbeitetet -> arbeiten
gearbeitet -> arbeiten
arbeite -> arbeiten
...
Run Code Online (Sandbox Code Playgroud)
这些词典有几个缺点,包括巨大的尺寸和无法处理未知单词.
当然,所有异常只能用字典处理:
esse -> essen
isst -> essen
eßt -> essen
aß -> essen
aßt -> essen
aßen -> essen
...
Run Code Online (Sandbox Code Playgroud)
(我的思绪现在正在旋转:))
我认为你正在寻找一个"词干算法".
Martin Porter的方法在语言学家中是众所周知的.Porter词干分析器基本上是一个词缀剥离算法,结合了一些特殊情况的替换规则.
大多数词干分析者提供语言上"不正确"的词根.例如:"美丽"和"美丽"都会导致词干"美化",当然,这不是一个真正的词.但是,如果您使用这些词干来改进信息检索系统中的搜索结果,则无关紧要.例如,Lucene支持Porter stemmer.
Porter还设计了一种简单的编程语言来开发词干分析器,称为Snowball.
Snowball还提供德语词干分析器.从Snowball源生成的AC版本也可以在网站上获得,以及算法的纯文本说明.
这是Snowball中的德国词干分析师:http://snowball.tartarus.org/algorithms/german/stemmer.html
如果你正在寻找一个词的相应词干,就像你在词典中找到的那样,以及词性的信息,你应该谷歌"词典化".
(免责声明:我在这里链接我自己的开源项目)
这些数据以单词列表的形式可在http://www.danielnaber.de/morphologie/获得.它可以与分词器库(如jwordsplitter)结合使用,以涵盖列表中不在的复合名词.
或者只使用Java中的LanguageTool,它具有以紧凑有限状态机的形式嵌入的单词列表(加上它还包括复合分裂).