我正在使用aspell和php(php-pspell)在内部搜索引擎上构建一个“你是说”的功能。
我有一个产品目录,我希望这些产品的名称也是字典中的单词,所以“你的意思是”可以建议'。
问题在于,当我尝试使用PHP Pspell函数创建自定义词典时,如果单词包含不在a-z范围内的字符,如数字,hifens等,则会收到错误。
例如:
iphone 3gs:iphone顺利添加,但3gs不是
蓝光:由于 -
而无法添加是否可以在字典中添加这种单词?或者aspell只是不接受它们?
答案 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