re:annkara

日々学んだことを書き留めておく。

Web APIを利用して簡単な英和辞書機能を実装してみた。

プログラミングの学習をしていると、どうしても英文を読まないといけないときがあって、 分からない単語にぶつかる度に検索するのが面倒だった。
なので、あらかじめ英文を用意してそこに含まれる単語の訳を一覧にできないかと思ってちょっと作ってみた。
結果から言うと、その機能は断念した。

#! /usr/bin/python
# -*- coding: utf-8 -*-

import urllib2, json

def translate(phrase):

    from_ = "en"
    dest_ = "ja"

    api_url = \
      "https://glosbe.com/gapi/translate?from={0}&dest={1}&format=json&phrase={2}&pretty=true".format(from_, dest_, phrase)

    res = urllib2.urlopen(api_url)

    # この段階ではまだ文字列形式なので、
    # json.loadsメソッドで辞書型へと変換する。
    js_data = res.read()
    js_dict = json.loads(js_data)

    result = {}
    temp = []
    tuc = js_dict['tuc']
    for i in range(len(tuc)):
        try:
            temp.append(js_dict['tuc'][i]['phrase']['text'])
        except KeyError:
            continue

    result = {phrase:temp}
    return result

if __name__ == "__main__":

    result = translate("apple")

    for _, v in result.items():
        for val in v:
            print val.encode('utf-8')

jsonのパースのとことか、検索単語を直で扱っているあたりとか、いろいろあれだけどとりあえず訳はでる。

本当だったら、入力された英文を単語毎にまとめて訳を出力しようと思っていたのだけど、 Web APIを利用させてもらっている手前一単語ずつアクセスするのが憚られたので、それは断念した。
予め自分の知らなそうな単語だけをピックアップして、その単語だけ検索かけるみたいなこととかできればなと。
もしくは、時間を空けて断続的なアクセスをするようにするとか。
そこら辺の作法的な部分も抑えておかないと。

参考にさせていただいたサイト
英単語の日本語訳をプログラム内やターミナル内で取得する - roombaの日記

利用させて頂いたAPI

Online dictionary

glosbe.com

本当に簡単な機能だけど、Web APIの使い方や(めたんこ下手だけど)jsonのパースとか Pythonの構文を学ぶだけじゃやらないようなことを学べて楽しかった。
合わせて、Pythonエンジニア養成読本でbottleを使ったWebアプリケーションの作成もやってみたので、 ちょっとずつだけど、いろいろなことを出来るようになってきた気がする。
それでもまだまだ全然知らないことばかりだし、全然へっぽこだけど。

年明け前からずっといろいろとやってきたけど、やっぱり継続することが大事なんだと思う。
毎日ほんの少しずつでも、何かしらをやってみて、それが知らないうちに自分の知識や経験になっているのだと。

へっぽこだけどへっぽこじゃなくなるために、これからも続けていく所存であります。