こんにちは
職場でPythonを使用しています。
Pythonを使うメリットとして
- とにかく速い
- virtualenvで環境にあったPythonが組める
- 大きなボリュームのあるデータを処理するためのアルゴリズムが豊富
- すぐにサーバーを立ち上げられる
などのメリットがありました。
そんなまだPython歴の浅い私がFlaskを使用して自動翻訳を作成しました
まずは準備です
以下のモジュールをインストールします
仮想環境を用意しましょう
$ virtualenv env
仮想環境をアクティブ化します
$ source pyenv/bin/activate
モジュールをインストールします
- Flask
- Flask_Restful
- googletrans
$ pip install flask flask_restful googletrans
プロジェクトを作成します
$ mkdir translator && cd translator && nano translator.py
REST APIを作ります
translator.py
from flask import Flask, render_template, url_for, request, redirect, json,jsonify
from flask_restful import Resource, Api, reqparse
from googletrans import Translator
app = Flask(__name__)
api = Api(app)
class TranslatorSimple(Resource):
def get(self):
pass
def post(self):
pass
api.add_resource(TranslatorSimple, '/translate')
トランスレーターの部分を追加します
translator.py
from flask import Flask, render_template, url_for, request, redirect, json,jsonify
from flask_restful import Resource, Api, reqparse
from googletrans import Translator
app = Flask(__name__)
api = Api(app)
class TranslatorSimple(Resource):
def get(self):
pass
def post(self):
data = request.json
translator = Translator()
keyword = data.get('keyword')
lang = data.get('lang')
if len(data.get('lang')) == 0 or data.get('lang') == None:
lang="en"
t = translator.translate(keyword,lang)
res = {'text':t.text}
return jsonify(res)
api.add_resource(TranslatorSimple, '/translate')
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8000, debug=True)
Pythonを起動して8000番のポートでサーバーをたてます
$ python translator.py
テストしてみます
$ curl -X POST -d '{"keyword":"こんにちは","lang":"en"}' -H 'Content-Type:application/json;charset=UTF-8' http://localhost:8000/translate
結果がこんな感じでかえってきます
$ curl -X POST -d '{"keyword":"こんにちは","lang":"en"}' -H 'Content-Type:application/json;charset=UTF-8' http://localhost:8000/translate
{
"text": "Hello"
}
お疲れ様でした。今回は日本語を英語にしましたが詳しくは以下のドキュメントをご覧ください
他にもいろんな情報をブログで共有させてもらっています。Python関連が中心です。
よろしかったら是非ご覧になってください^^
ご一読ありがとうございます!