我有一个关于为hunspell构建自定义词典的问题。 我现在正在使用通用英语词典和词缀文件。如何为每个用户向该字典添加用户指定的单词?
答案 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
这是一个很好的起点