Hunspell 始终将单引号字符(撇号)视为单词的一部分。这意味着当文本使用单引号引用时,hunspell 会将其标记为错误。即使单引号本身也被视为(拼写错误的)单词。
% echo "He asked, 'Why can't I quote?'" | hunspell
Hunspell 1.3.2
*
*
& 'Why 3 10: why, whey, whiny
*
*
*
& ' 15 29: 's, e, s, i, a, n, r, t, o, l, c, d, u, g, m
Aspell 对此做出了正确的解释:
% echo "He asked, 'Why can't I quote?'" | aspell -a
@(#) International Ispell Version 3.1.20 (but really Aspell 0.60.7-20110707)
*
*
*
*
*
*
我更愿意使用 hunspell,但指示它忽略前导和尾随的单引号字符,同时保留嵌入的引号字符,例如“can't”中的引号字符。
我怎样才能做到这一点?
答案1
删除所有'
后面跟着非字母数字、前面跟着非字母数字、或者位于行首或行末的字符:
echo "He asked, 'Why can't I quote?'" | perl -pe 's/'"'"'(\W)/$1/g;s/(\W)'"'"'/$1/g;s/^'"'"'//;s/'"'"'$//;' | hunspell
答案2
您需要将以下行添加到您的词典词缀文件中(即/usr/share/hunspell/en_US.aff
)
IGNORE '
不幸的是,我没有找到一种方法来指定个人词缀文件,就像使用个人词典文件一样。