27

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

4

5 回答 5

17

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

于 2013-02-20T15:29:08.587 回答
5

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

但是,您可能想查看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");
于 2011-12-22T23:47:37.437 回答
3

开始工作的秘诀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>

于 2018-06-09T16:51:52.277 回答
1

我也在实现这种类型的功能。一旦您创建了带有关联字典的 Hunspell 对象,您就可以向其中添加单个单词。

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

于 2013-03-21T19:16:33.457 回答
-2

查看 openoffice 中的文档

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

特别是本文档 http://www.openoffice.org/lingucomponent/dictionary.html

这是一个很好的起点

于 2014-05-05T06:06:51.107 回答