OpenNRE 2.0:可一键运行的开源关系抽取工具包
OpenNRE(https://github.com/thunlp/OpenNRE.git)是清華大學(xué)自然語言處理實驗室推出的一款開源的神經(jīng)網(wǎng)絡(luò)關(guān)系抽取工具包,包括了多款常用的關(guān)系抽取模型,發(fā)布僅一年即在 Github 上獲得了 1700+ 星標(biāo)。
現(xiàn)在這款工具包已經(jīng)悄悄更新到了 2.0 版本!在原版 TensorFlow 實現(xiàn)的基礎(chǔ)上,不僅采用了現(xiàn)在大熱的 PyTorch 作為基礎(chǔ),設(shè)計了更加模塊化的框架,還囊括了句子級別關(guān)系抽取、遠(yuǎn)監(jiān)督關(guān)系抽取和少次學(xué)習(xí)關(guān)系抽取等豐富設(shè)定,可以說是加量不加價,值得你擁有!
▲?OpenNRE框架圖同時,該工作也以 DEMO Paper 的形式發(fā)表在了 EMNLP 2019 上,這里是 paper 的地址:?
OpenNRE: An Open and Extensible Toolkit for Neural Relation Extractionhttps://arxiv.org/abs/1909.13078
作者在介紹文檔中還寫道,相比于原版主要面對關(guān)系抽取研究者的設(shè)定,新版的 OpenNRE 受眾更加廣泛:
對于初學(xué)者:OpenNRE 提供了詳盡的介紹文檔,可以快速幫助入門
對于開發(fā)者:提供了簡潔易用的 API 和若干預(yù)訓(xùn)練模型,可方便調(diào)用
對于研究者:模塊化設(shè)計、多種任務(wù)設(shè)定、state-of-the-art 模型,可以幫助研究者更快更高效的進(jìn)行探索
想要在 NLP 課上交一份滿意大作業(yè)的同學(xué):這個項目里的模型絕對能讓你的教授眼前一亮
什么是關(guān)系抽取
關(guān)系抽取是自然語言處理當(dāng)中的一項重要任務(wù),致力于從文本中抽取出實體之間的關(guān)系。比如從句子“達(dá)芬奇繪制了蒙娜麗莎”中,我們可以抽取出(達(dá)芬奇,畫家,蒙娜麗莎)這樣一個關(guān)系三元組。
關(guān)系抽取技術(shù)是自動構(gòu)建知識圖譜的重要一環(huán)。知識圖譜是由真實世界中的實體和實體間復(fù)雜關(guān)系構(gòu)成的結(jié)構(gòu)化表示,是幫助機(jī)器理解人類知識的重要工具,在問答系統(tǒng)、搜索引擎、推薦系統(tǒng)中都有著重要的應(yīng)用。
▲?關(guān)系圖譜示例
關(guān)系抽取十八變
由于數(shù)據(jù)和需求的不同,關(guān)系抽取這一任務(wù)也發(fā)展出了許多不同的任務(wù)場景。下面簡單介紹幾種,他們也都被包括在了 OpenNRE 這一工具包中。句子級別關(guān)系抽取:顧名思義,句子級別的關(guān)系抽取,就是對每一個給定的句子,和在句子中出現(xiàn)的實體,判斷他們之間的關(guān)系。在這樣的設(shè)定下,通常會使用人工精標(biāo)的數(shù)據(jù)進(jìn)行訓(xùn)練和測試,如 SemEval 2010 Task8,TACRED,ACE2005 等。OpenNRE 中還提供了一個新的數(shù)據(jù)集 Wiki80,包含 80 種 Wikidata 關(guān)系和 56,000 個句子,與以往的數(shù)據(jù)集相比,規(guī)模更大。包級別關(guān)系抽取:包級別的關(guān)系抽取產(chǎn)生于遠(yuǎn)程監(jiān)督(Distant Supervision)的設(shè)定中。我們都知道,傳統(tǒng)的機(jī)器學(xué)習(xí)方法需要大量數(shù)據(jù),而標(biāo)注數(shù)據(jù)費(fèi)時費(fèi)力,因此研究者們提出了遠(yuǎn)程監(jiān)督這一方法,通過將知識圖譜中的關(guān)系三元組與文本對齊,自動進(jìn)行標(biāo)注。然而這一方法也帶來了大量的噪聲數(shù)據(jù),為了減小噪聲的影響,多樣本多標(biāo)簽(multi-instance multi-label)的方法被引入,模型不再對單個句子進(jìn)行分類,而是對包含相同實體對的句子集(稱為包)進(jìn)行分類。少次學(xué)習(xí)關(guān)系抽取:少次學(xué)習(xí)(Few-Shot)是一種探索如何讓模型快速適應(yīng)新任務(wù)的設(shè)定,通過學(xué)習(xí)少量的訓(xùn)練樣本,即可獲得對新類型事物的分類能力。劉知遠(yuǎn)老師組發(fā)布的數(shù)據(jù)集?FewRel 正是進(jìn)行了這方面的探索。篇章級別的關(guān)系抽取:相比于針對句子的關(guān)系抽取,篇章級別的關(guān)系抽取難度更大,但包含的信息也更豐富。要想在這方面做的更好,就需要模型具有一定的推理、指代消解的能力。這一領(lǐng)域的代表數(shù)據(jù)集是同樣來自劉知遠(yuǎn)老師組的DocRED(https://github.com/thunlp/DocRED)。上述任務(wù)場景基本涵蓋了目前關(guān)系抽取領(lǐng)域的最新進(jìn)展,OpenNRE 也提供了較為便利的接口以支持上述場景的進(jìn)一步工作研究。
上手教程:如何使用OpenNRE
OpenNRE 的使用十分簡單,首先 git clone 項目并安裝依賴:
git?clone?https://github.com/thunlp/OpenNRE.git pip?install?-r?requirements.txt隨后在目錄下打開 Python,并 import opennre:
>>>?import?opennre可以使用 get_model 命令加載預(yù)訓(xùn)練模型:
>>>?model?=?opennre.get_model('wiki80_cnn_softmax')這是一個在 wiki80 數(shù)據(jù)集上進(jìn)行訓(xùn)練的句子級別的 CNN 模型,可以在 80 個關(guān)系上對句子進(jìn)行分類。隨后我們可以用 infer 函數(shù)進(jìn)行預(yù)測:
>>>?model.infer({'text':?'He?was?the?son?of?Máel?Dúin?mac?Máele?Fithrich,?and?grandson?of?the?high?king?áed?Uaridnach?(died?612).',?'h':?{'pos':?(18,?46)},?'t':?{'pos':?(78,?91)}}) ('father',?0.5108704566955566)可以看到模型正確推理出了關(guān)系 father,并給出了模型預(yù)測的置信度。
關(guān)于 OpenNRE 更詳細(xì)的說明,可以查看項目主頁:
https://github.com/thunlp/OpenNRE
或文檔:
https://opennre-docs.readthedocs.io/en/latest/
關(guān)于作者
OpenNRE 由孫茂松教授領(lǐng)導(dǎo)的清華大學(xué)自然語言處理實驗室(THUNLP)師生研發(fā)維護(hù)。目前 THUNLP 的 Github 主頁(https://github.com/thunlp)已有 92 個項目,其中有許多高星項目。
OpenNRE 項目的兩位主要作者——高天宇(https://gaotianyu.xyz/about/)和韓旭(https://thucsthanxu13.github.io/)都是 THUNLP 實驗室劉知遠(yuǎn)老師的學(xué)生。
其中,高天宇是大四的本科生,韓旭是博士三年級的學(xué)生。從主頁上可以看出,兩人的研究方向均為自然語言處理、信息抽取、圖譜表示和機(jī)器學(xué)習(xí)。其中,高天宇作為大四的本科生,已經(jīng)在相關(guān)領(lǐng)域國際會議上發(fā)表了三篇論文;而韓旭除了在相關(guān)領(lǐng)域發(fā)表多篇論文外,也是 OpenNRE、OpenKE 和 FewRel 等多個開源項目的主要開發(fā)者與參與者,在開源社區(qū)十分活躍。更多的信息可以參考作者個人主頁以及項目文檔。
點擊以下標(biāo)題查看更多往期內(nèi)容:?
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識的人。
總有一些你不認(rèn)識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個,讓知識真正流動起來。
??來稿標(biāo)準(zhǔn):
? 稿件確系個人原創(chuàng)作品,來稿需注明作者個人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請在投稿時提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會添加“原創(chuàng)”標(biāo)志
? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨(dú)在附件中發(fā)送?
? 請留下即時聯(lián)系方式(微信或手機(jī)),以便我們在編輯發(fā)布時和作者溝通
?
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁搜索「PaperWeekly」
點擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學(xué)術(shù)平臺。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 訪問項目主頁
總結(jié)
以上是生活随笔為你收集整理的OpenNRE 2.0:可一键运行的开源关系抽取工具包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 花盖蟹蒸多久 教你如何烹饪美味的花盖蟹?
- 下一篇: 炒土豆丝要泡多久 教你制作口感更佳的土豆