發表OpenNRE的論文,論文詳細說明了OpenNRE的各個組件。
OpenNRE的github的地址。
清華整理的做關係抽取必讀的文章的地址。
OpenNRE實現了基於sentence-level,bag-level和few-shot的relation extraction(關係抽取)。bag-level的關係抽取也就是基於遠程監督的關係抽取。
OpenNRE的結構
OpenNRE主要包括Tokenization,Module,Encoder,Model,Framework這5部分組成。
Tokenization
這個組件的任務是將輸入文本分割成word-level和subword-level的兩種token流。如果想要新建一個新的類型的token流可以通過繼承BasicTokenizer類來實現。
Module
這個組件主要包括用於模型實現的各種功能神經模塊組成,如基本的網絡層、一些池操作和激活功能。
Encoder
這個組件主要將編碼器應用於將文本編碼到其相應的embedding中以提供語義特性。作者基於前面的Tokenization和Module組件實現了BaseEncoder類,這個類可以實現token的embedding,也可以通過繼承這個類來實現自己的encoder。同時作者也實現了一些常用的編碼器結構,比如LSTM,Bert等。
Model
這個組件作者實現了一些經典的關係抽取模型,比如基於CNN的關係抽取模型等,還實現了一些其他的用於提升模型性能的算法,比如注意力機制,對抗訓練,強化學習等。
Framework
這個組件主要負責集成其他四個組件,支持各種功能(包括數據處理、模型訓練、模型優化、模型評估)。並實現了基於sentence-level,bag-level和few-shot的關係抽取。