如何在aspell自定义词典上使用特殊字符?

时间:2009-11-04 19:44:03

标签: php aspell

我正在使用aspell和php(php-pspell)在内部搜索引擎上构建一个“你是说”的功能。

我有一个产品目录,我希望这些产品的名称也是字典中的单词,所以“你的意思是”可以建议'。

问题在于,当我尝试使用PHP Pspell函数创建自定义词典时,如果单词包含不在a-z范围内的字符,如数字,hifens等,则会收到错误。

例如:

iphone 3gs:iphone顺利添加,但3gs不是

蓝光:由于 -

而无法添加

是否可以在字典中添加这种单词?或者aspell只是不接受它们?

3 个答案:

答案 0 :(得分:2)

一个resource可能会有所帮助。您应该能够通过配置语言数据文件来添加带有特殊字符的单词,但是有一个空格:

  

但是,请注意,由于Aspell的限制,添加特殊字符可能会产生意想不到的后果。例如,如果其中的-' was accepted as a middle character, then every word with a - '被标记为拼写错误,除非字典中包含该确切的单词,即使这两个部分都在字典中。另外,拥有.' as an end character will cause the。'成为任何拼错单词的一部分。如果你在一个句子的末尾拼错了一个单词,那会很烦人。

答案 1 :(得分:0)

执行此操作的最佳方法是使用某些键序列替换包含空格的特殊字符。 说xxx。你必须为aspell接受的所有角色做到这一点。

答案 2 :(得分:0)

假设您的字典语言是英语(“en”),然后在aspell安装中找到en.dat文件。 en.dat是语言数据文件,每种语言都有自己的数据文件,名为<lang>.dat。数据文件应出现在以下位置:

/usr/lib64/aspell/en.dat

现在打开此文件进行编辑:

vi /usr/lib64/aspell/en.dat

在此文件的末尾添加以下行:

special ' -*-

special是告诉aspell将以下字符视为特殊字符的关键字。添加特殊字符的格式为:

char是有问题的非字母字符。 begin,middle,end是' - '或'*'。开始的明星意味着角色可以开始一个单词,' - '意味着它不能。中间和结束也是如此。 全文:http://www.webspeaks.in/2015/01/adding-special-characters-in-aspell-dictionary-for-php.html