LoginSignup
4

More than 5 years have passed since last update.

posted at

updated at

Visual Studio 2017からPythonで翻訳(Microsoft Translator Text API)

Microsoft Translator Text APIで翻訳するアプリをPythonで開発してみました。
※Microsoft Azureのアカウントが必要になります(携帯電話、クレジットカード要)

環境

Windows 7 Professional SP1 64bit
Visual Studio 2017 Community 15.2 (26430.6)
Python 3.6.0
mstranslator 0.3.2

Azureアカウント作成

Microsoft Azureのサイトからアカウントを作成します。アカウントの作成には携帯電話とクレジットカードが必要になります。
https://azure.microsoft.com/ja-jp

こちらの説明がわかりやすいです。
https://www.ipentec.com/document/document.aspx?page=microsoft-azure-sign-up

最初は無料で色々できますが、無料期間が終了して有料のサービスを残した状態で従量制のサブスクリプションに変更すると課金されるので注意してください。

無料期間が終了してもMicrosoft Translator Text APIを利用するだけなら月200万文字まで無料で利用できるようです。

Microsoft Translator Text API アクセスキーを取得

Azure Portalにサインインします。
https://portal.azure.com/

サインインしたら左のメニューから新規を選択します。
aaa.png

テキストボックスに「Translator Text API」と入力して検索します。
bbb.png

「Translator Text API」が見つかったら選択します。
ccc.png

右にTranslator Text APIの説明が表示されるので作成を選択します。
ddd.png

Translator Text APIを作成します。名前やリソースグループは適当に入力して、価格は無料で利用するのでF0を選択しました。
eee.png

Translator Text APIが作成されると概要が表示されるので「アクセスキーを表示...」を選択します。
fff.png

アクセスキーが表示されるのでメモしてください。今回は「キー1」だけ使います。
ggg.png

プロジェクト作成

新しいプロジェクトから「Python アプリケーション」を作成します。
hhh.png

プロジェクトの仮想環境を作成します。
iii.png

ダイアログが表示されるのでプロジェクトで使うPythonのバージョンを選択して仮想環境を作成します。
jjj.png

mstranslatorパッケージインストール(失敗した手順)

プロジェクトのPython環境から「env (Python 3.6 (64bit))」を右クリックして「Python パッケージのインストール...」を選択します。
kkk.png

テキストボックスに「mstranslator」と入力して、「mstranslator(0.3.2)のインストール」を選択するとパッケージがインストールされ・・・ません。
lll.png

UnicodeDecodeErrorが出て正常にインストールされません。

出力
----- 'mstranslator==0.3.2' をインストールしています -----
Collecting mstranslator==0.3.2
  Using cached mstranslator-0.3.2.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\xxxxxx\AppData\Local\Temp\pip-build-tohptics\mstranslator\setup.py", line 12, in <module>
        long_description=open('README.rst').read() + '\n\n' +
    UnicodeDecodeError: 'cp932' codec can't decode byte 0xef in position 1138: illegal multibyte sequence

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\xxxxxx\AppData\Local\Temp\pip-build-tohptics\mstranslator\
----- 'mstranslator==0.3.2' をインストールできませんでした -----

WindowsでのPython外部モジュール導入のはまりどころ
http://qiita.com/yukinoi/items/1fe023408d3e684da983

この記事にあるようにWindowsの文字コードの問題に対応されていない外部パッケージでエラーになってしまうようです。

mstranslatorパッケージインストール(成功した手順)

mstranslatorパッケージのREADME.rstファイルの文字コードはUTF-8で、Windowsの文字コードはCP932(ShiftJIS)が前提になっているためエラーになってしまうようです。

こうなるとVisual Studioの機能でパッケージをインストールできないので、自分でパッケージをダウンロードしてソースコードをWindowsに対応させてからインストールする必要があります。

こちらから「mstranslator-0.3.2.tar.gz」をダウンロードします。
https://pypi.python.org/pypi/mstranslator

今回はプロジェクトフォルダ下のenvフォルダにダウンロードして解凍しました。

aaa.png

解凍したmstranslator-0.3.2フォルダ内のsetup.pyを以下のように修正します。
これでREADME.rstファイルがUTF-8でオープンされるようになります。

setup.py(修正前)
    long_description=open('README.rst').read() + '\n\n' +
setup.py(修正後)
    long_description=open('README.rst', encoding='utf-8').read() + '\n\n' +

プロジェクトからコマンドプロンプトを開きます。
bbb.png

コマンドプロンプトから以下のコマンドでパッケージをインストールします。

コマンドプロンプト
> cd env\mstranslator-0.3.2
> python setup.py install

env仮想環境にmstranslatorパッケージと依存するパッケージがインストールされます。
ccc.png

このままだと入力補完(インテリセンス)が使えないので解凍したmstranslator-0.3.2フォルダを検索パスに追加します。
ddd.png

検索パスにフォルダが追加されると入力補完(インテリセンス)が使えるようになります。
eee.png

翻訳する

翻訳するプログラムをTranslator.pyに記述します。
ACCESS_KEYに取得したアクセスキーを指定してください。

Translator.py
from mstranslator import Translator

ACCESS_KEY = 'xxxxxxxx'

translator = Translator(ACCESS_KEY)

#日本語から英語に翻訳
print(translator.translate(text='ちゃんと翻訳できるかな?', lang_from='ja', lang_to='en'))

#複数の文を翻訳
print(translator.translate_array(['りんご', 'みかん', 'ぶどう'], lang_from='ja', lang_to='en'))

ちゃんと翻訳されたら完成です。

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
What you can do with signing up
4