やり方
入力のまちがいから単語を提案する
ローマ字やかなで入力したものから1文字違いのよく使う単語を探します。何も見つからなかった検索のためのものです。
検索は完全一致です。loadWords("arigatuo")では何も見つかりません。suggestWordsは、入力から読みが1文字違いのよく使う単語を返すので、ページは「ありがとうですか?」のように聞けます。
提案を求める
import { suggestWords } from "@johnmorrisdotca/jisho/words";
for (const { word, distance } of await suggestWords("arigatuo")) console.log(word.written, distance);ありがとう 1「1文字違い」とは、文字(かな)が1つ多い、1つ足りない、1つ違う、または隣り合う2つが逆になっていることです。ローマ字の入力はローマ字として読み、文字の違いを探します(nihonngo、ohayou gozaimsu)。かなの入力は、かなの違いを探します(にほんこ)。単語は、完全に一致するもの(distanceが0)が先、次に1文字違いのもの(distanceが1)で、それぞれよく使う順です。limitは件数で、初期値は5、最大20です。検索と同じmode、block、allowを受け取り、セーフモードでは、セーフモードが除く単語は提案されません。
対象
よく使う単語の表(26,014語)を読みます。一度だけ取得し(gzipで約800 kB、フィルターなしならもう1ファイル)、提案するのはよく使う単語だけで、読みでしか探しません。漢字の入力には何も提案しません。漢字は別の漢字から1文字違いではないからです。辞書の見出し語にない活用形(tabemsuに対する食べます)も見つかりません。完全一致で何も見つからなければfindInflectedで辞書形を引き、それでも見つからないときに提案を求めてください。何も見つからなかった検索のためのもので、すべての検索に使うものではありません。
この日本語は、まだ日本語を母語とする方の確認を受けていません。訂正を歓迎します。