今日は以下を学びます:
- 集合農場ではあるが、複数の答えを得る方法
- Yandexトランスレーターをこれに接続する方法
- そして、彼がすべて間違ったことをユーザーに書く方法
API Yandexトランスレーター
Yandexトランスレータには優れたAPIがあり、これを使用します。 ドキュメントを慎重に検討し、戦いに入ります。 しかし、ここではYandexが豚を置きます。
翻訳結果を使用するための要件まあ、私たちは誇りに思う人々ではありません、私たちは生き残ります。
Yandex.Translatorを使用するためのライセンスによれば、 translate.yandex.ruページへのアクティブリンクを含むYandex.Translatorサービスによって翻訳されたテキストは、転送結果の上または下に表示する必要があります。
テキストレイアウトの要件
テキストを指定する必要があります。
ソフトウェア製品の説明内。
ソフトウェア製品のヘルプ
ソフトウェア製品の公式Webサイト。
サービスデータが使用されるすべてのページまたは画面。
仕組み
ユーザーは私たちにメッセージを書き、フレーズをどの言語に翻訳したいかを尋ねます。 テキストの翻訳を依頼し、結果を送信した後。
技術的な実装
APIキーを取得する
このライブラリを使用します
from yandex_translate import YandexTranslate # translate = YandexTranslate(' ')
第1部で説明したように、ロングポールをキックします。
if event.text == '': # "" if event.from_user: vk.messages.send( # user_id=event.user_id, message=' ? .\n : - ru, - en' #C " ? .\n : - ru, - en". ) elif event.from_chat: vk.messages.send( # , chat_id=event.chat_id, message=' ? .\n : - ru, - en' ) flag = 0 # 2- for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text: # trTo = event.text # if event.from_user: vk.messages.send( # user_id=event.user_id, message=' , ' ) elif event.from_chat: vk.messages.send( # , chat_id=event.chat_id, message=' , ' ) for event in longpoll.listen(): if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text: # trNormal = 1 # try: #, trFrom = translate.detect(event.text) # trResult = translate.translate(event.text, trFrom + '-' + trTo) # except Exception as e: # - trNormal = 0 # print("Exception:", e) # pass if trNormal == 1: # if event.from_user: vk.messages.send( # user_id=event.user_id, message=' «.» translate.yandex.ru\n' + str(trResult['text']) ) flag = 1 # 2- break elif event.from_chat: vk.messages.send( # , chat_id=event.chat_id, message=' «.» translate.yandex.ru\n' + str(trResult['text']) ) flag = 1 break if trNormal == 0: # if event.from_user: vk.messages.send( # user_id=event.user_id, message=' ' #.. 99% - , ) flag = 1 # 2- break elif event.from_chat: vk.messages.send( # , chat_id=event.chat_id, message=' ' ) flag = 1 break if flag == 1: # 2- break
例外とは何ですか?
例外-これは、エラーが発生した場合に実行され、そのことを通知するようなものです。 例外を処理するには、try-exceptコンストラクトを使用します。
このコンストラクトなしでコードを実装してみましょう。
-翻訳
-どの言語? 2文字で示します。
例:ロシア語-ru、英語-en
-en
-翻訳したいフレーズを入力してください
-こんにちはHabr
-Yandex.Translatorサービスtranslate.yandex.ruによる翻訳
['Hi Habr']
まあ、それは機能します。なぜあなたの例外が必要なのですか?
しかし、なぜ:
-翻訳
-どの言語? 2文字で示します。
例:ロシア語-ru、英語-en
-アブラカダブラ
-翻訳したいフレーズを入力してください
-こんにちはHabr
...
一方、コンソールでは:
Traceback (most recent call last): File "C:\Py_trash\habrex.py", line 112, in <module> main() File "C:\Py_trash\habrex.py", line 78, in main trResult = translate.translate(event.text, trFrom + '-' + trTo) File "C:\Users\Hukuma\AppData\Local\Programs\Python\Python37-32\lib\site-packages\yandex_translate\__init__.py", line 150, in translate raise YandexTranslateException(status_code) yandex_translate.YandexTranslateException: None
そして例外を除いて:
-翻訳
-どの言語? 2文字で示します。
例:ロシア語-ru、英語-en
-アブラカダブラ
-翻訳したいフレーズを入力してください
-こんにちはHabr
-誤って入力された言語
私は試してみます-構成をより詳細に除いて:
try: #sample code except Exception: #
ウィキペディアAPIの例を示します。
try: result = str(wikipedia.summary(event.text)) except wikipedia.exceptions.PageError: print(' ') except wikipedia.exceptions.DisambiguationError: print('')
ご理解のとおり、いくつかの例外があります。
これで私はあなたに別れを告げます。 最高の