【发布时间】:2014-09-09 08:22:18
【问题描述】:
我正在编写一个程序,为波兰语制作单词变格。在这种语言中,词干在某些情况下可能会有所不同(因为颚化或移动/转瞬即逝的 e 和其他影响)。
例如,我们有单词“karzeł”,它是单词的基本字典形式。它的词干也是“karzeł”。但是这个词的属格形式是“karła”,词干是“karł”。我们可以在这里看到'e'消失了,'rz'变成了'r'。
另一个例子:
'uzda' -> 词干'uzd'
'uździe' -> 词干'uździ'
交替:'zd' -> 'ździ'
我只想在字典中存储词干的基本形式(“karzeł”和“uzd”),当我将词干“karł”或“uździ”放入程序时,它会找到合适的基本词干。交替只发生在词干的末尾,最多包含 4 个字母。
有没有算法可以做到这一点? Levensthein 距离对所有字母一视同仁,所以如果我输入单词 'barzeł',那么到词干 'karzeł' 的距离将小于词干 'karł'。
我也考虑过神经网络,但我不确定如何对单词进行编码(给每个词干变体不同的 id?)。
另一个想法是编写算法,该算法可以进行反向交替并创建一组可能的词干并尝试在字典中找到它们。
我想强调的是,我只想要存储词干的基本形式以及其他所有内容。
【问题讨论】:
-
levenshtein 距离可以自定义,以便赋予某些字母或字母序列更多的权重。