March 5, 2016

[Kindle] 単語帳の整理

TL;DR sqlite3 Kindle/system/vocabulary/vocab.db

Kindleの単語帳機能は,辞書で調べた単語を記録してくれるのでそれ自体は便利だけど,次の2つの点が気に入らなくて不満がたまってきていた.

まず,本当に「なんでも追加してくれてしまう」ところ.Kindle端末のレスポンスの悪さもあってか,ハイライト時に意図せず,格助詞やその他の機能語も追加されてしまうことがよくあった. 1 こうして,単語帳は単語分割が失敗したフレーズに含まれるどうでもいい一般名詞や,機能語で埋め尽くされていく.

こうなると,不要な単語を一括で整理したくなる.が,Kindle端末の単語帳アプリには,登録された単語を一括削除する術が(現時点では)用意されていない.これがふたつめのつらさ. 一つずつ単語をタップし,辞書のポップアップから削除しなければならない.レスポンスの悪さと画面の点滅のせいで,わりとつらい作業になってしまう.

何かいい手は無いかなぁと思って,KindleをMacにマウントして中身にそれらしいファイルがあるかどうか調べてみた. 2

それらしいファイルがあった. Kindle/system/vocabulary 内には vocab.db という sqlite3 のDBが入っていた. ここまでくればあとは何とでも….

$ sqlite3 vocab.db
sqlite> PRAGMA table_info(words);
0|id|TEXT|1||1
1|word|TEXT|0||0
2|stem|TEXT|0||0
3|lang|TEXT|0||0
4|category|INTEGER|0|0|0
5|timestamp|INTEGER|0|0|0
6|profileid|TEXT|0||0

sqlite> SELECT * FROM words WHERE lang = "ja";
ja:しかしながら,本来|しかしながら,本来|しかし‐ながら|ja|0|1451836371172|
ja:ところが|ところが|ところが|ja|0|1451836908962|
ja:如才|如才|じょ‐さい|ja|0|1456149872209|
ja:緋色|緋色|ひ‐いろ|ja|0|1430219728555|

sqlite> DELETE FROM words WHERE lang = "ja";

最後にKindleをUnmountして,再起動させれば単語の削除が反映される.

QoLがちょっとだけ上がった.イェァ!


  1. 日本語の本では,ハイライトやフレーズ選択の操作性があまり良くない.単語分割がうまくできていないからかもしれない. [return]
  2. ハイライトやメモを抽出しようとした時のことを思い出した. [return]

©2011-2018 tuxedocat