こんにちは、パダワンです。今回は、3記事目にして最強のアドオンを紹介しようと思います。語学学習を目的としてAnkiを使用している人にとっては、便利すぎてびっくらこくと思います笑。今回紹介するのは、できれば、人に教えたくないアドオンです。それから、使いすぎると別の意味でヤバいので注意してください。
目次
1. Fast Word Queryとは?
このアドオンを一言で、要約すると、辞書スクレイピングツールです。
ウェブスクレイピング(英: Web scraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。ウェブ・クローラー[1]あるいはウェブ・スパイダー[2]とも呼ばれる。ウェブスクレイピング – Wikipediaより引用
This addon is developed to emancipate you from the tedious work of looking up words in dictionary and pasting the explanations to anki.
Querying Words and Making Cards, IMMEDIATELY!
Support querying in mdx and stardict dictionaries
Support querying in web dictionaries (having provided many ones, and more others need to be customized)
FastWordQueryマニュアルより引用
様々なWeb上のオンライン辞書とローカルの環境にある辞書をマルチスレッドでスクレイピングすることによって、Ankiカードを簡単に生成することが可能です。
一つのフィールドに単語だけ書いたカードを例えば、100枚作成したとします。その100枚のカードを選択し、Anki上で FastWordQueryを起動させスクレイピングを行うと、数秒で単語の語義や発音記号等、様々な情報をWebサイト、パソコン上の辞書から取ってきてAnkiのフィールド上にかきこんでくれます。
あなたがやるべきことは単語を書き込むだけです。
ね、やばいでしょう?
ライバルには教えないでください笑。
そもそも、これがあまり知られてないのが不思議なのですが、皆教えたくないのだと思います。
ただし、注意点があります。スクレイピング行為をやりすぎてサーバーを落としたりすると、訴えられたり、逮捕されたりする可能性があるので一度に大量のスクレイピングをやりすぎないようにしてください。SVL等をやっている方は、ローカルの辞書からスクレイピングする場合はいいですが、1万2000語をオンライン辞書から一気にスクレイピングしないでくださいね。用法、用量を守ってお使いください。
2. 具体的な使い方
このアドオンの開発者の人はどうやら中国の方らしいので、中国語が多めな感じになってます。日本人にとっては少し使いづらいかもしれませんが、Anki使いはそんなことで屈してはいけません。英語でも説明されている部分は多いですし、Google翻訳等を活用して攻略していきましょう。
では、具体的な使い方を説明していきます。
2-1. 基本編
僕は、例文やソースとなる文章を必ず書くようにしているので、あまり使いませんが、エクセルやNumbers、Googleスプレッドシート等で単語をリストで書くのが簡単かもしれません。
(後で、パダワン的な使い方を紹介します。)
例として、Ankiユーザーに人気なSVLでやってみましょう。
SVL12000 Level 12 全単語リスト|英単語・英文法|アルク

ここにのっている、単語のA列の開始から20個の単語を試しにやってみます。
Youtubeでデモ動画を作成しました。
Googlスプレッドシートでリストでを作成してからAnkiにインポートまでは4倍速でお送りします。
基本的には、スクレイピングしたいカードを選択して、Query Selectedをクリックするだけです。

2-2. 基本設定
設定画面では、単語の書かれているフィールドに関してチェックする必要があります。デフォルトでは、一番最初のフィールドがチェックされているので、最初のフィールドに単語が書かれていれば問題ないです。



自分の好きなノートタイプでスクレイピングできます。動画内では、Basic(optional reversed card)に発音記号用のフィールドを追加しただけなので、合計で4つのフィールドしかありません。
また、ノートタイプごとにconfigを設定できますので、様々な設定を作ることができます。
動画では、Longman Dictionary of Contemporary English | LDOCEを使用しています。Longmanで取得できる情報は、次のような選択肢があります。

POSは品詞(Part of Speech)、Inflectionsは屈折(動詞などの形態変化)
Cambridgeでは、このようになっています。

デフォルト状態で選択できる辞書は、結構あります。

ここに無い辞書は、自分自身で設定する必要がありますが、難易度が高いかもしれません。
また、自身のパソコンのローカル環境にある辞書(.dict形式)やStarDict等でスクレイピングを行えます。この項目に関しては、公式のドキュメントを読んでください。
FastWordQuery/README.md at master · sth2018/FastWordQuery
finalion/WordQuery: word fast-querying addon for anki


macOSにデフォルトでついている、辞書.appを使いできるか少し調べて見ましたが、わかりませんでした。設定できた方がいたら連絡ください。
また、辞書の詳細設定にアクセスできます。使用しない辞書に関しては、チェックを外しておいてください。


デフォルトでないWeb上のオンライン辞書を新規で追加する方法は、このアドオンのベースとなった、WordQueryのドキュメントに書いてあります。
finalion/WordQuery: word fast-querying addon for anki
Pythonファイルを書く必要があるので、難易度高めです。

/Users/UserName/Library/Application Support/Anki2/addon21/1807206748/service/dict
このパスのディレクトリまでアクセスして、このディレクトリ上にあるlongman.pyのようなpythonファイルを自分自身でここに書いて追加してください。

2-2. 個人的におすすめな使い方
ここからは個人的におすすめな使い方を紹介します。ここでは、例として、1100 Words You Need to Know を使います。
1100 Words You Need to Know では、一つのセクションごとで短い文章の中に学習する単語が5つ散りばめられています。今回は、その5つの単語を Fast Word Query を使って、高速でAnki化したいと思います。
僕はKindle版を持っているので、例文をそのままコピペします。

個人的なおすすめ使用方法は、単語を一気にスクレイピングするのではなく、カードを追加する段階でスクレイピングします。
そして、Advanced note editor (Multi-column, Frozen fields, LaTeX’s result in editor)を使用して、いちいちソースとなる文章を何回もコピペすることなく、カードを生成します。
単語によっては、辞書に無い場合や、Bingを使って画像をスクレイピングしたときに全く関係のない画像を拾ってくることもあるので、結局、単語を一つずつ追加する段階でスクレイピングをしたほうが良いです。
こちらもYoutubeにて動画を作成したのでご覧ください。
3. レイアウト崩れの問題
3-1. スクレイピング後、レイアウトが崩れる
Longmanを使用した場合、デフォルトの状態では、カードの編集画面でレイアウトが崩れることがあります。(他の辞書を使用しても、崩れる可能性がある)

左の画面では、編集画面が崩れていることがわかります。これの何が問題かというと、モバイル版での編集の画面で大きく画面が崩れる可能性があります。なので、なるべく改善したほうがよいです。
スクレイピングする際にフィールドの内部に余計なHMTLが紛れ込んでしまっているのが原因です。Longmanでスクレイピングした場合のDefinitionに関するフィールドをHTMLエディタでみてみると、最初にリンクでcssファイルを読み込んでいます。

<link href="_longman.css" rel="stylesheet" type="text/css">
スクレイピングでは、オンライン辞書上から直接HTMLデータを拾ってくるので、その表現用にアドオンが提供してくれているCSSファイルでレンダリングしているようです。フィールドに望ましくないデータが入り込むとAnkiの編集画面でレンダリングが崩れます。
ということで、_longman.cssを編集する必要がでてきます。このデータは、画像や音声などのデータを保存している場所と同じディレクトリに存在しています。
ファイル先頭に(_)がついているのは、Ankiが間違ってコレクションからファイルを消去しないようにしています。
/Users/UserName/Library/Application Support/Anki2/ProfileName/collection.mdeia/
ここに、様々なメデイアファイルが格納されています。該当の_longman.cssも存在しています。しかし、こいつをいじっても意味がありません。スクレイピングの際に、逐一別のところから、_longman.cssをこのディレクトリにインポートしているからです。
治すべきファイルの場所は、次のディレクトリにあります。(データをいじる前に、必ずAnkiを終了してください。Ankiを開いた状態でAnkiのファイルにアクセスするのは絶対にしないように気をつけてください。)
/Users/UserName/Library/Application Support/Anki2/addon21/1807206748/service/static

ここに、すべての辞書のcssファイルが存在していますので、Longman以外でもレイアウト崩れの問題が起きた場合は、ここにあるファイルをいじるようにしてください。
3-2. _longman.cssを書き換える
肝心のcssファイルをどのように書き換えればよいかというと、ある部分を消去するだけで良いです。消去する前に、適当な場所にオリジナルのファイルをバックアップとして複製しておいてください(デスクトップとかでいいです。)
また、しつこいですが、ファイルにアクセスする前にAnkiを終了してください。

ファイルを開けてみると、こんな感じになっています。ちなみに、ファイルを開ける際にmacやwindowsのデフォルトのメモアプリでもよいですが、シンタックスハイライトなどをしてくれないので何かしらのテキストエディタを使用することをおすすめします。僕の場合は、Atomを使用しています。
消去するファイルの場所は、
デフォルト状態での19行目から41行目の次の箇所です。
*{
box-sizing: border-box;
-o-box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border: none;
margin: 0;
padding: 0;
line-height:1.5em;
}
html, body{
height:100%;
}
body{
background:#fff;
font-family: arial, helvetica, sans-serif;
color:#333333;
flex-direction:column;
min-height:100%;
overflow-y:scroll;
}
冒頭部分に書いてある Semantic UI (冒頭から41行目まで)に関しても個人的には別にいらないので消してもいいかもしれません。

頭から消しちゃってください。消去したら保存してファイルを閉じてください。
以上で_longman.cssの書き換えは終了です。これでレイアウトは正常になります。
4. 謎の辞書
ちなみに、開発が中国出身の方々らしいので、中国人向けに様々な辞書が容易されていました。僕もあまり知らなかったので調べてみました。
- 中国では辞書ファイルmdxを使った電子辞書が一般的?
- StarDict
- GoldenDict を使ってみる (1): ISLE D’AVALON
- ANKI単語クエリとGoldenDict(インサイダーのみ)_Beep Beep(゜-゜)つロ乾杯〜-bilibili
StardictやGoldenDictは日本人でも使用できそうで便利です。中国の動画サイトbilibiliにGoldenDictとFastWordQueryを併用しているっぽい動画があるので、興味があれば見てみてください。僕は、中国語がわからないので、途中で見るのをやめました笑。
以上、Ankiによる語学学習において最強のアドオン「FastWordQuery」を紹介しました。
設定等、やや難易度の高い部分もありますが、基本的な使い方ならば問題はないです。新規でオンラインの辞書等を追加しようと考えている方は、Pythonファイルを書く必要があるので注意してください。(もしかしたら、今後新規で追加する具体的な方法について記事を書くかもしれません。)
またこのアドオンは、使いすぎると逮捕される危険な代物なので用量、用法を守った上でお使いください笑。
ライバルに教えたくないアドオンNo.1ですが、是非シェアよろしくお願いします。