2024-05-29 00:22:04 发布
网友
有什么办法我可以使用多个字典在附魔。 我就是这么做的
import enchant d = enchant.Dict("en_US") d.check("materialise") >> False
但是如果我使用enchant.Dict("en_UK"),我会得到True。组合多个字典的最佳方法是什么,这样它将返回True,而不管materialise或materialize作为输入参数?你知道吗
enchant.Dict("en_UK")
True
materialise
materialize
@Mass17这其实是不对的。表达式"en_US" and "en_UK"是对结果为"en_UK"的两个字符串的逻辑“与”运算。在上面的表达式中AND运算符是如何工作的:(1)首先,任何非空字符串都被认为是True,(2)如果左字符串为True,则检查并返回右字符串。阅读Python的short-circuit评估,了解它为什么会这样工作。你知道吗
"en_US" and "en_UK"
"en_UK"
所以:
>>> "en_US" and "en_UK" 'en_UK'
请注意,如果您切换字符串的顺序:
>>> "en_UK" and "en_US" 'en_US'
单词“materialise”和“materialize”都出现在"en_UK"字典中,因此您得到了结果。你还没有把这两本字典“组合”起来。你知道吗
对于拼写词典,如果两个词典共享相同的.aff文件,并且我假设en_US和en_GB传递该条件,则有一个解决方法。你知道吗
.aff
en_US
en_GB
作者是Sergey Kurakin,Bash脚本是(dic_combine.sh),如下所示:
dic_combine.sh
#!/bin/bash # Combines two or more hunspell dictionaries. # (C) 2010 Sergey Kurakin <kurakin_at_altlinux_dot_org> # Attention! All source dictionaries MUST share the same affix file. # Usage: dic_combine source1.dic source2.dic [source3.dic...] > combined.dic TEMPFILE=`mktemp` cat $@ | sort unique | sed -r 's|^[0123456789]*$||;/^$/d' > $TEMPFILE cat $TEMPFILE | wc -l cat $TEMPFILE rm -f $TEMPFILE rm -f $TEMPFILE
因此,您必须将这些字典文件放在一个目录中并运行:
$ dic_combine en_US.dic en_GB.dic > en.dic
@Mass17这其实是不对的。表达式
"en_US" and "en_UK"
是对结果为"en_UK"
的两个字符串的逻辑“与”运算。在上面的表达式中AND运算符是如何工作的:(1)首先,任何非空字符串都被认为是True
,(2)如果左字符串为True,则检查并返回右字符串。阅读Python的short-circuit评估,了解它为什么会这样工作。你知道吗所以:
请注意,如果您切换字符串的顺序:
单词“materialise”和“materialize”都出现在
"en_UK"
字典中,因此您得到了结果。你还没有把这两本字典“组合”起来。你知道吗对于拼写词典,如果两个词典共享相同的
.aff
文件,并且我假设en_US
和en_GB
传递该条件,则有一个解决方法。你知道吗作者是Sergey Kurakin,Bash脚本是(
dic_combine.sh
),如下所示:因此,您必须将这些字典文件放在一个目录中并运行:
相关问题 更多 >
编程相关推荐