有没有一种简单的方法可以从Hunspell/Aspell字典数据文件中生成人类可读的词形变化列表?
例如,我想生成以下输出(针对不同的语言):
..。
书,书
书,书,预订,预订
..。
走,走
..。
我查看了Hunspell/Aspell文档,但找不到可以做到这一点的API调用。
发布于 2015-01-19 02:59:04
有一个命令行可以做到的方法,但是它的输出格式不是你想要的那样。如果需要,您也可以手动执行此操作,不过只需使用regex编写一些简单的脚本即可。
每组词缀的格式为
TYPE TAG REMOVE REPLACE MATCH这样,当TAG与.dic文件中给定单词中/后面的内容相匹配时,您可以执行以下操作(假设您已经去掉了/...中的单词):
如果( $word =~ /$match$/) $word =~ s/$remove$/$replace/;
注意与行尾/单词匹配的$。如果是前缀,则使用^进行调整。
有三点需要注意:
.aff文件获取$match在几乎所有情况下都等同于标准正则表达式。有一些小的变化,如果匹配类似于[abc-gh],你最好将它改为(a|b|c|-|g|h)或[abcgh-] (hunspell不使用连字符作为元字符),否则它将被解释为[abcdefgh] (标准正则表达式)。对于否定的字符类,您的选择是手动将-移动到表达式的末尾(例如,将[^a-df]移动到[^adf-]或在后面使用负外观。/...结尾,则需要重新处理它,因为它有一个双重后缀。注意。根据我的粗略计算,我正在编写的词典可能有超过5000万个单词正在形成(如果超过1亿个单词,我也不会感到惊讶)。
https://stackoverflow.com/questions/17831145
复制相似问题