我正在使用Chatscript创建一个客户服务机器人。到目前为止,我已经使用德国预构建的机器人作为模板创建了一个自定义机器人,但问题是我无法理解如何添加外语(在我的案例中是希腊语)。我发现的最相关的链接是https://github.com/bwilcox-1234/ChatScript/blob/master/WIKI/ESOTERIC-CHATSCRIPT/ChatScript-Foreign-Languages.md,但这并没有多大帮助。
更具体地说,我在/DICT/GREEK文件夹中放置了一个dictionary txt文件。此外,我在文件夹/LIVEDATA/GEEK中复制了文件systemfacts.txt(我还没有更多的txt)。我还需要更多的材料来支持一门新语言吗?如果是,我需要什么检查?我知道最终也需要POS标记。我有一个带有API的客户POS标记器,但我不知道聊天脚本应该如何与它交互(在什么时候应该打电话,预期会有什么样的响应)。
最后,我如何明确告诉我的机器人使用新语言?我检查了德国机器人作为参考,但我没有发现任何这样的命令。
ChatScript(CS)与外语(而非英语)的集成是可能的,但需要完成以下工作:
- 词典
- 本体论(类wordnet)
- 插话等
我有一个带有API的客户POS标记器,但我不知道如何聊天脚本应该与它交互(此时呼叫应该做出了什么样的响应以及预期的响应)。
您可以通过对外部POS标记器的系统调用来实现这一点,例如:https://github.com/bwilcox-1234/ChatScript/tree/master/RAWDATA/GERMAN
BTW,现在CS预见到与Treetagger的快速集成(需要许可证);但我认为希腊语是不可预见的。
为了显式使用该语言,您需要调用带有language=
标志的ChatScript:
./ChatScript local language=GREEK
为了使代码中的条件块只有在使用该语言标志运行CS时才会被解析,请使用##<<GREEK
和##>>
封装行。像这样:
##<<ENGLISH
Hello
##>>
##<<GREEK
Χαίρετε
##>>
您也可以将这些作为一行代码,有时也可以在模式中间进行,但这可能是非常有气质的,因此我会避免这样做,并尝试相对冗长。还要注意,当您切换语言时,必须使用:build 0
和:build botname
重新构建所有内容
还要注意,条件语言块在构建时被编译到TOPICS
中,而不是在运行时被解释。
乔治奥的回答解释了字典和本体论。目前,还有其他语言,如法语、西班牙语、德语,但没有希腊语。不幸的是,我无法帮助处理生成希腊本体文件的复杂性质。