6

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

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

问题是,当我尝试使用 PHP Pspell 函数创建自定义字典时,当单词包含不在 az 范围内的字符(如数字、hifens 等)时,我会收到错误消息。

例如:

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

蓝光:由于 - 无法添加

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

4

3 回答 3

2

一种可能被证明有用的资源。您应该能够通过配置语言数据文件来添加带有特殊字符的单词,但是有一个 caviat:

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

于 2011-05-04T22:34:23.710 回答
0

最好的方法是用一些键序列替换特殊字符,包括空格。说xxx。对于 aspell 接受的字符之外的所有字符,您都必须这样做。

于 2010-02-18T10:31:07.170 回答
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 可以是“-”或“*”。begin 的星号表示字符可以开始一个单词,'-' 表示不能。中间和结尾也是如此。全文:http ://www.webspeaks.in/2015/01/adding-special-characters-in-aspell-dictionary-for-php.html

于 2015-01-20T05:44:06.637 回答