Mathematica 8的DictionaryLookup
函数默认使用"English"
作为语言。有没有办法将默认语言设置为"BritishEnglish"
或"Spanish"
?
提前致谢。
答案 0 :(得分:2)
似乎没有这方面的选项,但您可以修改DictionaryLookup
的定义以适合您。
我将使用的方法依赖于DownValues的自动排序,并且是为版本7编写的,因此可能需要调整。您可以查看DownValues[DictionaryLookup]
以查看函数是如何编写的,因为它是顶级 Mathematica 代码。
$dictionaryLanguage = "Spanish";
Unprotect[DictionaryLookup];
DictionaryLookup[pat : Except[_List], x___] /;
! TrueQ[$dicLang] && ValueQ[$dictionaryLanguage] :=
Block[{$dicLang = True},
DictionaryLookup[{$dictionaryLanguage, pat}, x]
]
DownValues[DictionaryLookup] =
RotateRight @ DownValues[DictionaryLookup];
Protect[DictionaryLookup];
使用此定义,如果设置$dictionaryLanguage
,则该值将用于该语言。您可以使用$dictionaryLanguage =.
恢复默认行为。例子:
$dictionaryLanguage = "Spanish";
DictionaryLookup["*orac*", 3]
{“adoración”,“aminoración”,“colaboración”}
$dictionaryLanguage =.;
DictionaryLookup["*orac*", 3]
{“coracle”,“coracles”,“Horace”}
知道你也打电话给DictionaryLookup
之外的观察。您可以为这样的语言加载字典:
DataPaclets`Dictionary`ReloadDictionary["Dutch"]
将数据放在DataPaclets`Dictionary`$Dictionary
中。搜索示例:
Pick[#, # ~StringMatchQ~ "*fzand*"] ~Take~ 4 & @ DataPaclets`Dictionary`$Dictionary
{“afzand”,“afzandde”,“afzandden”,“afzanderij”}
等效的DictionaryLookup
查询:
DictionaryLookup[{"Dutch", "*fzand*"}, 4]
{“afzand”,“afzandde”,“afzandden”,“afzanderij”}
如果您经常使用这些工具,则可以在上下文路径中使用:
AppendTo[$ContextPath, "DataPaclets`Dictionary`"]
然后您可以按原样使用ReloadDictionary
和$Dictionary
,而不使用上下文名称。