基於依存句法分析的開放式中文實體關係抽取

2021-08-21 16:56:28 字數 2117 閱讀 5212

這一段時間一直在做知識圖譜,卡在實體關係抽取這裡幾個月了,在github上面看到有人使用卷積神經網路訓練模型進行抽取,自己也嘗試了一下,但是一直苦於沒有像樣資料去訓練,而標註訓練集又太費時間了,我不太願意幹體力活。所以採用了乙個低檔次的方法,基於依存句法分析的實體關係抽取,記錄一下心得,方便日後忘記可以再找回來。

**給出了8種中文關係的表達方式,並且最後給出了乙個採用正規表示式語法指出表達,核心就是謂語動詞表示關係,即關係表述中一定得有動詞。

狀語*動詞+補語?賓語?
我不太贊同把賓語也當作關係表述的一部分,**指出「p4生於山西」應該抽出(p4,山西,生於山西),我認為關係不應該表述為「生於山西」,所以我把關係表述改為下面的樣子了。

狀語*動詞+補語?
這篇文章只是作為乙個方法介紹,我自己先看了一遍,能夠保證我下次看到這篇文章,可以立馬回憶起自己的實現方法,希望你看了也能了解方法,看不懂的話,我表示抱歉,浪費您的時間了,我已經盡可能寫到簡單了。

先來看幾個簡單句子吧:

主謂賓關係:劉小緒 生於 四川

// 這個三元組很明顯:(劉小緒,生於,四川)

動補結構:劉小緒 洗 乾淨 了 衣服

// 如果套用主謂賓關係就是:(劉小緒,洗,衣服)

// 但是這裡描述的是乙個狀態,是劉小緒把衣服洗乾淨了

// 「乾淨」是動詞「洗」的補語,所以還應該提取出乙個如下三元組

// (劉小緒,洗乾淨了,衣服)

狀動結構:父親 非常 喜歡 跑步

// 這句和上面很像,主謂賓關係是:父親喜歡跑步

// 「非常」用於修飾「喜歡」

// (父親,非常喜歡,跑步)

介賓關係:劉小緒 就職 於 學校

// 如果直接把這個三元組抽取為(劉小緒,就職,學校),很彆扭

// 「於」和「學校」是介賓關係,它們的關係應該是:就職於

// (劉小緒,就職於,學校)

賓語前置:海洋 由 水 組成

// 「海洋」是「組成」的前置賓語

// 「由」是「組成」的狀語

// 「水」和「由」是介賓關係

// 所以上面的句子沒有明確的主謂關係,需要我們判斷

// 抽出的三元組應該為:(水,組成,海洋)

hanlp提供了兩種依存句法分析的器,預設採用的是基於神經網路的依存句法分析器。==依存句法分析就是將句子分析成一棵依存句法樹,描述各個詞語之間的依存關係,即指出詞語之間在句法上的搭配關係。==

有了上面所說的依存句法樹,其實我們只需要進行各種判斷就可以了。先做出下面的一點說明,就拿第乙個例子來說。

原文:劉小緒生於四川

# 這是分詞結果

[劉小緒/nr, 生於/v, 四川/ns]

#這是句法分析結果

劉小緒 --(主謂關係)--> 生於

生於 --(核心關係)--> ##核心##

四川 --(動賓關係)--> 生於

為了方便理解,也為了方便程式的編寫,我把他們組織成了下面的形式,為每乙個詞語都建乙個依存句法字典。

劉小緒:{}

生於:四川:{}

然後只需要寫出類似於下面的程式段就可以抽出關係了。

// 主謂賓關係:劉小緒生於四川

// dic是這個詞語的依存句法字典

if (dic.containskey("主謂關係") && dic.containskey("動賓關係"))}}

對於分詞後的每個詞語都進行上面程式段的操作。「劉小緒」和「四川」,關係字典都為空。而對於「生於」,關係列表裡面既有主謂也有動賓,而自己本身就是動詞,主謂賓就出來了。直接從主謂關係中拿出來詞語作為entity1,再拿上自己作為關係,最後拿出動賓關係中的詞語作為entity2。很明確的三元組(劉小緒,生於,四川)就出來了。

最後給出乙個程式執行結果圖吧。

我個人覺得效果還行,在簡單句子上面表現的差強人意,在長句子上面表現的差勁。

參考:hanlp自然語言處理

基於依存分析的開放式中文實體關係抽取方法

命名實體三元組抽取參考自fact_triple_extraction

句法分析 依存句法分析

句法分析是自然語言處理中的關鍵技術之一,其基本任務是確定句子的句法結構或者句子中詞彙之間的依存關係。主要包括兩方面的內容,一是確定語言的語法體系,即對語言中合法的句子的語法結構給與形式化的定義 另一方面是句法分析技術,即根據給定的語法體系,自動推導出句子的句法結構,分析句子所包含的句法單位和這些句法...

依存句法分析 Dependency Parsing

句子的依存結構表達了詞與詞之間的依賴關係,這種關係稱依存關係。它是一種二元的非對稱關係 binary asymmetric relation 從依存關係的支配者head指向從屬者dependent。依存句法分析旨在將輸入的句子轉化成依存分析樹 或圖 依存樹中自上而下任意父子結點之間用依存關係連線。在...

白話NLP 依存句法分析

在依存句法分析中,句子中詞與詞之間存在一種二元不等價關係 主從關係。在句子中,如果乙個詞修飾另乙個詞,則稱修飾詞為從屬詞 dependent 被修飾詞成為支配詞 head 兩者之間的語法關係就是依存關係 dependency relation 如句子 小目標 中的形容詞 小 與名次 夢想 之間的關係...