2015-11-02 85 views
3

我需要解析非結構化文本並將相關概念轉換爲格式,以便可以合併所有三元組以形成圖。 例如如果我有2個句子像A改進B和B改善C,我應該能夠創建一個圖形,如使用NLP技術從非結構化文本創建簡單的概念圖

A ---> B(改進) B -----> C(改進)。

,稍後如果問這樣有什麼用A的問題,系統應提供一個類似的答案改善B和C.

據我所知,目前對此沒有直接的庫。 我嘗試使用Standford OpenNLP庫進行POS標記,然後進行三元組形成以及它們的組合。然而它導致了很多情況。

這樣做的最好方法是什麼?本體是基於分析的幫助嗎?

回答

2

這是一個有趣的問題....我的最愛之一:)

我做了這樣的事情一次,我參加了一個混合的方法。混合的含義是NLP,其他則是簡單的規則。在我的特殊情況下,我正在根據組織實體(使用NER提取)生成圖形,然後使用動詞短語分類程序(不基於規則和正則表達式)。所以本質上,我在每個句子上都運行了NER,並得到了一些堅實的組織名稱。然後,我在同一個句子上運行句子chunker並解析出動詞短語。然後我用一個簡單的關鍵字 - >概念正則表達式對動詞短語進行分類。我沒有試圖用句子中的每個位置來推斷任何類型的圖形方向性,所以我最終寫了一個三元組{EntityA,EntityB,VerbPhrases [],VerbCategories []}給一個索引。顯然,我必須確保我的組織實體與嘈雜句子中的動詞短語不同​​,並且我認爲句子內的共存足以證明兩個實體之間存在邊界。這只是我做的一個具體的例子,它有缺陷,但實際上它實際上運行得非常好,並啓用了非常強大的搜索。我的方法沒有考慮到相鄰的句子相關性(我使用的數據源一般都有冗長的句子),但我的確考慮使用基於鄰近性的評分技術來指定實際相關的概率,以便將來自附近句子的實體結合起來,可能利用段落邊界以及另一種啓發式來幫助驗證。

有很多方法可以「嘗試」做到這一點,所有這些方法都會以某種方式吸引人,而邊緣案例將會豐富而有趣,它是關於實用主義和您試圖啓用的。事實上,我預測共識解決方案將成爲你的下一個問題(當句子A中的實體在後續句子中被稱爲他或她......等)時,那麼你的下一個問題將是跨文件實體分辨率(DocA中的Bob可能是也可能不是DocB中的Bob)。另外,我非常懷疑任何會產生三重格式的東西,你將不得不使用NER從句子給你的令牌來創建它。

HTH

+0

Beautiful Answer!應該已經投了100倍;) – Yavar