2012-05-31 91 views
1

您好我在AI做了一個短期課程,我們設計了一個基於AIML和python的聊天機器人。我有一個新的任務來設計某種形式的語義搜索引擎。我希望人們能夠瀏覽數據或搜索問題,並給他們結果。最初它將用於特定主題,例如運輸和地理。從用戶的一些樣本輸入:語義搜索引擎和導航器

  1. 花費會是多少,我從X到Y得到什麼?

    答:你要花費26 $

  2. 多遠是從x Z'

    答:這是25英里

  3. 用戶可以添加facourite路由,以便他們可以簡單地輸入,添加自己喜歡的roAnd那麼用戶將被要求輸入的F路線。

    答:你問添加到您最喜愛的路線的入口?

    用戶:是的。

    答案:請輸入喜歡的路線。

  4. 顯示我的常用路線。

    答:您的共同路線是x,y和z。

所以被搜索的數據可能是特定於用戶的,因此可能必須使用數據庫。有些數據是外部的,可能會啓用Google地圖來查詢距離。有些問題可能只需要聊天機器人的迴應。

那麼我應該怎麼做用戶輸入? Tokenize它,幹掉它,解析它?

我希望的地方使用AIML但文章我讀http://knytetrypper.proboards.com/index.cgi?board=gbot&action=print&thread=285。 AIML說只適合模式匹配。有人請指出正確的方向。我下載了NLTK,它似乎很有用,但我不知道它是否可以按我的要求做。

任何類似項目的文章?

回答

1

這是一個非常難的問題。如果將輸入限制在一個非常小的空間內,它可以做到。在這一點上,儘管你只是使用一個詞彙表,並且對每個可能的查詢都有基本的命令。

有幾種方式查詢類型的區分: 1)解析,並嘗試使用所有信息 2)部分解析/ POS標籤 - 找到動詞 3)機器學習/分類方法,使用POS機的功能,距離,語言/結構像「到」 /「從」

...然後你可以嘗試拉出查詢參數一旦你正確分類查詢。

我會避免做一個解析,直到你很肯定這是 - 什麼樣的查詢的分類方法是最好的第一步,並與NLTK梅辛是非常有用的。

+0

非常感謝您的回覆。所以我會首先嚐試做分類尋找像/從,成本,距離的文字。不過,我的理解是,這隻會給我一個問題的主題,但不是真正的問題,因此我認爲你提到我應該嘗試解析它。所以基本上這個分類就是將搜索空間縮小到一個更加精細的空間? – sqwale