[英]How to use AIML with Python
我想將python
腳本集成到我用pandorabot
編寫的aiml
。
我知道您可以使用javascript
標記aiml
語法,但是我沒有在python
上找到任何文檔,但以下文檔除外,該文檔使用<oob>
(越界)標簽在后台運行服務:
<oob>
<mrl>
<service>python</service>
<method>exec</method>
<param>myfuction()<param>
</mrl>
</oob>
<mrl>
標簽代表myrobot lab ,它是program-ab
一部分,它是用於實際機器人的java framework
。
但是我只想在網絡上使用我的app
...
我還遇到了pyAiml
,但是到目前為止,我還沒有看到它如何幫助我實現目標。
我的目標 :
我想使用python
因為它可以處理NLTK
( http://www.nltk.org/ ),這是一個處理巨大文學語料庫的自然語言工具包,我想將此庫集成到我的機器人功能中。
可以說我有一個<pattern>PYTHON</pattern>
,它將運行一個python腳本。
該腳本將import nltk
(及其語料庫),將AIML patterns
或“問題”鏈接到PYTHON templates
或“答案”嗎?
關於如何實現這一目標的任何線索? 提前謝謝了。
雖然我沒有與pandorabots結合使用python的經驗,但是我確實使用過php,這是我從概念上提出的。 目標是相似的,但就我而言,我需要為外部api的pandorabot響應添加信息,以下是我所做的:
我使用符號/定界符來
1.標記需要修改的響應。
2.使用定界符將響應分為需要修改的部分和不需要的部分。
3.在我的情況下,可修改部分是php函數調用,其中函數已經預先定義。
4.然后,我將api的響應與未修改的bot響應結合起來,並將其呈現給客戶端。
最終輸出是,我基本上能夠將對目標的響應轉換為php調用。
例:
在我的情況下,我在響應的開頭使用“#”將響應標記為可修改。我使用“%”標記要修改的段的開頭和結尾,並使用“,”分隔函數調用和參數。
因此,存儲的aiml響應如下所示:
<template>#Response to be modified %method call,param1% continued response.</template>
算法
So for every response,check if it contains a # at the beginning,
If it does, remove the # (for php I used substr ($response,1) )
Extract the function call (for php I used explode($str, '%') )
Process function call.
我相信您可以使用類似的邏輯來提取查詢並將其發送到nltk。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.