2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

英辞郎の単語リストを使って質問してくれるプログラムを作った

Posted at

背景

  • 英語のお勉強の一環で,英辞郎を使ってわからなかった単語や文を登録し続けてましたが,なかなか復習することができてませんでした(怠けたゆえ)
  • 登録した単語はまとめてtsvファイルでエクスポートできるサービスがあったので,なにか使えないかと考えてました
  • ちょうどRustが個人的に面白いと思っていた時期と重なっていたのもあり,実装の練習として単語・文について質問攻めをするプログラムをつくってみようと思い立ちました

プログラム

Github

主な構成

csv_random_picker

  • tsv(csv)の中身を保持する
  • 単語・文と登録日時のペアをランダムに取得できるインターフェースを持つ
  • スクレイピングは規約上よくないかもしれないのでダウンロードしたファイルを使うことにしている

translate_shell_client

  • subprocessを使用して,translate-shellを実行する
  • 文字列を与えて,翻訳結果を得る

main

  • 上記2つのモジュールを組み合わせて実行する
  • 単語・文をランダムに引っ張ってきて質問する
  • エンターを押すと翻訳結果を取得して表示する
  • これの繰り返し

使用している様子

Do you remember what 'give a bad example for' means that searched at 2019-07-25 06:59:56?
Press enter if you want answers.
'give a bad example for'

「悪い例を挙げて」
(`Warui rei o agete')

「'give a bad example for'」の翻訳
[ English -> 日本語 ]

'give a bad example for'
    「悪い例を挙げて」, 「の悪い例を与えます」


Do you remember what 'ironic' means you searched at 2019-02-05 07:26:18?
Press enter if you want answers.
'ironic'
/īˈränik/

「アイロニック」
(`Aironikku')

'ironic' の定義
[ English -> 日本語 ]

形容詞
    アイロニカル
        ironical, ironic
    皮肉な
        ironical, ironic

'ironic'
    「アイロニック」, 「皮肉」
.
.
.
.

感想

英語勉強ツールとして

  • わからなかった単語・文は自身の弱点なので立ち向かうのは結構大変ですね(正答率はかなり低め)
  • でも大きいはず...と信じます(笑)

Rustの練習問題として

  • TheBookはある程度こなした上で望んでみましたが,やっぱりコンパイラに作法を叩き込まれまくってます
  • これはある程度慣れが必要だと感じます
  • 実装に詰まったときに,ドキュメントがかなり役に立ってます.
  • 言語としては,ミュータブル変数が目立ちやすい仕様になってますので,バグりやすそうなところも目立ちそうだなと思ってます.
  • 勉強してて楽しい言語ですので,引き続きTheBookのお世話になります.
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?