介绍
让我们使用Slack上的Watson语言翻译器制作翻译机器人。
假设您加入了一个不会说日语的跨国团队,那么您就可以跟上Slack上的对话!将多语言解释器作为机器人。
在这里,我们将使用三种语言:日语,英语和德语。
使它成为一个始终像口译员一样翻译您的言论的机器人。
<表格>
tr>
header>
<身体>
tr>
tr>
tr>
tbody>
table>
环境
操作系统:Windows 10
机器人程序:Python3-slackbot库
在哪里制作机器人:松弛
转换器:Watson-语言转换器
机器人程序留在这里。
https://github.com/kg1-thub/bot.git
翻译使用Watson API。
IBM Cloud Lite计划可免费使用某些功能,包括Language Translator。
这是一篇有关Watson API服务入门的文章。
[启动AI]尝试在Python(语言翻译器)中使用Watson API
提前准备
在Slack上创建漫游器并获取API令牌
首先,在Slack中创建一个机器人,并获取API密钥以连接到Python程序。
从下面的链接创建一个机器人。创建机器人需要Slack工作区的管理员权限。
创建Slack机器人
单击此链接移至以下屏幕。
在此屏幕上输入您的用户名(机器人名称),然后按"添加机器人集成"按钮。
可以在下一个屏幕上设置机器人在Slack上的显示名称。
单击"添加机器人集成"按钮以移至以下机器人设置屏幕。
是的,我们不要使用API??令牌。
我将在稍后用Python创建的程序中指定它。
之后,可以在同一设置屏幕的"全名"项中指定机器人的松弛状态下的显示名称。
本文中创建的解释器机器人的名称将为" Watson Translator"。
这是机器人的图像。
接下来,我们将构成机器人内容。
创建一个机器人程序
这是Bot程序内容的描述。
关于如何实现多语言翻译的思考
在
机器人程序的程序中使用Watson API,并使用Language Translator对其进行翻译。
语言翻译器模型注意事项
在这里,您需要注意日语-德语翻译。
语言翻译器具有用于翻译的语言和域的模型。
例如
?将日文翻译成英文的新闻领域模型
从英语翻译为西班牙语的会话域模型
它是定义这种翻译语言的模型。
您无法在没有模型的语言之间进行翻译。
在创建语言翻译器服务时,日语,德语和英语之间的模型的存在状态如下。 1
<表格>
tr>
header>
<身体>
tr>
tr>
tr>
tbody>
table>
没有在日语和德语之间直接翻译的模型。
不带模型的语言之间的翻译措施
我想知道是否应该制作模型 2但是,我想暂时使它工作而不花费时间和精力,所以
在这里,我们将以英语为中心,并将英语翻译成德语或日语。
<表格>
tr>
header>
<身体>
tr>
tr>
tr>
tr>
tr>
tr>
tbody>
table>
Python编程
chatbot程序使用Python的slackbot库。
我指的是slackbot的介绍和用法。
使用Python的slackbot库
创建一个Slack机器人
如果您保持Python程序运行,该机器人将响应您在Slack上所说的内容。
文件结构
文件结构如下。
1 2 3 4 5 6 | slackbot ├─ run.py ├─ slackbot_settings.py └─ plugins ├─ __init__.py └─ translator.py |
py文件的内容
描述每个py文件的内容。
run.py
通过执行此程序,可以启动bot程序。
运行
1 2 3 4 5 6 7 8 9 10 11 | # coding: utf-8 from slackbot.bot import Bot def main(): bot = Bot() bot.run() if __name__ == "__main__": print('start slackbot') main() |
slackbot_settings.py
机器人设置程序。
对于API_TOKEN,指定在Slack上创建漫游器时编号的API令牌。
slackbot_settings.py
1 2 3 4 5 6 7 8 9 10 | # coding: utf-8 # Slack-botのAPIトークンを指定 API_TOKEN = "{{ API_Token }}" # このbot宛のメッセージで、どの応答にも当てはまらない場合の応答文字列 DEFAULT_REPLY = "ちょっと何言ってるかよくわかんないです" # プラグインスクリプトを置いてあるサブディレクトリ名のリスト PLUGINS = ['plugins'] |
__init __。py
一个空文件可以。
translator.py
这是解释器机器人程序内容(运动)的核心程序。
解释器机器人的移动如下。
听所有评论
一,言论的语言识别
然后翻译并发送
翻译器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | # coding: utf-8 from slackbot.bot import listen_to # チャネル内発言で反応するデコーダ from watson_developer_cloud import LanguageTranslatorV2 as LanguageTranslator language_translator = LanguageTranslator( username = '{{ username }}', password = '{{ password }}' ) @listen_to(r'.+') # すべての発言をリッスンする。正規表現。 def listen_func(message): text = message.body['text'] # メッセージを取り出す language = language_translator.identify(text) source = language['languages'][0]['language'] # 言語識別 if source not in ['ja','de'] : source = 'en' target1 = 'ja' target2 = 'de' msg1 = language_translator.translate( text=text, source=source, target=target1) msg2 = language_translator.translate( text=text, source=source, target=target2) else : if source == 'ja': target1 = 'en' target2 = 'de' elif source == 'de': target1 = 'en' target2 = 'ja' msg1 = language_translator.translate( text=text, source=source, target=target1) msg2 = language_translator.translate( text=msg1, source=target1, target=target2) message.send(msg1) # target1への翻訳結果をsend message.send(msg2) # target2への翻訳結果をsend |
省略了
参数含义的解释。请阅读API参考。
就这样。
尝试使用
以下是使用
机器人的三个步骤。
1.(松弛)确定使用解释器程序的通道,让我们使解释器程序兼职工作并属于该通道。
2.(本地PC)让我们启动python程序。
1 2 | $ cd slackbot $ python run.py |
3.(松弛),让我们在解释器bot所属的Channel上讲话。
执行示例
在下面的示例中,将以3个角色(日语/英语/德语)发送每个人。
" Watson Translator-kun"是一个口译机器人。
我不确定德语翻译的意思是否正确。 ..但这有效!
结论
只需结合使用在Python中发布的库和服务(Watson,Slack)的组合,
我能够轻松地形成一个聊天机器人,根据输入内容说话。
这次我使用了一个解释器机器人,但是似乎我可以通过将其与其他Watson功能和其他AI服务结合起来,自己制作各种聊天机器人。
语言转换器的列表模型的API来检查模型信息。 Watson API参考-语言翻译器-列表模型?
您可以使用称为Langage Translator的create model的API创建模型。 Watson API参考-语言转换器-创建模型?