本文へ移動

Jisho辞書

JMdictの単語を読み、表記、英語の意味、含まれる漢字、ローマ字から引け、必要な小さなチャンクだけを取得します。初期値はセーフモードで、各語義にはJMdictの印が付き、「フィルターなし」も選べます。2,999字の漢字の学年、JLPTレベル、読み、意味、形の似た漢字の組も収め、表ごとに独立したエントリポイントがあります。

「Jisho」は「辞書」のローマ字表記です。日本語の単語と漢字を収めています。 名前について(英語)

目次

やり方

変わった入力と、読み込めないチャンク

引く前に文字列がどう整えられるか、空や変わった入力を検索がどう扱うか、`WordsLoadError`が何を示すかを説明します。

変わった入力と、読み込めないチャンク

文字列は、引く前に整えられます(normalizeTextが行うので、自分で使うこともできます)。NFKCで合成形と互換形がそろい、全角の英数字は半角に、半角かなは全角になります。空白は一つにまとめ、日本語の隣の空白は取り除きます。幅のない文字と制御文字は取り除き、かなの間やかなで終わる位置のダッシュは長音符「ー」にします。ひらがなとカタカナのそろえは従来どおりです。JMdictが全角で書いている表記(1人)は、どちらの書き方でも見つかり、JMdictの書き方で表示されます。

どんな文字列でも、検索は例外を投げません。空の文字列、文字列でないもの、単語としては長すぎるもの(100文字超)は、取得するものがなく、単語もありません。ただし、wordsOfは、読み込んでいない文字列に対しては、呼び出し側の誤りなので、これまでどおりRangeErrorを投げます。

チャンクを取得できないときは、もう一度だけ取得を試み、それも失敗すると、loadWords、loadCommonWords、findByMeaning、wordsWithKanjiはWordsLoadErrorで拒否されます。どのチャンクかが分かり(error.pieceは「the readings piece 12 of 318」のような文字列、error.kindとerror.indexはプログラム向け、error.causeは取得が拒否された理由)、失敗は記憶されないので、もう一度頼めば、また取得を試みます。同時に行われた、同じチャンクへの検索は、一つの取得を共有します。

import {loadWords,WordsLoadError} from "@johnmorrisdotca/jisho/words";
try {
  await loadWords("かみ");
} catch (error) {
  if (error instanceof WordsLoadError) console.log(error.kind,error.index);
}

関連

ソースを見るGitHub で編集@johnmorrisdotca/jisho 2.11.0 のソースから作成しました。

この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。