簡體   English   中英

如何在Python中使用AIML

[英]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因為它可以處理NLTKhttp://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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM