深度好奇提出文件解析框架 物件導向的神經規劃

2021-08-09 18:37:52 字數 2567 閱讀 8999

深度好奇(deeplycurious.ai)近日在 arxiv 上發布的**提出了一種基於神經符號智慧型(neural-symbolic)的特定領域文字解析框架:object-oriented neural programming(oonp)。
**題目:用於文件理解的物件導向神經規劃

該框架借用物件導向程式設計(oop)的思想,利用解析出來的實體組成物件和物件間關係(如圖 1),構成結構清晰的本體圖。每個物件 (object) 都是乙個類 (class) 的例項化,類的概念規定了其具有的內部屬性、外部關係和可執行的操作,以及與其他物件的關係型別。如圖 1 所示,左邊為敘事文本,右邊為經過 oonp 解析生成的本體圖。圖例中共包含三個類的物件,分別為事件、人物、物品。人物類有姓名、性別、年齡屬性,同時與事件物件有嫌疑人、被害人等表徵人物角色的外部鏈結;物品類有名稱、數量、價值等屬性,與事件物件有表徵物品角色的外部鏈結;另事件類有事件型別、時間、地點等屬性。

圖 1. oonp 解析任務示意

下面我們拆解 oonp 框架並介紹其主要功能模組。如圖 2 所示,oonp 由三部分組成,分別是主控模組閱讀器(reader)、表徵文件的行間記憶(inline memory)模組、以及總結對之前文字的理解的攜帶記憶(carry-on memory)模組。

圖 2. oonp 解析的基本框架

圖 3. 閱讀器的構成及資訊流

oonp 解析器中基於神經網路的閱讀器按照文字順序讀文件,同時不斷豐富本體結構來增進對文件的理解。對於某個待解析的文件,oonp 首先將預處理之後的文件放入行間記憶模組,閱讀器順序讀取行間記憶中符號表示和連續表示,結合攜帶記憶,產生各種操作來增加和豐富本體圖,更新攜帶記憶模組。這些操作包含可微分操作(作用於物件記憶的連續部分和矩陣記憶)和離散操作(作用於物件記憶和行間記憶的符號部分)。這些連續和離散操作互相依賴,構成了彼此的輸入,共同形成了圖 3 中複雜而靈活的資訊流。

下面我們著重講解一下 oonp 的離散操作。閱讀器的策略網路輸出的離散操作序列是形成本體結構主要操作。該操作集合包括三類,依照順序分別是「新增-指派」,「選擇更新屬性」,和「更新內容」。當然,「新增-指派」操作後,也可以沒有後續操作(空操作)。「新增-指派」可轉化為多分類問題,如果提到內容是第一次出現,則「新增」,如果是已經出現過的,只是重新提及,則「指派」。具體的決策依賴於閱讀器在建立的臨時物件(公式中的

公式第一行代表臨時物件和「新增」c 類的相似度,第二行表示臨時物件和 c 類第 k 個物件的相似度,第三行代表與空操作的「相似度」。圖 4 是對解析過程中的某個瞬間對上述匹配過程的形象化描述。

圖 4.「新增-指派」操作中,臨時物件與已存在物件之間相似性衡量示意,虛線表示「新增」,實線表示「指派」

通過上述的三種操作,oonp 解析器可以對複雜的文件進行結構化解析。下面的圖 5 給出了一段短文本解析的示例:oonp 解析器做通過乙個動作序列,逐步形成了包含六個物件和六條鏈結的本體結構。

圖 5. oonp 解析器解析文件過程示意。假設在預處理階段,汽車的描述已經被抽取。

作者在三個資料集上對模型的效能進行了實驗。以公安報案資料為例,oonp 使用了如圖 6 中列舉的 action。

圖 6. 公安報案資料中使用的 action

圖 7 比較了 oonp 的不同實現:**衡量模型效能用了四個指標,assign acc 表示**物件「新增和指派」的正確率,type acc 表示**物件屬性的正確率,ont acc 表示單個樣本解析的本體結構和標籤 100% 重合的正確率,ont acc-95 表示單個樣本解析的本體結構和標籤 95% 重合的正確率。簡單的 oonp 模型較以 bi-lstm 為基準模型有很大提公升,具有豐富結構資訊的 oonp(structured)則又有明顯提公升。而在 oonp(structured)的基礎上,用強化學習來決定分類時機的模型 oonp(rl)則又進一步提高了效果。

圖 7. 多個 oonp 模型的比較 

作為總結,oonp 解析框架具有如下特點:

如何寫文件 問題的提出

在測試時寫了一些test step,手工測試,內容很繁雜,步驟按要求寫到極細,只要按著一步步走就能做出來。這裡也有乙個分清主次關係的問題,不是所有東西都要寫出來的,要區分大家都懂的 傻瓜級的 和特殊的地方 這裡要重點寫 但是在實際使用過程中,碰到大家都不願意用的情況,首先是直接沒看,叫你直接demo...

谷歌推出「文件季」計畫,改進開源文件質量

谷歌推出了 文件季 計畫,旨在改進開源專案的文件質量。它將通過在開源貢獻者和技術作者之間建立指導關係來實現該目的,從而幫助各種開源技術建立更強大 更全面的文件。文件季 的動機來自開源調查,該調查表明,很多開源專案缺乏良好的文件。谷歌認為,這是因為文件的建立相當困難,所以啟動了這個計畫來改進開源專案的...

用IO寫入和寫出文件

讀取 private void readlogfile 關閉釋放讀資料流 read.close 返回讀到的日誌檔案內容 return output.tostring 寫入 private void writelogfile string input 建立只寫檔案流 using filestream ...