- 作者: 南出康世
- 出版社/メーカー: 大修館書店
- 発売日: 2014/12/17
- メディア: 単行本
- この商品を含むブログ (4件) を見る
目次
はじめに
急にPythonで英語と日本語の単語を
変換するツールが欲しくなったので、
作りました。
英語⇔日本語を変換できるPythonスクリプト
下記の記事を参考にしました。
上記のコードを改良し、
translate関数の引数を
英語 or 日本語に自動判定して、
自動的にもう一方の単語に変換するようにしました。
Web APIを使うためインターネットに繋がっている必要があります。
#! /usr/bin/python # -*- coding: utf-8 -*- import urllib2, json, sys import unicodedata def translate(phrase): # Glosbe API により、引数に与えられた単語の翻訳を取得 if is_japanese(phrase): from_lang = u"ja"# English dest_lang = u"en"# Japanese else: from_lang = u"en"# English dest_lang = u"ja"# Japanese url = u"https://glosbe.com/gapi/translate?from=" \ + from_lang + u"&dest=" + dest_lang \ + u"&format=json&phrase=" + phrase + u"&pretty=true" response = urllib2.urlopen(url.encode("utf-8")) json_data = response.read() json_dict = json.loads(json_data) return_txt = "" # これを返り値にする tuc = json_dict["tuc"]# tuc: list for i in range(len(tuc)): if u"phrase" in tuc[i].keys(): return_txt += tuc[i]["phrase"]["text"] + "," return return_txt def is_japanese(string): for ch in string: name = unicodedata.name(ch) if "CJK UNIFIED" in name \ or "HIRAGANA" in name \ or "KATAKANA" in name: return True return False # Main関数 if __name__ == '__main__': # コマンドライン引数を取得 (sysをimportしておく必要あり) argvs = sys.argv argc = len(argvs) if argc == 2: # 使用法が守られていた場合、コマンドライン引数の値をphraseに代入 phrase=sys.argv[1].decode('utf-8') else: # 使い方を教える print "Usage: python translate.py 'word'" phrase = "" if phrase: phrase_jp = translate(phrase) if phrase_jp:# 翻訳が見つかった場合 print phrase_jp else:# 翻訳が見つからなかった場合 print "Not Found. "
上記のスクリプトを使うと、
日本語を引数から入力すると、
対応する英語が出力され、
その逆も問題なく実行されます。
参考資料
- 作者: 南出康世
- 出版社/メーカー: 大修館書店
- 発売日: 2014/12/17
- メディア: 単行本
- この商品を含むブログ (4件) を見る