如何为Hunspell制作自定义词典

时间:2011-09-26 21:38:11

标签: dictionary spell-checking hunspell

我有一个关于为hunspell构建自定义词典的问题。 我现在正在使用通用英语词典和词缀文件。如何为每个用户向该字典添加用户指定的单词?

5 个答案:

答案 0 :(得分:15)

为您的语言创建自己的单词列表和词缀文件(如果不存在)。好吧,对于papiamentu - Curaçao的母语 - 这样的字典不存在。但是我很难找到如何创建这样的文件,所以我在这里记录它:http://www.suares.com/index.php?page_id=25&news_id=233

答案 1 :(得分:4)

我正在尝试做同样的事情,但还没有找到足够的信息才能开始。

但是,您可能需要查看hunspell - format of Hunspell dictionaries and affix files

<强>更新

如果您使用的是.NET,则可以下载Hunspell .NET port。使用它也很容易。

var bee = new Hunspell();
bee.Load("path_to_en_US.aff");
bee.Load("path_to_en_US.dic");
bee.Add("my_custom_word1");
bee.Add("my_custom_word2");
var suggestions = bee.Suggest("misspel_word");

答案 2 :(得分:1)

hunspell工作的秘诀(至少对我来说)是弄清楚它会搜索我所拥有的位置,并将自定义词典放在那里。还要记住,词典是以特定的格式,所以你需要遵守这些规则。

运行hunspell -D会显示搜索路径。在MacOS上,我的包括/Users/scott/Library/Spelling所以我创建了该目录并将其放在那里。假设您要调用字典mydict,并且您的输入数据文件称为dict.txt。我们将使用刚刚展示的路径。

首先,复制默认的.aff文件。如上所述,当您运行hunspell -D时,您会看到它。对我来说,它在/Library/Spelling/en_US/。所以

cp /Library/Spelling/en_US.aff /Users/scott/Library/Spelling/mydict.aff

然后,每次更新输入列表(dict.txt)时,请执行以下操作:

DICT=/Users/scott/Library/Spelling/mydict.dic cd ~/doc/dict cat dict.txt | sort | uniq > dict.in wc -l dict.in > $DICT cat dict.in >> $DICT rm dict.in

要运行hunspell,只需指定两个词典。所以对我来说,因为我想要一个拼写错误列表,我使用

hunspell -l -d scott,en_US <filename>

答案 3 :(得分:0)

我也正在实现这种类型的功能。使用关联的字典创建Hunspell对象后,可以向其添加单个单词。

请记住,只要Hunspell对象存活,这些单词才可用。每次访问新对象时,都必须再次添加所有用户定义的单词。

答案 4 :(得分:-2)

查看openoffice中的文档

http://www.openoffice.org/lingucomponent/

特别是这份文件 http://www.openoffice.org/lingucomponent/dictionary.html

这是一个很好的起点