我有一个关于为 hunspell 构建自定义词典的问题。我现在正在使用通用英语词典和词缀文件。如何为我的每个用户将用户指定的单词添加到该词典中?
5 回答
如果不存在,请为您的语言创建自己的单词列表和词缀文件。好吧,对于 papiamentu - 库拉索岛的母语 - 这样的字典不存在。但是我很难找到如何创建这样的文件,所以我在这里记录它:http ://www.suares.com/index.php?page_id=25&news_id=233
我正在尝试做同样的事情,但还没有找到足够的信息来开始。
但是,您可能想查看Hunspell 字典和词缀文件的 hunspell 格式 。
更新
如果您正在使用 .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");
开始工作的秘诀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>
我也在实现这种类型的功能。一旦您创建了带有关联字典的 Hunspell 对象,您就可以向其中添加单个单词。
请记住,这些词仅在 Hunspell 对象存在时才可用。每次访问新对象时,都必须再次添加所有用户定义的单词。
查看 openoffice 中的文档
http://www.openoffice.org/lingucomponent/
特别是本文档 http://www.openoffice.org/lingucomponent/dictionary.html
这是一个很好的起点