そいつぁつらいぜ分室 〜駐在員細田の語学学習〜

ドイツ駐在員細田がドイツで語学を学びます。主に英語とドイツ語の学習記録。本家はこちら→http://o81hosoda.hatenablog.com/

プログラミング初心者がやってみた:Kindleでハイライトした単語をAnki形式ファイルに整形する

こんにちは、細田です。
とりあえず前回のエントリーまででSVLを最後まで終え(たことにして)、次のレベルの単語を覚えることにしています。
SVLより高レベルの単語を単語帳形式でまとめた書籍が、少ないながらも存在していることはこれまでに書いたとおりです。
今回はその中でも、Kindleにデータとして入手可能、かつ頻度(ネイティブ認知度)順にリスト化されている「極限の英単語」を購入し、加工していくことを考えました。

 

 

これまでの自身の暗記法を踏襲して、データをAnki(またはPSS)形式に整形して記憶していこうと思いちょっと調べてみると、
すでにすごい方が「極限の英単語」の単語リストを、英辞郎と対照してAnki形式のテキストファイルに変換するプログラムを公開していらっしゃいました。

uzusayuu.hatenablog.com

つまり、このプログラム(と極限の英単語と英辞郎のデータ)を使えば、自分でSVLを超えるハイクラス英単語のAnkiファイルを作ることができる、というわけです。やったー!!!!!!


が、しかし、問題が一つ。

 

自分はプログラミングのことを何一つ知らない


しかーし!!!英語上達のためならその困難も超えてみせよう!!


ということで今回は、英語学習を目的としてプログラミングの初歩の初歩を学んでみました。


今回の記事は、「極限の英単語」をAnki形式のファイルにするところまでの学習の道筋を記録することで、「KindleのハイライトをAnki形式ファイルに整形できるプログラミング初心者」を増やすことを目的としました。

 

 

(おことわり)
本エントリーでは、初心者が、やったことと起こった現象を中心に記録しています。
僕がやったことを同じ動作環境でやれば同じことはできると思いますが、
それ以外の記述の学術的な正しさは保証できませんし、他の動作環境での再現性を保証するものではありませんので、予めお断りしておきます。すみません。


動作環境:
Macbook Pro(Early 2015) MacOS High Sierra
Python ver3.6.5 Anaconda 3
英辞郎(たぶん)第3版 windows環境下でテキストファイルに書き下し、Macbookに移動
プログラムのソースコードVisual Studio Code にペーストして編集しました。

 

 

初めて学ぶプログラミング言語 〜Pythonを最低限だけ学んであとは成り行きメソッド〜


上述のサイトで公開されているソースコードは、どうやらPythonというプログラミング言語で書かれているようです。
パイソンと読むみたいです。ぴちょんではないみたい。
最初に学ぶ言語としてPythonがよいのかどうなのか素人にはよくわかりませんが、このプログラムを使うためには少なくともPythonを知らないといけないと思います。

さて、とりあえずこういうときにはまず本をあたることにしているので、入門書籍としてなんとなくこれを買いました。

Pythonスタートブック 増補改訂版」

 

少なくともこれを読んで最低限の目的は達成できたので、有益な書籍です。初心者にも概念をわかりやすく説明している(と思う)のでおすすめします。

読んだ部分は、第1章「プログラムを作ろう!」と第2章「プログラムの材料と道具」、そして第3章「データと型のすべて」の冒頭数ページ、のみです。
ここまで読めば、Pythonで書かれたプログラムの動かし方とその動作原理がわかるはずです。実際にプログラムを書くわけではないので、これで十分。エラーに当たらない限りは、プログラムの中身が読めるようになっている必要はありません。

 

事前に準備するもの:

1.プログラムを動かすのに必要なソフト
Python (ver2でもよいが、初心者的には本に準拠してver3をインストールしておきたいところ)
コマンドプロンプト(Windows)かターミナル(Mac)みたいなプログラムを動かすのに使うもの
Visual Studio Code (プログラム作成の際に便利なメモ帳みたいなもの。本に準拠したのでこのソフトを使ったけど、他のソフトでも問題はない。テキストエディタでも代用可ではある)

2.参照する単語リストと、それを作るソフト
Kindle」 PC版 (書籍をハイライトし、PC上で書き出すのに必要)
「極限の英単語」(他の書籍でも、1語からなる[複合語ではない]単語のハイライトに限り同様の手法が適用可能)
英辞郎」の収録単語を抽出したテキストファイル

 

プログラムを動かす下準備 〜環境変数PATHがよくわからない〜

さてPythonをダウンロードしました。こいつを参照してプログラムを動かすためには、予めPythonのありかを認識させる必要があるようです。PATHという名前の環境変数(?)にPythonの所在を記入する手続きが必要になるようです。
未だに環境変数という言葉が今ひとつわかりませんが、まあ要するに「認識してほしいPythonの所在を書き込むところ」です。今回に限って言えば。
細かい方法は本に書いてありますのでここで説明はしません。下記の方法で自動で設定することもできます。


Windows版ではPythonのインストール時に自動設定できるチェックボックスがあるそうなので、初心者は必ずチェックすること。忘れたらアンインストールして改めてインストールすることをおすすめします。
Mac版は、Anacondaという連携ソフトを同時にインストールすると、自動で環境変数を設定してくれます。自力で環境変数を設定することができなかったので、私はAnacondaを入れました。目的のためには手段を選ばない。


無事インストールできたら、本を2章まで読みながら簡単なプログラムを作ってみましょう(グーとチョキとパーからランダムでひとつを選ぶプログラムを作って遊べます)。この過程でプログラムの動かし方がわかるはずです。ここまでが準備段階。

 

 

必要なピースを集める

 

英辞郎」単語のテキストファイル化

下記サイトに詳しいです。まず製品版英辞郎を購入し、PDICと呼ばれる辞書ソフトから詳細検索をかけ、熟語や用例を除いた1語単語とその訳語をテキストファイルとしてエクスポートします。
これから使うプログラムはこの英単語部分を「極限の英単語」のハイライトと比較参照して、直後の訳語を見つけているっぽいです。

uzusayuu.hatenablog.com

「極限の英単語」ハイライト部分のエクスポート

KindleのPC版で「極限の英単語」を起動し、覚えたい単語の英単語部分のみをハイライトしておきます。1冊あたり3000語ありますが、レベルごとに1000語ずつハイライトしていくとのちのち便利です。結構地道で時間のかかる作業なので、これをやっている間に他の方法で覚えられると感じたら、ここで作業を切り上げた方がいいかもしれません。

ハイライトが済んだら、下記サイトを参照してhtmlファイルに書き出します。名前は適当でよいですが、のちのちのタイピングの利便性などを考慮して私は「kyokugenLv13.html」としました。ご参考までに。


作成したhtmlファイルは「英辞郎」のテキストファイルと同じところに格納します。今回使いたいプログラムを使う際は、必要なファイルを同じフォルダに入れておくことが大切です。
参考書に沿ってフォルダを作ると、自分のドキュメント直下あたりに「pyworks」というフォルダを作って作業をすることになるので、初心者の方はすべてのファイル(英辞郎のテキストファイル、htmlファイル、後述のソースコード)を「pyworks」に入れておくとわかりやすくて便利だと思います。


ソースコード

下記ページに記されたソースコードをコピーして、Visual Studio Codeにペーストします。「gen_anki_list.py」が該当のブツです。

github.com

(コピペの際に、最終行のインデントがずれることがありました。どうやらインデントがずれていると違う意味になるっぽいので注意が必要です。参照元とよく比較して、インデント位置がずれていたら調整すること
混乱を防ぐため、参照元と同じファイル名 gen_anki_list.py で保存しましょう。拡張子が.pyになっていることが大事です。これも先程の「pyworks」フォルダに入れておきます。

 

 


プログラムを実行!!!!!

 

ここまでで準備は完了。あとはエラーを吐かないことを願ってプログラムを実行します。
コマンドプロンプト(windows)かターミナル(mac)を開いて、まずはpyworksのあるディレクトリに移動します。
参考書籍を2章まで読んでいればできるはずです。cdコマンドを使って、pyworksに移動するんでしたよね。
そして、pythonコマンドプロンプト上で呼び出して、gen_anki_list.pyを実行します。
具体的なコマンドは参照元に詳しいですが、

python gen_anki_list.py <エクスポートしたハイライト.html> <任意のタイトル.txt> <辞書ファイル.txt>

を書き込みます。
実行させると、<任意のタイトル.txt>が「pyworks」フォルダに生成されます。これがAnkiへインポートできる形式のテキストファイルです。やったー!!


実際の表示

f:id:O81hosoda:20180822094735p:plain

 

作成した英辞郎の元データによっては、見つからない単語もあるようです。
そのような単語はプログラム実行後に xxx not found と表示されるようになっているようです。

 

エラーを返す場合は、順に以下を確認してみてください。
・コマンドのタイプミス(ファイル名の間違い、並べる順序の違い、スペルミスなど)
・テキストファイルの形式
・gen_anki_list.pyをコピペした際のインデントのずれ


Ankiへのインポート

上記サイトに詳しいです。
Ankiのアプリから「Import file」を選び、生成されたファイルを読み込みます。
1番目のフィールドは英単語なのでfrontへ、2番目以降は意味と用例になるのでbackに割り当てましょう。

 

f:id:O81hosoda:20180822094142p:plain


まあ、発音記号とか¥マークとか、ちょっとした問題はありますが、まあ使えるレベルにはなりました。
(たぶん、インポートの設定をいじったりすると解消する問題かもしれませんが、暗記には使えるレベルなのでよしとします)


これで20000語を越す単語を必要度順に暗記できます。やったね!

 


まとめ

ほんっとーに基本的なことだけ学べば、頂いたプログラムを動かすことは可能ということがわかりました。

プログラミング怖くない。

このプログラムを使えば、極限の英単語だけではなく、任意の書籍の(1語英単語の)ハイライトをAnkiファイル化できるので、応用も利きます。

 

この処理を行うことで「極限の英単語」収録の語義が全部潰れてしまうことが非常に心残りですが、あいにく自分でこれを解決する力は持ち合わせておりません。。。それこそ、プログラミングを熟知して解決していく必要がありそうですね。