読書速度と単語チェッカー
文章を読んでいる時間のうち大半は物理的に眼球を動かす時間に使われているという記事を読んだ。(https://gigazine.net/news/20140228-spritz/)
記事元のTED動画を見ると、速読狂の人が作ったのではなく開発者は実はslow readerで、話し方もゆっくり丁寧で聞きやすかった。
読書時間の8割が眼球移動で、眼球を動かさずに読ませると大体5割読書速度が上がるそう。
と、言うことはTOEICで言われているWPM(words per minute)を200にしろだの300あれば実用的だのと言う話は、実は読解力では無く目の動きで何とかなるんじゃないのか?と思いついたので今日の日記を書いてみた。
既にアプリも開発されている(https://spritz.com/)けれど、今回は自力で作ってみたもので自分の読書速度を計測した。
紹介されているアプリには単に単語を表示するだけでなく、焦点付近の視界にあわせて細かく表示位置を決めているそうだけれどこの機能は難しそうなのでパス。
更に13語以上になると視認しづらくなる(https://en.wikipedia.org/wiki/Eye_movement_in_reading)みたいで、この辺りは表示速度を変えて対処してしまおうと思う。
超高速で認識させるにはブラーとかも必要だと動画で話していたけれど、そもそもスペイン語を超高速で認識出来ないのでこれも無視。
兎に角1語づつ順に表示させるpythonスクリプトを先ずは書いてみた。
(コード:https://github.com/samsumario/blog_public/tree/main/blog_780/simple)
a_word_printer.pyがそのスクリプトで、表示にはtkinterを使いテキストファイルを開いて文字列をリスト化してラベルを書き換えていく処理をしている。
表示が終わったら71-74行でコンソールにアプリで表示した速さと表示にかかった時間を結果として出力しているだけ。
文字のフォントや大きさや色も見やすさに関係しそうなので、スクリプト的には冗長だけれどconf.iniに全部詰め込んだ。
以下はconf.iniの設定値説明。
[Window]項目:windowサイズと背景色の項目だけれど、背景色はラベルに覆われるので意味ないかも。(ウィンドウのタイトルはコードの中。)
[Font]項目:上からフォント名、フォントサイズ、フォントの色、背景カラー。Windowの背景カラーを覆うのでここだけ弄ると色が変わるハズ。
[Threshold]項目:単語の長さに応じて表示時間を変える為の値。この設定値を使ってコード内で5文字以下、5以上7文字以下、7文字以上10文字以下、10文字以上の4つで区分。
[Timer]項目:文字の長さに応じた待ち時間の値。今回は 5文字以下0.4sec、5以上7文字以下0.6sec、7文字以上10文字以下0.8sec、10文字以上1secとそれぞれ待機。単位はmsec。
sample.txtへ表示させたい文章を保存してコマンドラインで実行すると下記のように動作するはず。
python a_word_printer.py sample.txt
調子にのって上記のスクリプトへ、可読性スコアと音節速度、読書中に気になった単語をチェックして最後に出力する機能を付けた多機能版も書いてみた。
(コード:https://github.com/samsumario/blog_public/tree/main/blog_780/additional)
基本的には簡易版のa_word_printer.pyからラベル表示機能をwordPrintFrame.pyへ移して、追加機能はuiFrame.pyで実装するようにした。
(ファイルを分けたせいで同じ処理を2つのファイルでしたりとダメ設計だけれど、今回はこのままで…)
可読性スコアやら音節速度のスクリプトはスペイン語文章の読みやすさを判定するで使ったものをそのまま流用。
conf.iniは簡易版から下記を変更。
[Font]項目:解析情報などを表示する為に小さい文字が欲しかったのでs_sizeを追加。
[Ui]項目:ボタンや解析情報の色を変更する為追加。
ボタンはスタート、ストップ、バック、単語チェックの4個で、単語チェックボタンを押された単語だけ最後にテキストファイルで出力。
出力するファイルはwordPrintFrame.pyの78-84行目辺りでファイル名は年月日+時刻を使って「YYYY-MM-DD@HH_MM_SScheck_list.txt」としています。
Beginner Spanish Readingの18話と19話で先ずは何となく自分の読みやすい速度を調整。
調整前は200wpmぐらいの速度だったけれど、調整すると110wpmぐらいに。おっそい。。。
同じ調整値でスペイン語学習者向けニュースのHola Que Talの「Tu perro conoce tus intenciones」で103wpm。
「El bitcóin usa tanta energía como Pakistán」でも同じく103wpm。
微妙に前後するのは単語の長さで表示時間を変えている為。
最後にスペインで最近話題の電気代高騰記事「¿Por qué España, Italia y Portugal tienen las facturas de luz más caras de Europa?」をgitに上げた設定値ままで読むと読書時間は約10分。
普通のニュースなのに奇跡的に可読性はbastante fácil判定で確かに他の記事よりは読みやすかった。
文章内の1010単語中、分からない単語は47個。
47回も辞書を引くのはしんどいので今度は辞書を一括で引くようなスクリプトが欲しい。。。
取り合えず今回は読書アプリを作ろうとしたら結果単語チェッカーが出来たということで。