2012-07-17 26 views
1

我遇到了很多問題(在數據分析或AI的廣泛領域)。但是我無法命名它,可能是因爲我沒有正式的CS背景。請原諒,我舉兩個例子:用歧義構建遞歸假設 - 它叫什麼?

想象自然語言解析:

The flower eats the cow. 

你有一個程序,它的每個字,並確定其類型和它們之間的關係。有兩種方法來解釋這句話:

1) flower (substantive) -- eats (verb) --> cow (object) 

使用通常的SVO詞序,或

2) cow (substantive) -- eats (verb) --> flower (object) 

使用更詩意的世界秩序。該方案將排除其他可能性,例如「花」作爲動詞,因爲它遵循「the」。它會排列剩餘的可能性:1)比2更自然的詞序),所以它得到更多的點。但是,包括世界知識,花卉不能吃牛,2)仍然贏。所以它可能會返回兩個假設,並給1)30分,2)70分。

然後,它會記住兩個假設並繼續解析文本,分支。一個分支假設1),一個2)。如果某個分支達到矛盾或者排名爲0,則被丟棄。最後,它再次提出排名假設,但對於整個文本。


對於不同的例子,假設光學字符識別:

**  ** 
    **  ** ***** 
    ** ******* 
******* ** 
* **  ** 
    **  ** 

我可以看看招,說,肯定這是一個「H」。在確定H後,我注意到它周圍有污跡,並給它一個稍差的分數。

或者,我可以先運行我的污跡識別,並注意水平線看起來像一個神器。刪除後,我認識到這是llIl,並給它一些排名。

處理完整個圖像後,可以是Hlumination,llluminationIllumination。使用字典和總排名,我決定這是最後一個。


  • 普遍的問題始終是某種解析/理解。例子:
    • 自然語言或模棱兩可的語言
    • OCR
    • 路徑尋找
    • 不明確或不完整的用戶開關輸入處理 - 這解釋是有意義的,這是最合理的?
  • 我是遞歸的。
  • 它可以提前退出(當一個分支/解釋沒有意義,或最終得分爲0)。所以這可能是某種回溯。
  • 由於含糊不清,它記住了所有選項。
  • 它基於簡單的規則在底部can_eat(cow, flower) = true
  • 它保持解釋的合理性排名。
  • 它在元層次遞歸:它可以派生/分支到不同的'世界',在處理下一部分數據時它假設不同的假設。
  • 它會將個人排名,可能使用貝葉斯概率,轉化爲依賴假設。
  • 實際上,將會有方法來訓練這個東西,確定排名系數,並且如果樹太大,會出現截斷點。

我不知道這叫什麼。人們可能會猜測'決策樹'或'遞歸下降',但我知道這些術語意味着不同的東西。

我知道Prolog可以解決這個簡單的例子,像家譜和找出誰是誰的叔叔。但是你必須在代碼中提供所有的數據,而且對於我的真實生活案例來說,這看起來並不令人信服或者足夠強大。

我想知道,這個問題叫什麼,有沒有處理這個問題的常用策略?關於這個話題有很好的文獻嗎?是否有理想的C(++),Python的庫,你是否可以定義一堆規則,並且排除所有的排名和假設?

回答

0

我不認爲有一個答案符合你所有的要點。但我希望我的鏈接能讓你更接近答案,或者可能會給你一個不同的問題。

我認爲最接近的答案是Bayesian network因爲你必須互相影響我的理解是,它也關係到Conditional probabilityFuzzy Logic

還描述了一下遺傳編程以及人工神經網絡

概率

我可以說出滴些更多的主題,這可能是相關的:

http://en.wikipedia.org/wiki/Rule-based_programming

http://en.wikipedia.org/wiki/Expert_system

http://en.wikipedia.org/wiki/Knowledge_engineering

http://en.wikipedia.org/wiki/Fuzzy_system

http://en.wikipedia.org/wiki/Bayesian_inference

+0

推斷和要概括,並記住含糊供以後analisys,提醒我繹推理的爲好。非單調推理也可能變得有用。知識工程和知識表示也是相關的流行語 - 希望這可以提供很好的搜索條件。 – Ignazio 2013-12-20 15:43:30