阿拉伯语词形还原和斯坦福 NLP
Arabic lemmatization and Stanford NLP
我尝试进行词形还原,即识别词元和可能的动词阿拉伯语词根,例如:
connects ==> 引理(动词不定式)==> connects ==> 词根(三字词根 / Jidr thoulathi)
==> 和 а
你觉得斯坦福NLP能做到吗?
此致,
斯坦福阿拉伯语分段器无法进行真正的词形还原。但是,可以训练一个新模型来执行类似词干提取的操作:
- تكتبون ← ت+ كتب +ون
- يتصل ← ي+ تain
如果输出是真正的阿拉伯语引理非常重要(“Êain”不是真正的引理),您最好使用像 MADAMIRA 这样的工具 (http://nlp.ldeo.columbia.edu/madamira/)。
详细说明: 斯坦福阿拉伯语分段器仅使用这些操作(在 edu.stanford.nlp.international.arabic.process.IOBUtils
中实现)逐个字符地生成其输出:
- 在两个字符之间拆分一个词
- 将 lil- (للـ) 转换为 li+ al- (ل+ الـ)
- 将 ta (Ê) 或 ha (ə) 转化为 ta marbuta (É)
- 将 ya (ي) 或 alif (ا) 转换为 alif maqsura (ى)
- 将 alif maqsura (ى) 转换为 ya (ي)
因此,将 يتain 词形还原为 ي+ اتain 将需要实施一个额外的规则,即在 ya 或 ta 之后插入一个 alif。某些不规则形式的词形还原是完全不可能的(例如,نساء ← امرأ)。
可供下载的斯坦福分段器版本也只断开代词和助词:
وسيكتشونه ← و+ + يكتون +ه
但是,如果您可以访问 LDC Arabic Treebank 或具有形态分割注释的类似丰富的阿拉伯文本来源,则可以训练您自己的模型以删除所有形态词缀,这更接近词形还原:
وسيكتشونه ← و+ س+ ي+ كتشو +ون +ه
请注意,“كتشو”不是真正的阿拉伯语单词,但分词器至少应该始终如一地为 تكتشوين、أكتشو、يكتشو等生成“كتشو”。如果这是可以接受的,则需要更改 ATB 预处理脚本改为使用形态分割注释。您可以通过将名为 parse_integrated
的脚本替换为如下修改后的版本来执行此操作:https://gist.github.com/futurulus/38307d98992e7fdeec0d
然后按照 README 中 "TRAINING THE SEGMENTER" 的说明进行操作。
我不确定 Stanford NLP 工具包是否有 lammetizer,但你可以试试
- 最先进的是Farasa Lemmatizer。
- 用于阿拉伯语处理的 MADAMIRA
Farasa Lemmatizer 在准确性方面优于 MADAMIRA Lemmatizer。准确率约为 97.23% 在词形还原任务中,它比 MADAMIRA 提供了 +7% 的相对增益。
您可以从以下link阅读更多关于 Farasa Lemmatizer 的信息:
https://arxiv.org/pdf/1710.06700.pdf
我尝试进行词形还原,即识别词元和可能的动词阿拉伯语词根,例如: connects ==> 引理(动词不定式)==> connects ==> 词根(三字词根 / Jidr thoulathi) ==> 和 а
你觉得斯坦福NLP能做到吗?
此致,
斯坦福阿拉伯语分段器无法进行真正的词形还原。但是,可以训练一个新模型来执行类似词干提取的操作:
- تكتبون ← ت+ كتب +ون
- يتصل ← ي+ تain
如果输出是真正的阿拉伯语引理非常重要(“Êain”不是真正的引理),您最好使用像 MADAMIRA 这样的工具 (http://nlp.ldeo.columbia.edu/madamira/)。
详细说明: 斯坦福阿拉伯语分段器仅使用这些操作(在 edu.stanford.nlp.international.arabic.process.IOBUtils
中实现)逐个字符地生成其输出:
- 在两个字符之间拆分一个词
- 将 lil- (للـ) 转换为 li+ al- (ل+ الـ)
- 将 ta (Ê) 或 ha (ə) 转化为 ta marbuta (É)
- 将 ya (ي) 或 alif (ا) 转换为 alif maqsura (ى)
- 将 alif maqsura (ى) 转换为 ya (ي)
因此,将 يتain 词形还原为 ي+ اتain 将需要实施一个额外的规则,即在 ya 或 ta 之后插入一个 alif。某些不规则形式的词形还原是完全不可能的(例如,نساء ← امرأ)。
可供下载的斯坦福分段器版本也只断开代词和助词:
وسيكتشونه ← و+ + يكتون +ه
但是,如果您可以访问 LDC Arabic Treebank 或具有形态分割注释的类似丰富的阿拉伯文本来源,则可以训练您自己的模型以删除所有形态词缀,这更接近词形还原:
وسيكتشونه ← و+ س+ ي+ كتشو +ون +ه
请注意,“كتشو”不是真正的阿拉伯语单词,但分词器至少应该始终如一地为 تكتشوين、أكتشو、يكتشو等生成“كتشو”。如果这是可以接受的,则需要更改 ATB 预处理脚本改为使用形态分割注释。您可以通过将名为 parse_integrated
的脚本替换为如下修改后的版本来执行此操作:https://gist.github.com/futurulus/38307d98992e7fdeec0d
然后按照 README 中 "TRAINING THE SEGMENTER" 的说明进行操作。
我不确定 Stanford NLP 工具包是否有 lammetizer,但你可以试试
- 最先进的是Farasa Lemmatizer。
- 用于阿拉伯语处理的 MADAMIRA
Farasa Lemmatizer 在准确性方面优于 MADAMIRA Lemmatizer。准确率约为 97.23% 在词形还原任务中,它比 MADAMIRA 提供了 +7% 的相对增益。
您可以从以下link阅读更多关于 Farasa Lemmatizer 的信息: https://arxiv.org/pdf/1710.06700.pdf