如何在你的應用中整合人機問答系統QuestionAnsweringSystem?http://url.cn/PDZAjQ

風的王子發表於2014-08-27

QuestionAnsweringSystem提供了兩種整合方式,以庫的方式嵌入到應用中,以平臺的方式獨立部署。

 

下面說說這兩種方式如何做。

 

1、以庫的方式嵌入到應用中。

 

這種方式只支援Java平臺,可通過Maven依賴將庫加入構建路徑,如下所示:

 

Xml程式碼  收藏程式碼
  1. <dependency>  
  2.     <groupId>org.apdplat</groupId>  
  3.     <artifactId>deep-qa</artifactId>  
  4.     <version>1.1</version>  
  5. </dependency>  

 

在應用如何使用呢?示例程式碼如下:

 

Java程式碼  收藏程式碼
  1. String questionStr = "APDPlat的作者是誰?";  
  2. Question question = SharedQuestionAnsweringSystem.getInstance().answerQuestion(questionStr);  
  3. if (question != null) {  
  4.     List<CandidateAnswer> candidateAnswers = question.getAllCandidateAnswer();  
  5.     int i=1;  
  6.     for(CandidateAnswer candidateAnswer : candidateAnswers){  
  7.         System.out.println((i++)+"、"+candidateAnswer.getAnswer()+":"+candidateAnswer.getScore());  
  8.     }  
  9. }  

 

執行程式後會在當前目錄下生成目錄deep-qa,目錄裡面又有兩個目錄dic和questionTypePatterns。

dic是中文分片語件依賴的詞庫,questionTypePatterns是問題類別分析依賴的模式定義,可根據自己的需要修改。

 

2、以平臺的方式獨立部署。

 

已經在121.40.143.109部署好了,以Json Over HTTP的方式提供服務,使用方法如下所示:

 

呼叫地址:
    http://121.40.143.109/api/ask?n=1&q=APDPlat的作者是誰?
引數:
    n表示需要返回的答案的個數
    q表示問題
編碼:
    UTF-8編碼
返回json:
    [
        {
            "answer": "楊尚川",
            "score": 1
        }
    ]

相關文章