2010-01-19 39 views
0

因此,我正在做一個研究,如何從報告中推斷知識(而不是特定的格式),但在預處理後,我應該有一些格式化的數據。零售知識推斷

一個相當基本的推論是: 「零售商有X股票。」和「X是可銷售的」。 - >「零售商銷售X」 我所關注的知識是面向零售領域的,如果可能,我應該在每次迭代時提高其效率。

這是科幻(我的一些朋友認爲是這樣)?我在網上找到的相關資料是「專家系統」,可以找到異常情況,模糊推理系統和一些關於「簡單知識」的咆哮。

你能幫我解決一些問題嗎?我可以在某些研究方向上專注或指導我嗎?

blueomega

回答

1

你寫的東西讓我想起了一個「規則」。像這樣的規則(變量都是標稱的)是所謂的association rule mining的結果。也許這種方法是你應該考慮的方法之一。

您可以使用開源機器學習軟件Weka,或者如果您更喜歡R environment,那麼rattle gui可能會派上用場。

2

你當然不是在談論'科幻',但很多軟件工程師通常接觸到的標準軟件之外。我花了八年的時間建立並使用規則引擎對零售世界中的半結構化數據進行推理。

對數據做推理是一個非常成熟的領域。基本上有與該領域相關的四類問題:

  • 知識獲取(獲得排除了人民的頭頂飛入代碼/規則)
  • 知識表示「KR」(怎麼能代表你的數據&規則)
  • 高效模式匹配(匹配 規則形成一個大的規則集對 大量事實/數據)
  • 推斷/推理(從規則繪製進一步的結論相匹配,即規則觸發多個規則)

知識獲取請看: Ripple Down Rules和決策樹,他們走了很長的路,很容易理解。 另外,廣闊的領域Machine Learning提供了各種從數據中推導出模型的方法。

知識表示看看RDFOwl,並在較小程度上Conceptual Graphs。就表現力而言,RDF & CG大致相當。兩者背後的基本概念是數據的序列化獨立圖(三重)表示。

對於模式匹配,經典算法是Charles Forgy的Rete

爲了推論,有兩種典型策略:Forward chainingbackward chaining。轉發鏈接是在規則集做過這樣的:

數據設置:

Rule 1: If A Then B 
Rule 2: If B Then C 

Facts: A 

執行:

Do { 
    Newfacts = Eval(RuleSet, Facts) 
    Facts = Facts + Newfacts 
} while (NewFacts.Count > 0) 

飼料的數據到這個小算法,會讓你「推斷」 (發現)事實C,來自數據,這要歸功於規則庫。請注意,有很多推理的陷阱,特別是在諸如non-monotonic reasoning之類的事情(不僅僅是添加事實,而是改變或刪除事實,可能引起推論中的矛盾或循環)。

一個簡單而幼稚的方式來獲得某種推斷將使用數據庫並使用連接來匹配事實(語句)。這對某些應用程序來說可能已足夠。當談到推理時,很容易陷入一個複雜的世界,而不是那裏的技術。把事情簡單化。