1

Mathematica 8 のDictionaryLookup関数は"English"、デフォルトで言語として使用します。デフォルト言語を"BritishEnglish"またはに設定する方法はありますか"Spanish"?

前もって感謝します。

4

1 に答える 1

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]

{"アドラシオン", "アミノラシオン", "コラボラシオン"}

$dictionaryLanguage =.;

DictionaryLookup["*orac*", 3]

{"コラクル"、"コラクル"、"ホレス"}

呼び出しも の外でルックアップを行うことに注意してください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`"]

次に、コンテキスト名なしでReloadDictionaryandをそのまま使用できます。$Dictionary

于 2012-10-05T10:17:17.200 に答える