ECPE學習筆記 1

2022-10-08 23:36:27 字數 2389 閱讀 2580

ecpe:emotion-cause pair extraction,情感因果對抽取。

該任務**於ece(emotion cause extraction),情感原因抽取,顧名思義,就是給定已經注釋好的情感,將引起該情感的原因從文件中抽取出來。

因為現實生活中,大多情況我們是不會特地將情感注釋好放在那裡的,於是ecpe任務就被提出來了,ecpe的目的就是在沒有事先給定已經注釋好情感的情況下,我們將文件中的情感和原因,以及兩者之間的關係都抽取出來成為乙個因果對。具體形式是這樣:(e,c),e表示的是情感emotion,c表示的是原因cause。

目前一共提出了三種型別的模型:

two-step pipeline method

one-step end to end model

method based on unified sequence labeling

今天看了第一種型別的一篇**,也就是用的是two-step pipeline method

文中提出的方法一共分為兩步:

分別單獨將情感和原因抽取出來

對情感和原因進行配對,然後過濾掉不存在因果關係的組隊

第一步將情感和原因分別抽取出來,採用的是multi-task learning(多工學習)(多工學習:把多個相關任務放在一起學習,也就是同時學習多個任務)

這裡單任務學習中,任務彼此之間是獨立的沒有互動的,而多工學習中多個任務的學習空間是共享的,這就考慮到了現實中有一些任務彼此之間是有關聯的。

在本**中為何要用到多工學習,我的理解是抽取原因和抽取情感這兩個任務不是獨立的,原因和情感彼此應該共同影響,所以我們使用multi-task learing、

作者這裡提出了兩種多工學習模型:

最底層由單詞級別的bi-lstm模組組成(每乙個模組對應乙個子句),首先輸入子句ci,將每乙個單詞w對映為詞向量v,接著輸入bi-lstm層,第i個子句的第j個單詞的隱藏層狀態hi,j由此得到,接著使用attention來得到子句表示s。

上面的層由兩部分組成:分別是情感抽取和原因抽取。每乙個部分都是乙個子句級別的bi-lstm,它接收的是子句表示[s1,s2...sn]

輸入子句ci的子句表示si,分別得到情感隱藏層狀態ri,e和原因隱藏層狀態ri,c(這裡可以理解成是子句ci的上下文感知表示)、

最終送入softmax層分別進**感**和原因**,

損失函式:

2.interactive multi-task learning

interactive互動的,它就是在多工學習的基礎上進一步的捕捉情感和原因的關係(因為在independent multi-task learning任務中,我們可以看見上面的層,也就是分別抽取情感和原因的兩個子任務是互相獨立的),考慮到在事先已經抽取出情感的情況下抽取出來原因的效果可能更好,反之亦然。

因此設計出了這個模型

inter-ec表示的是在抽取出情感的情況下抽取原因,inter-ce同理。

與independent multi-task learning相比,底層模型並沒有改變,改變的只是上面的部分。

得到的子句表示s仍然用作兩部分,第一部分用於得到情感隱藏層表示用於下一步的softmax,得到最終的y,i,e概率分布,然後將**的標籤對映成向量表示,與每乙個s組合(

s2,s3類似

進行重複的動作得到我們最終的目的,原因**y,i ,c。

第二步將情感和原因進行配對:

對情感集合和原因集合裡的元素進行笛卡爾積,就是所有可能的配對方式:

接著我們對集合裡的每一對用三種特徵來進行表示:

分別是情感表示,原因表示和兩個子句之間的距離。

最終用乙個logistic regression邏輯回歸來訓練,

對每乙個候選對來檢測是否有因果關係,

表示有因果關係,為0表示沒有,最終我們移除值為0的對,也就是篩選過程。

最終得到因果對集合。

展望:two-step表示它的目標不是直接抽取因果對的,因此不夠直接。

而且會有錯誤累計的問題。

因此有必要嘗試端到端的方式來直接提取因果對。

學習筆記1

struct test test int x void fun class test1 test1 int x void fun int main void test1 a 行1 a.fun 行2 test1 b 行3 b.fun 行4 test c 行5 c.fun 行6 test d 行7 d....

學習筆記1

1 字串原地逆序 使用臨時變數 void reverse string s 5 求平均值 避免溢位 int f int x,int y 6 楊氏矩陣 bool young int a m n int x return false 7 十進位制轉十六進製制 string decimaltohexade...

學習筆記1

第二單元 linux的基本操作 1.改變使用者的密碼 passwd命令 注 a.只有root使用者可以修改其他使用者的密碼。普通使用者只能修改自己的密碼,且密碼必須設定地較為複雜,否則修改不成功 b.若執行passwd命令時後面不加使用者名稱,表示的是修改當前使用者的密碼。2.系統使用者的分類 注 ...