概要
英単語や英文のデッキを作ろうと思うと、英単語の意味がほしいと思うことがありますので、その方法の紹介です。
対象者
Anki初級 | Anki中級 | Anki上級
Anki に一括して意味を取り込みたい人向けです。本ページのタイトルは「Anki に英単語の意味を入れる」となっていますが、正確には英単語の意味を一括で取得する方法です(そんな文字列で探す人いないような?と思ったのでタイトルを微妙に変えています)。
Ankiへのインポートについては、このページではふれていません。
手順
方法1 表計算ソフトと辞書系サイトが提供するAPIを使う
表計算ソフト上でAPI使って辞書サイトから設定する方法です。
APIは、Application Programming Interfaceの略で、サービス間をつなぐインタフェースです。解説してくれてるサイトたくさんありますので、APIが何か?という方は一旦検索エンジン等で確認してから戻ってきてくださいませ。
APIはプログラムから使ったりしますが、表計算ソフトでも関数が提供されて簡単に使えるようになっています。
大枠の流れ
- 辞書系でAPI提供してるサイトを調べる
- 対応言語を調べる(英和がほしければ英和のデータが提供されてるか確認)
- APIで取得できる項目、返却データの形式を確認する
- 料金を確認する(無料枠や有料枠など、リクエスト数に応じて)
- リクエスト数に関する制限を確認する
- APIの利用に登録が必要な場合は登録をする。登録不要のところもあります
- APIの使い方を理解して、表計算ソフトから参照させる。表計算ソフトには、大体API用の関数があるので、それを利用します
ここまで読んで難しそうと感じた方、読み進めていくと、利用が簡単なサイト Excel API (Google Spreadsheets でも利用可) も紹介しています。
APIを使う上での注意事項
APIはサイトから取得するものなので、1度に大量のリクエストを投げないことがお約束です。まず、1回に投げるリクエストの量についてサイト側の利用規約があるか確認しましょう。それを踏まえた上で、1回に投げるリクエストの量をコントロールします。
「サイト側に瞬間的に負荷がかかってしまうこと」と、「利用者は自分だけではないこと」を踏まえて、「他の人が利用できる余地を残して、負荷を分散させよう」という話です。表計算ソフトからなら、数式をコピーして、ペーストするときにリクエストが走るので、1回にコピペするセルの量をコントロールしてください。また、表計算ソフトには再計算という機能があって再計算が走ったりするので、一度取得したデータは「数式」の状態からコピーして「値」で貼り付けしてしまいましょう。
サイト側のキャパシティにもよるので、一概に数値を規定するのが難しいのですが、安全側に倒すなら1回に数百リクエストくらい、次の実行まで1分くらい間をあけるとかがいいと思います。表計算ソフト上なら、数百セルコピペ、次の実行まで1分待つ、あたりが安全圏かな。なお、サイト側で一度のアクセス数が制限されてることも多いです。一定以上投げたときにエラーになるようであれば制限かかっています。制限は大体「規定時間内に○回」とかいう形でかかっています(例えば1分に100回とか)。少ないと数十回とかいうレベルで制限をかけている場合もあります。制限されてるなら制限以下での実行が必要になります。ちなみに、同時実行の制限数は明示的には公開してないことも多いです。公開してないのは、セキュリティ上の理由と考えられます。
API とそのやり方を提供してくれてるサイト
- Excel API
Excel APIさんというサイトがやり方含めてAPIを公開しています。これは簡単です。Excel のみならず、Google Spreadsheets での数式も公開してくれています。
パブリックドメインの無料辞書を使っているようなので、有料辞書ほど詳しくはないでしょうが、APIを少し試そうくらいならここから入ってみてはどうでしょう?リクエスト数には1日あたりの制限があるようですので、そちらの確認をお忘れなく(「当サイト」というページに記載があります)。
このサイトは2021年頃からあるようで、界隈では便利だと有名なようです。今回英単語ですが、他のデータもとれるので、知っておくと役に立ちそうです。
海外の辞書系サイトのAPI
【注意】こちらは私自身が試せておらずやり方までまだかけてないです。そのうち試して追記したいと思っています。
そもそも英語でのサイトになってくるので、英単語知りたい人なのに、サイトを読むのが辛いかも知れませんが…。APIの利用登録をして、使い方を読み解く必要があります。
また、意味のみならず、発音記号や例文なんかも提供されていれば取得できると思います。Excelであれば(関数のみで実行する場合)、XMLで応答を返してくれるサイトかどうかも確認が必要です。
- Cambridge の API
APIは登録制で、英英に加え英和もありそうです。
Cambridge Dictionaries Online API Developer HubCambridge Dictionaries Online Data Licensing Hub - Oxford Learner’s Dictionaries API
APIは登録制で、英英に加え英和もありそうです。
Oxford Learner's Dictionaries API -Oxford Learner's Dictionaries API Oxford Learner's Dictionaries API For developers of internet-connected systems, including both Web and mobile applications, Ox... - Oxford のAPI
APIは登録制で、英和はなく英英でしょうか。
Oxford Dictionaries APIThe Oxford Dictionaries API gives you access to our world-renowned dictionary data, including definitions, translations, synonyms, and audio pronunciations. - Words API
英英だと思うのですが、検索してると引っかかってくるので、メジャーサイトのようです。
WordsAPIAn API for the english language. Definitions, related words, rhymes, and more.
方法2 英辞朗のデータとExcelを使う
Yazuki さんのサイトを参考にして英辞朗のデータを使い、Excelで設定する方法です。私はこの方法を使っています。
APIに比べると手間がかかるほうのやり方ですが、ローカルで完結するのが好きです。データ側に手を加えられるのも考えようによっては便利。
- 古い英辞朗を使うことになる点がちょっとネックです(お使いの環境で動作するかどうかについて、自分で確認が必要です)。
- 英辞朗を入手する場合、中古で十分ですが、添付のCD/DVDがついてることを確認してください。
記事が気にいった人は Yazuki さんのサイトからアフィリエイトリンクを踏んでお買い物でもしてくださいね。(Amazonの場合、直接紹介されてるものではなく、他のものを買っても意味があったりします。還元率とかの詳細はAmazonのアフィリエイトのページでご確認ください)
英辞朗のデータを使う場合の補足
自分でやってみて、些末だけど気にしたほうがよい覚え書きを残します。
- 「=」で始まるセル
辞書上で、ときどきこの単語Aは単語Bと一緒の意味だよ、を示すときに単語Aの意味のところに「=単語B」とだけ書いてあるやつです。
Excelだと、「=」が1文字目にあるセルは、「数式」の解釈になってしまうため、数式ではないのに、数式エラーが表示されてしまうというものです。「=」で始まってるセルをフィルタして、=の前に何か文字をいれておけばOKです。私は半角空白を入れてた気がします。 - 固有名詞を示す単語
固有名詞を示す単語が結構入ってるので、英単語の参照用としていらない人は行を削除するとよいです。これは固有名詞と一般名詞が同じ場合に固有名詞が先に引っかかってしまったりして意味設定の邪魔になるためです。私が前方一致フィルタリングで行削除したものです(これは私が使った英辞朗第7版の場合の例です。他にもあるかも)。【映画】
【人名】
【著作】
【雑誌名】
【組織】
【バンド名】
【商標】
【書名】
【地名】
【TV番組】
【映画-
【著作-
【新聞名】
【曲名】
【国名】
【人名-
【雑誌】
【チーム名】
【地名-
【作品名-
【番組】
方法3 意味は設定せず、都度辞書引くと割り切る
スプリットビューを使い、Ankiと辞書画面を表示させられる場合は両方表示しといて、必要な都度引くのもありだと思います(iOS系の場合、物書堂さんの提供する辞書側でクリップボード検索を設定しておくと便利みたいです)。画面にある程度の大きさがないと同時表示はできないので、タブレット向けでしょうか。スマホでも画面切り替わってもいいという人にはスプリットビュー使わずにできますね。
目的が達成できればなんでもいいはず!