羅 明,黃海量,2
(1.上海財(cái)經(jīng)大學(xué) 信息管理與工程學(xué)院,上海 200433; 2.上海財(cái)經(jīng)大學(xué) 上海市金融信息技術(shù)研究重點(diǎn)實(shí)驗(yàn)室,上海 200433)(*通信作者電子郵箱hlhuang@shufe.edu.cn)
信息抽取是指從自然語言形式的文檔中抽取人們所感興趣的信息,并將其轉(zhuǎn)變?yōu)榻Y(jié)構(gòu)化信息的過程。信息抽取研究的范疇包括:命名實(shí)體識(shí)別(如:人名、地名、機(jī)構(gòu)名等),關(guān)系信息抽取,事件信息抽取(與事件有關(guān)的事件類別、時(shí)間、地點(diǎn)、參與者等)。本文所研究的對象是與金融事件有關(guān)的信息抽取。
一直以來,信息抽取工作所面臨的主要困難之一是如何解決“自然語言表達(dá)的多樣性、歧義性和結(jié)構(gòu)性”[1]的問題,多樣性是指同一種意思可以有多種表達(dá)方式,例如對公司收購事件,既可以用“A公司收購B公司”,也可以用“A公司買下B公司”來表達(dá);歧義性是指同一詞語在不同的上下文語境中存在著不同的含義,例如:“蘋果公布iOS 9新系統(tǒng)”中的“蘋果”指美國蘋果公司,而“近日蘋果批發(fā)價(jià)格一路走低”中“蘋果”則是指一種水果;結(jié)構(gòu)性是指自然語言所具有的內(nèi)在結(jié)構(gòu),例如:“他從北京來到上?!焙汀八麖纳虾淼奖本眱蓚€(gè)句子雖然都使用了相同的詞語,但由于句子詞語成分結(jié)構(gòu)不同導(dǎo)致所表達(dá)的語義也不相同。如何采用語義分析的方法來解決這些問題一直以來都是自然語言處理研究領(lǐng)域所關(guān)注的核心問題之一。
事件信息抽取是信息抽取研究的一個(gè)重要子任務(wù),ACE(Automatic Content Extraction) 2005將事件抽取任務(wù)定義成法律制裁(Justice)、沖突(Conflict)、商業(yè)(Business)等8個(gè)大類32種子類型任務(wù)[2],但是ACE 2005所定義的事件類型存在著類型過于寬泛、針對性不強(qiáng)的問題,例如Business中的Start-Org(組織成立)、Movement中的Transport(中轉(zhuǎn)站)在使用中并無實(shí)際價(jià)值,不能真正滿足現(xiàn)實(shí)社會(huì)對事件抽取的需求,因此還必須針對特定專業(yè)領(lǐng)域重新進(jìn)行事模型和類型的定義。
本文針對以上問題,以中文金融新聞文本為研究對象,首先定義了一個(gè)包含5個(gè)大類、26種子類事件的金融事件表示模型;其次采用深度學(xué)習(xí)中的詞向量(word vector)方法通過從新聞?wù)Z料中提取出概念同義詞來自動(dòng)構(gòu)建概念詞典;最后采取基于有限狀態(tài)機(jī)驅(qū)動(dòng)的層次化的詞匯-語義規(guī)則模式實(shí)現(xiàn)了從新聞文本中提取出與金融事件有關(guān)的大量關(guān)鍵信息(例如:事件類型、時(shí)間、地點(diǎn)、事件施事者、受事者、交易金額、交易數(shù)量等)。采用本文方法,在專業(yè)領(lǐng)域內(nèi)能較好地解決以上存在的問題,具有一定的研究價(jià)值和實(shí)際意義。
信息抽取的研究,按所采用的基本方法可以分為基于規(guī)則模式的方法和基于機(jī)器學(xué)習(xí)的方法兩類。基于規(guī)則模式的方法的優(yōu)點(diǎn)是所需要的標(biāo)注語料較少,甚至可以不需要標(biāo)注語料,規(guī)則可解釋性強(qiáng),易于調(diào)整,但這種方法存在著靈活性差、查全率較低、可移植性不好等問題[3]。目前基于規(guī)則模式的信息抽取所采用的主要方法有:正則表達(dá)式方法[4]、半結(jié)構(gòu)化樹(文檔對象化模型樹(Document Object Model Tree,DOM Tree))方法[5]、詞匯-句法模式(Lexical-Syntactical)[6]和詞匯-語義模式(Lexical-Semantic Pattern, LSP)[7]?;跈C(jī)器學(xué)習(xí)的方法在實(shí)施中存在的主要困難是:學(xué)習(xí)模型效果的好壞在很大程度上依賴于訓(xùn)練語料的規(guī)模和標(biāo)注質(zhì)量,并且運(yùn)行時(shí)間和效率均會(huì)隨著語料中符號類別的多少呈線性增長[8]。
本文采用的詞匯-語義模式是目前規(guī)則模式方法中所采用的主要方法之一。它針對詞匯-句法模式所存在的對句法分析結(jié)果依賴性過強(qiáng),不能精確描述同義詞、反義詞以及上位詞之間的聯(lián)系,不能按專業(yè)領(lǐng)域業(yè)務(wù)需求實(shí)現(xiàn)對詞匯的概念化抽象等問題[9]進(jìn)行了進(jìn)一步的改進(jìn)和語義增強(qiáng)。近年來的研究成果中,文獻(xiàn)[10]通過先對事件動(dòng)詞采取同義詞表達(dá),再通過迭代匹配的方法來實(shí)現(xiàn)簡單語義類型的事件抽??;文獻(xiàn)[11]則采用更加復(fù)雜的基于本體的詞匯-語義模式來實(shí)現(xiàn)命名實(shí)體和事件的抽取,這種方法的優(yōu)點(diǎn)在于可以通過在本體中定義更加復(fù)雜的概念、類別、實(shí)例以及類別間的關(guān)系、限制條件等元素,使語義匹配引擎具有更加復(fù)雜的邏輯判斷推理能力;在此基礎(chǔ)上還進(jìn)一步發(fā)展出了基于知識(shí)圖譜[12]等輔助手段的方法。但以上研究中存在的顯著問題是對同義詞或本體概念、類別的定義都是通過手工方式完成的,所需要的工作量較大,而且同義詞覆蓋范圍有限。文獻(xiàn)[13]提出了一種采用Word2Vec來獲得確定維度的詞向量,并將其用于短文本分類中的方法,受其啟發(fā)本文也通過采用Word2Vec的近義詞識(shí)別功能來自動(dòng)構(gòu)建概念同義詞典。
本文采用一種自然語言文本處理框架——通用文本處理框架(General Architecture for Text Engineering, GATE)[14]中的Java標(biāo)注模式引擎(Java Annotation Pattern Engine, JAPE)語言[15]來開發(fā)詞匯-語義規(guī)則模式并實(shí)現(xiàn)語義標(biāo)注工作。這種采用JAPE語言來編寫詞匯-語義規(guī)則模式的方法已經(jīng)被用于文檔檢索服務(wù)[16]、處理病歷中的指代消解[17]、社交網(wǎng)絡(luò)中的個(gè)體語言特征分析[18]和本體自動(dòng)填充[19]等研究工作中,均取得了較好的效果。
本文根據(jù)金融新聞事件的特點(diǎn)的定義了一個(gè)金融事件的表示模型e:
e=Ke∪Ae∪Re
(1)
定義1e由關(guān)鍵事件要素集合Ke、輔助事件要素集合Ae和推理事件要素集合Re構(gòu)成。
定義2 關(guān)鍵事件要素集合Ke中定義的事件元素有:事件施事者(主體)Arg0,事件受事者(客體)Arg1,事件謂語動(dòng)詞類型Predicate,事件發(fā)生時(shí)間TMP,事件發(fā)布者Pub。關(guān)鍵事件要素是判斷一個(gè)事件是否成立的充分必要條件,如果一條新聞?wù)Z句中含有Ke中的元素,則可以判定該條新聞?wù)Z句具有事件信息價(jià)值。
定義3 輔助事件要素集合Ae中定義的事件元素有:事件發(fā)生地點(diǎn)LOC,事件類型EventType,事件原因Cause,事件狀態(tài)EventState。輔助事件要素集合是對事件信息的補(bǔ)充和完善。
定義4 推理事件要素集合Re中定義的事件元素有:標(biāo)注類型為Lookup的中間過程元素Lookuptaggers,標(biāo)注類型為Token的中間過程元素Tokentaggers以及其他一些標(biāo)注類型為Event的過程元素。推理事件要素是本文詞匯-語義模式在識(shí)別判斷及抽取事件關(guān)鍵和輔助要素過程中使用的中間過程的概念語義元素,這類元素不構(gòu)成最終的事件要素,但它們是規(guī)則模板用來推理判斷事件類型和其他關(guān)鍵要素的重要依據(jù)。
本文定義了需要抽取的26種金融事件類別及其他要素如表1所示(鑒于篇幅有限,表1只列出部分內(nèi)容)。
表1 事件類別及其他要素定義
概念詞典是詞匯-語義模式開展語義抽取工作的基礎(chǔ),它用于語義處理過程中的同義詞識(shí)別和概念識(shí)別處理。本文采取詞列表(Word List)的方式來表示概念詞典。概念詞典由一系列詞表文件構(gòu)成,概念詞典文件的層次結(jié)構(gòu)設(shè)計(jì)如圖1所示。
概念詞典的索引文件名稱為list.def,它是所有概念詞典文件的入口,該文件為純文本文件格式,按每行一條進(jìn)行內(nèi)容安排,具體內(nèi)容如下所示:
event_Verb_Statement.lst:事件動(dòng)詞類型:正式公告
event_Verb_Restruct.lst:事件動(dòng)詞類型:重組
…
每行由“:”分割為三部分:第1部分表示該類別概念所對應(yīng)的詞列表文件名;第2部分表示預(yù)定義的主類別(MajorType)如:事件動(dòng)詞類型;第3部分可選,表示預(yù)定義的次級類別(MinorType),例如:重組。在二級詞列表文件中也是按每行一條的形式來定義具有相同MajorType和MinorType的詞組集合,例如:event_Verb_Restruct.lst是與重組事件關(guān)鍵謂詞對應(yīng)的詞列表文件,其具體內(nèi)容為:
重組 方案
重組 預(yù)案
資產(chǎn) 重組
…
當(dāng)文本中存在與以上任何一行相同的一組詞條時(shí),例如:“正泰電器(601877)11月9日晚間發(fā)布重組預(yù)案,…”,系統(tǒng)會(huì)采用最大后向匹配算法在“重組 預(yù)案”這兩個(gè)詞條節(jié)點(diǎn)上標(biāo)注上類型為Lookup的標(biāo)注,其屬性MajorType=事件動(dòng)詞類型,MinorType=重組。
圖1 概念詞典的層次結(jié)構(gòu)
本文采用Word2Vec[20]中的基于Negative Sampling算法的連續(xù)詞袋模型(Continuous Bag Of Words, CBOW)來訓(xùn)練詞向量,并提取生成概念詞典。對于給定的需要預(yù)測的正樣本詞w及其上下文context(w),希望獲得的最大似然概率為:
(2)
其中:context(w)表示需要預(yù)測的詞w的上下文窗口內(nèi)的詞,NEG(w)表示預(yù)測不是w的結(jié)果,也就是負(fù)樣本的情況。p(u|context(w))可表示為:
p(u|context(w))=(σ(xwTθu))Lw(u)·
(1-σ(xwTθu))1-Lw(u)
(3)
其中:xw表示context(w)中各詞的向量之和;θu表示詞u所對應(yīng)的輔助向量,它是待訓(xùn)練參數(shù);Lw(u)是指示函數(shù),當(dāng)u=w時(shí)為1,否則為0;σ(xwTθu)表示當(dāng)預(yù)測值為u(u∈{w}∪NEG(w))時(shí)的概率。
將式(3)代入式(2)可得:
(4)
由式(4)可知,最大化g(w)的過程就是最大化正樣本概率σ(xwTθw),同時(shí)最小化負(fù)樣本概率σ(xwTθu)的過程,因此對于給定的語料庫C,總體的優(yōu)化目標(biāo)為:
(5)
當(dāng)采用Word2Vec完成詞向量訓(xùn)練后,采用以下概念詞典的構(gòu)建算法來完成同義概念詞典的構(gòu)建工作。
構(gòu)建同義概念詞典算法:
Input:同義詞種子集合seed_set;已經(jīng)訓(xùn)練完成的Word2Vec模型word2vec_model。
Output:同義詞典文件synonym_dict。
Loadword2Vec_modelandseed_set
//加載Word2Vec模型和種子文件seed_set
dictionary={}
//擴(kuò)展字典集合dictionary初始化
FOR eachwinseed_set:
//遍歷種子集合
sim_words=word2vec.most_similar(w,k)
//word2vec模型中從獲取與w近似值最大的前k個(gè)詞
FOR each item insim_words:
//遍歷集合
IF(item.sim>=0.7):
//保留近似值大于0.7的詞
dictionary.put(item)
total_words=concatenate(seed_set,dictionary)
//拼接合并種子集合與擴(kuò)展字典集合
total_words_permu=permutation(total_words)
//對total_words
//集合中的元素,固定種子詞組為首詞后進(jìn)行排列組合
FOR eachwinseed_set:
FOR eachpermu_wordsintotal_words_permu:
IF(n_similarity(w,permu_words)>=0.7):
//遍歷排列
//組合后的集合,并將與種子詞組w之間相似度大于0.7的
//多元詞組納入擴(kuò)展字典中
dictionary.put(pair_words)
Savedictionarytosynonym_dict
//將擴(kuò)展字典保存到同義詞文件中
詞匯-語義模式的規(guī)則表達(dá)式由3種元素構(gòu)成,即:詞匯信息(即標(biāo)點(diǎn)符號、字、詞的符號信息,如:“收購”),句法信息(即詞性信息,如:動(dòng)詞)和語義信息(即概念信息,如:“收購事件動(dòng)詞”)。本文定義的標(biāo)注類型如表2所示。
由于各標(biāo)注類型在詞匯-語義規(guī)則中存在著逐次提煉升華的內(nèi)在關(guān)系,因此本文設(shè)計(jì)了一個(gè)層次化的標(biāo)注結(jié)構(gòu),如圖2所示。
其中:Layer0詞條層是由完成分詞后的詞條節(jié)點(diǎn)Node集合。Layer1層是由標(biāo)注類型為Token的節(jié)點(diǎn)構(gòu)成的,它的每個(gè)節(jié)點(diǎn)與Layer0層中的詞條節(jié)點(diǎn)構(gòu)成一一對應(yīng)的關(guān)系,Layer1上的節(jié)點(diǎn)主要用來存儲(chǔ)詞性標(biāo)注信息。Layer2層是由標(biāo)注類型為Lookup的節(jié)點(diǎn)構(gòu)成的,它的每個(gè)節(jié)點(diǎn)與Layer0的節(jié)點(diǎn)是1∶n的關(guān)系,Layer2上的節(jié)點(diǎn)主要用來存儲(chǔ)依據(jù)概念詞典而自動(dòng)標(biāo)注的基本語義概念信息。Layer3層由標(biāo)注類型為Event的節(jié)點(diǎn)構(gòu)成,Event節(jié)點(diǎn)由詞匯-語義規(guī)則在Token節(jié)點(diǎn)和Lookup節(jié)點(diǎn)的基礎(chǔ)上產(chǎn)生,它主要存儲(chǔ)更加高級的和面向領(lǐng)域的事件概念信息。
表2 語義標(biāo)注類型
圖2 層次化標(biāo)注結(jié)構(gòu)
采用這種層次化標(biāo)注結(jié)構(gòu)的優(yōu)點(diǎn)在于:使用者可以根據(jù)需要在詞匯-語義規(guī)則文件中靈活地抽出或插入某一標(biāo)注層,這樣在編寫詞匯-語義規(guī)則時(shí)不必考慮某種標(biāo)注類型對規(guī)則語法的影響,從而極大地簡化了規(guī)則編寫的工作。
本文基于有限狀態(tài)機(jī)理論定義的詞匯-語義規(guī)則標(biāo)注模型為:
M=(Σ,Q,q0,F,Δ)
(6)
其中:
1)Σ為模型M的輸入Token信息的集合,Σ={a1,a2,…,an},a1,a2,…,an為分詞處理后形成的Token序列。
2)Q為模型M中有限的狀態(tài)集合,在本文中Q指每條規(guī)則中的滿足匹配語句的狀態(tài)集合,例如對于以下所示例的詞匯-語義規(guī)則文件:(括號內(nèi)的字為對規(guī)則含義解釋)。
Phase: Event_MiscBusProcess
//規(guī)則文件名
Input: Token Lookup Event
//引入規(guī)則中需要使用的標(biāo)注層
Options: control=Appelt debug=true
//匹配優(yōu)先級控制
Macro:ORG
//定義一個(gè)宏名
…
Rule: OrgRule
//定義規(guī)則左式
Priority: 100 (定義規(guī)則優(yōu)先級)
(
({Lookup.minorType==~"(country|province|city)"})+
①
({Token.string!=~"[,,。::;;、d]+",
Lookup.majorType!=~"(title)"})[1,6]
②
(ORG_KEY_COMPANY)
③
(
{Token.string==~"[((]"}
({Token.string!=~"[。]"})[1,15]
{Token.string==~"[))]"}
)?
④
):MyOrg
-->//規(guī)則左式到右式轉(zhuǎn)換符
{
//定義規(guī)則右式邏輯處理語句
gate.AnnotationSet org=
(gate.AnnotationSet) bindings.get("MyOrg");
gate.FeatureMap features=Factory.newFeatureMap();
…
outputAS.add(org.firstNode(),org.lastNode(),"Event",
features);
outputAS.removeAll(org);
}
Rule:BusIncomeRule2(開始一條新的規(guī)則)
Priority: 100
…
在這條規(guī)則中,Q共有6個(gè)狀態(tài)即:初始狀態(tài)q0和接受終止?fàn)顟B(tài)qf、規(guī)則中的①~④四條語句判斷為真時(shí)所對應(yīng)的狀態(tài)分別為q1~q4,因此Q={q0,q1,q2,q3,q4,qf}。
3)q0代表模型M的初始狀態(tài),q0=?。
4)F代表模型M的最終可接受狀態(tài)集,F(xiàn)?Q,F(xiàn)={qf}。
qi=δi(qi-1,ai)
(7)
其中ai為當(dāng)前的輸入Token。
6)對一個(gè)特定的輸入Token序列,例如:Σ*={中南建設(shè),6月,8日,晚間,公告,,,公司,擬,出資, 10億,元,…},在狀態(tài)機(jī)M上的匹配執(zhí)行結(jié)果是一個(gè)狀態(tài)序列:q0,q1,…,qn,qn表示終止?fàn)顟B(tài),如果qn∈F則表示該Token序列被狀態(tài)機(jī)接受(即匹配成功);否則被拒絕。
7)為了簡化模型表示,M中不記錄拒絕狀態(tài)和轉(zhuǎn)向拒絕狀態(tài)的轉(zhuǎn)移函數(shù)。
詞匯-語義規(guī)則標(biāo)注算法如下。
Input:D,表示采用GATE ANNIE插件預(yù)處理后,已經(jīng)標(biāo)注有Token 和Lookup標(biāo)注類型的輸入文檔;P,表示滿足JAPE語法規(guī)則的詞匯-語義規(guī)則文件集合。
Output:MLAnnotateSet,表示輸出的標(biāo)注類型為Event的語義標(biāo)注集合。
FOR eachphaseiinP
//phasei為P中的某一規(guī)則文件
Getting all annotations fromoutASList of Last (i-1) phase and put them ininASlist
//將上一個(gè)規(guī)則文件的處理
//結(jié)果取出放入當(dāng)前處理序列inAS中
FOR eachrulejinphasei.Rules:
//對phasei中的規(guī)則進(jìn)行遍歷
FOR eachD.NodeskinD:
//D.Nodesk為文檔
//D中的Token節(jié)點(diǎn)
L.put(D.Nodesk)
//將D.Nodesk放入列表L中
Initialization Finite State MachineMjrespect torulej,LetQ={q0,qf},Δ={δ1,δ2,…,δn},q0=?
//初始化狀態(tài)機(jī)Mj
IF( {L1,L2,…,Ln} are accepted byMj):
//當(dāng)滿足規(guī)則子句匹配條件時(shí)
①Feed annotation set ininASwhich cover {L1,L2,…,Ln} to RHS for creating new semantic annotation and put computing results intooutASlist
//將匹配的標(biāo)注集合
//送入詞匯-語義規(guī)則右式(RHS)進(jìn)行程序邏輯處理,
//并產(chǎn)生新的語義標(biāo)注信息
②L=L-{L1,L2,…,Ln}
//繼續(xù)執(zhí)行下一段Token的
//規(guī)則匹配操作
ELSE:
Search nextMj+1
//查找規(guī)則文件中的下一條
//規(guī)則再重新開始匹配操作
Getting all semantic annotation which type is "MLTag" fromoutASlist, and put them inMLAnnotateSet
//獲得類型為MLTag的
//語義標(biāo)注集合
算法的空間復(fù)雜度是指一個(gè)算法在運(yùn)行過程中臨時(shí)占用存儲(chǔ)空間大小的度量,一般用:S(n)=O(f(n))來表示,其中n表示問題規(guī)模的大小,在本文中指需要進(jìn)行語義標(biāo)注的新聞文本語料的大小。標(biāo)注算法在計(jì)算機(jī)存儲(chǔ)器上存儲(chǔ)的空間S由算法本身的空間S1,輸入輸出數(shù)據(jù)所占據(jù)的存儲(chǔ)空間S2和算法在運(yùn)行過程中臨時(shí)占用的存儲(chǔ)空間S3組成,即:
S=S1+S2+S3
(8)
在本文中標(biāo)注算法本身由固定數(shù)目的程序行組成,而不受問題規(guī)模n的大小影響,因此:S1=O(1);S2與輸入輸出語料的規(guī)模n一階線性相關(guān),因此可表示為:S2=O(n);在標(biāo)注算法中由于不存在遞歸調(diào)用和二分法查找的情況,S3的大小只與問題規(guī)模n一階線性相關(guān),因此:S3=O(n)。綜合以上分析標(biāo)注算法的空間復(fù)雜度為:
S=S1+S2+S3=O(1)+2O(n)
(9)
算法的時(shí)間復(fù)雜度是指當(dāng)問題規(guī)模為n時(shí),算法所需要的最長運(yùn)行時(shí)間,一般用T(n)=O(f(n))來表示,在本文標(biāo)注算法中問題規(guī)模n指需要進(jìn)行標(biāo)注的新聞?wù)Z料大小。由4.3節(jié)所示,標(biāo)注算法主要由:對所有輸入語料文檔的遍歷循環(huán)T1(假設(shè)輸入文檔的個(gè)數(shù)為n1),對所有規(guī)則文件的遍歷循環(huán)T2(假設(shè)規(guī)則文件的個(gè)數(shù)為n2),對單個(gè)規(guī)則文件內(nèi)的子規(guī)則遍歷循環(huán)T3(假設(shè)每個(gè)規(guī)則文件內(nèi)平均子規(guī)則個(gè)數(shù)為n3),對單個(gè)輸入文檔內(nèi)Token層節(jié)點(diǎn)的遍歷循環(huán)T4(假設(shè)每個(gè)輸入文檔內(nèi)的平均Token節(jié)點(diǎn)個(gè)數(shù)為n4)組成,則本文標(biāo)注算法的時(shí)間復(fù)雜度可用式(10)表示:
T=T1×T2×T3×T4=O(n1×n2×n3×n4)
(10)
采用網(wǎng)絡(luò)爬蟲技術(shù)從東方財(cái)富網(wǎng)的公司新聞?lì)l道和新浪財(cái)經(jīng)上市公司新聞?lì)l道爬取了2015年全年共計(jì)122 366條金融類新聞報(bào)道,并從中隨機(jī)抽取了5 000條不重復(fù)的新聞報(bào)道作為測試樣本進(jìn)行了事件類別手工標(biāo)注處理,選取文本中的首段前2句作為語料來驗(yàn)證事件信息抽取效果。本文3.2節(jié)中Word2Vec所采用的模型訓(xùn)練語料則是來自東方財(cái)富網(wǎng)公司新聞?lì)l道2015—2017年共計(jì)194 466篇新聞報(bào)道全文,累計(jì)1.59億漢字的訓(xùn)練規(guī)模。
實(shí)驗(yàn)中共計(jì)生成5 000篇信息標(biāo)注XML文檔,本文選用一個(gè)例子來說明事件信息抽取的實(shí)際效果。
1)原始語料:27日晚間,臨時(shí)停牌一天的暴風(fēng)科技在晚間揭曉了停牌原因。公司正在籌劃重大資產(chǎn)重組事項(xiàng),擬以發(fā)行股份及支付現(xiàn)金方式收購專業(yè)從事文學(xué)作品版權(quán)運(yùn)營的公司,交易金額預(yù)計(jì)不低于6億元。
2)經(jīng)過詞匯-語義規(guī)則處理后事件信息的最終標(biāo)注的結(jié)果部分內(nèi)容是:
a)AnnotationImpl:id=79;type=FinalTag;features={rule=Event_BuyRule,time=2015年10月27日20時(shí),transaction_method=擬以發(fā)行股份及支付現(xiàn)金方式,event_type=PlanBuy,agents=[{string=暴風(fēng)科技,label=已識(shí)別機(jī)構(gòu)名}],patients=[{string=事項(xiàng),label=非機(jī)構(gòu)名,type=直接標(biāo)的物},{string=專業(yè)從事文學(xué)作品版權(quán)運(yùn)營的公司,label=非機(jī)構(gòu)名,type=直接標(biāo)的物}]};start=NodeImpl:id=64;offset=88;end=NodeImpl:id=65;offset=90。
b)AnnotationImpl:id=80;type=FinalTag;features={rule=Event_WantCapitalRule,time=2015年10月27日20時(shí),wantCapital_type=非公開發(fā)行,event_type=PlanWantCapital,agents=(略)。
c)AnnotationImpl:id=81;type=FinalTag;features={rule=Event_RestructRule,time=2015年10月27日20時(shí),event_type=PlanRestr,agents=(略)。
結(jié)果分析:
1)所有抽取的事件要素都實(shí)現(xiàn)了以屬性的形式存儲(chǔ)于features集合中。本例中,共從實(shí)例文本中共抽取出了三類事件及其屬性信息(擬收購、擬募資、擬重組),分別處理為三條類型為FinalTag的標(biāo)注。
2)本例中抽取的所有事件要素匯總?cè)绫?所示。
表3 事件要素抽取結(jié)果匯總
為了考察本文方法對事件類型識(shí)別的能力,對屬于26類金融事件的2 414條測試樣本進(jìn)行了事件類別識(shí)別測試,測試樣本數(shù)排名前10位的事件類別識(shí)別結(jié)果如表4所示。其中:P(Precision)為準(zhǔn)確率,R(Recall)為召回率,F1(F1 Measure)為F1測量值。
26種事件類型總的識(shí)別結(jié)果如圖3所示,分類指標(biāo)的微平均值為:Micro_F1=0.903,Micro_Precision=0.939,Micro_Recall=0.869。
重大合同事件雖然樣本數(shù)較多(105個(gè))但召回率指標(biāo)表現(xiàn)較低(R=0.563,P=0.952,F1=0.708),其原因是針對重大合同事件的詞匯-語義規(guī)則語句的覆蓋程度不夠,還有待進(jìn)一步拓展提升。而“重組通過”這類事件指標(biāo)表現(xiàn)較低的原因一方面同樣是因?yàn)獒槍υ擃愂录脑~匯-語義規(guī)則語句的覆蓋程度不夠,另一方面也與樣本數(shù)過少(僅16個(gè))有關(guān),因此需要增加更多的該類事件的測試樣本。
圖3 26類金融事件類別識(shí)別結(jié)果
Tab. 4 Event identification results of top 10 samples
為了進(jìn)一步分析本文所提出的基于規(guī)則模式方法與機(jī)器學(xué)習(xí)方法在事件分類方面的效果差異,在使用相同測試樣本數(shù)據(jù)集的基礎(chǔ)上,分別采用本文方法(Lexical-Semantic Pattern, LSP)與基于支持向量機(jī)(Support Vector Machine, SVM)[21]、樸素貝葉斯(Na?ve Bayes, NB)[22]、K近鄰(K-Nearest Neighbor,KNN)[23]3種機(jī)器學(xué)習(xí)分類算法(輸入特征分別采?。何谋痉衷~并去除停用詞后的詞條作為輸入特征集合(Segmentation, SEG)和通過本文方法獲取的事件要素(語義標(biāo)注)作為輸入特征集合(Semantic, SEM)兩種方式),進(jìn)行綜合比較,所有事件類型的微平均結(jié)果如表5所示。
從表5可知采用本文所述方法(LSP)比所有的機(jī)器學(xué)習(xí)方法所獲得的分類指標(biāo)結(jié)果都有較大幅度的提升,例如:本文方法的微平均F1(Micro_F1)值(0.903)比3種機(jī)器學(xué)習(xí)方法中最高的F1值(0.814)(NB+SEM方法)提高了8.9個(gè)百分點(diǎn))。這說明基于詞匯-語義規(guī)則模式的事件分類方法雖然相比機(jī)器學(xué)習(xí)方法存在靈活性和通用性差,而且規(guī)則編制的手工工作量大等缺點(diǎn);但當(dāng)其應(yīng)用于特定行業(yè)領(lǐng)域時(shí),與機(jī)器學(xué)習(xí)方法相比往往能夠獲得更好的事件分類效果,并且隨著規(guī)則的不斷完善和優(yōu)化,指標(biāo)提升的空間也很大。
從與其他文獻(xiàn)的研究結(jié)果比較來看,在各自使用不同數(shù)據(jù)和所處場景的條件下,本文方法獲得的3種指標(biāo)的微平均值都超過了0.85,其效果要略好于文獻(xiàn)[24]的結(jié)果,該文獻(xiàn)采用統(tǒng)計(jì)學(xué)習(xí)方式(基于Labed_LDA(Latent Dirichlet Allocation)模型)在最大10個(gè)主題類別上獲得的事件分類指標(biāo)Micor_F1值為0.908;而普通的SVM方法在10類時(shí)Micro_F1的值只有0.85左右,而本文方法獲得的Micor_F1指標(biāo)為0.903,且本文涉及的事件分類數(shù)目是26種,分類的難度高于10種類別。
表5 多種方法的微平均指標(biāo)匯總
本文采用基于層次化詞匯-語義規(guī)則模式的方法從金融新聞文本中提取出事件類別、參與人、時(shí)間、地點(diǎn)、交易金額等大量與金融事件相關(guān)的語義要素信息。本文的創(chuàng)新之處在于:1)定義了一個(gè)面向?qū)嶋H行業(yè)應(yīng)用的金融事件表示模型;2)采用一種新的基于深度學(xué)習(xí)方法(Word2Vector)來自動(dòng)生成概念同義詞典的方法,解決了傳統(tǒng)手工方式編制概念同義詞典費(fèi)時(shí)費(fèi)力的問題;3)設(shè)計(jì)了一種基于有限狀態(tài)機(jī)驅(qū)動(dòng)的層次化的詞匯-語義規(guī)則標(biāo)注模式方法,從而實(shí)現(xiàn)了對事件語義標(biāo)注信息的層次化提取和抽象。
采用本文方法可以有效地解決傳統(tǒng)的基于詞匯或詞匯-句法規(guī)則方法中所存著的:對句法分析結(jié)果依賴性過強(qiáng),不能精確描述同義詞、反義詞以及上位詞之間的聯(lián)系,不能按專業(yè)領(lǐng)域業(yè)務(wù)需求實(shí)現(xiàn)對詞匯的概念化抽象等問題。本文存在的不足是由于這種層次化詞匯-語義模式方法是面向?qū)I(yè)領(lǐng)域的,因此針對其他專業(yè)領(lǐng)域的文本信息抽取任務(wù)還需要設(shè)計(jì)不同的信息表示模型,編制不同的規(guī)則語句來實(shí)現(xiàn)。
References)
[1] 中國中文信息學(xué)會(huì).中文信息處理發(fā)展報(bào)告[EB/OL].(2016- 12- 23) [2017- 01- 15].http://cips-upload.bj.bcebos.com/cips2016.pdf.(Chinese Information Processing Society of China. Chinese information processing development report[EB/OL].(2016- 12- 23) [2017- 01- 15]. http://cips-upload.bj.bcebos.com/cips2016.pdf.)
[2] LI P, ZHU Q, DIAO H, et al. Joint modeling of trigger identification and event type determination in Chinese event extraction [C]// COLING 2012: Proceedings of the 24th International Conference on Computational Linguistics. Mumbai: [s.n.], 2012: 1635-1652.
[3] HOGENBOOM F, FRASINCAR F, KAYMAK U, et al. A survey of event extraction methods from text for decision support systems [J]. Decision Support Systems, 2016, 85: 12-22.
[4] 羅明,黃海量.一種基于有限狀態(tài)機(jī)的中文地址標(biāo)準(zhǔn)化方法[J].計(jì)算機(jī)應(yīng)用研究,2016,33(12):3691-3695.(LUO M, HUANG H L. New method of Chinese address standardization based on finite state machine theory [J]. Application Research of Computers, 2016, 33(12): 3691-3695.)
[5] CHANG C H, CHUANG H M, HUANG C Y, et al. Enhancing POI search on maps via online address extraction and associated information segmentation [J]. Applied Intelligence, 2016, 44(3): 539-556.
[6] AL ZAMIL M G H, CAN A B, et al. ROLEX-SP: rules of lexical syntactic patterns for free text categorization [J]. Knowledge-Based Systems, 2011, 24(1): 58-65.
[7] 劉丹丹,彭成,錢龍華,等.詞匯語義信息對中文實(shí)體關(guān)系抽取影響的比較[J].計(jì)算機(jī)應(yīng)用,2012,32(8):2238-2244.(LIU D D, PENG C, QIAN L H, et al. Comparative analysis of impact of lexical semantic information on Chinese entity relation extraction [J].Journal of Computer Applications, 2012, 32(8): 2238-2244.)
[8] 宗成慶.統(tǒng)計(jì)自然語言處理[M].2版.北京:清華大學(xué)出版社,2013:110-128.(ZONG C Q. Statistical Natural Language Processing [M]. 2nd ed. Beijing: Tsinghua University Press, 2013: 110-128.)
[9] 李培峰,周國棟,朱巧明.基于語義的中文事件觸發(fā)詞抽取聯(lián)合模型[J].軟件學(xué)報(bào),2016,27(2): 280-294.(LI P F, ZHOU G D, ZHU Q M. Semantics-based joint model of Chinese event trigger extraction [J]. Journal of Software, 2016, 27(2): 280-294.)
[10] ATKINSON M, DU M, PISKORSKI J, et al. Techniques for multilingual security-related event extraction from online news [M]// Computational Linguistics. Berlin: Springer, 2013: 163-186.
[11] 孫明.語義Web使用挖掘若干關(guān)鍵技術(shù)研究[D].成都:電子科技大學(xué),2009:37-49.(SUN M. Research on some key issues for semantic Web usage mining [D]. Chengdu: University of Electronic Science and Technology of China, 2009: 37-49.)
[12] WANG W, ZHAO D, et al. Ontology-based event modeling for semantic understanding of Chinese news story [M]// Natural Language Processing and Chinese Computing. Berlin: Springer, 2012: 58-68.
[13] ZHANG Y, LIU J. Microblogging short text classification based on Word2Vec [C]// Proceedings of the 2016 International Conference on Electronic, Mechanical, Information and Management. [S.l.]: Atlantis Press, 2016: 395-401.
[14] CUNNINGHAM H, MAYNARD D, BONTCHEVA K, et al. GATE: a framework and graphical development environment for robust NLP tools and applications [C]// Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics. Oxford: Oxford University Press, 2002: 47-51.
[15] CUNNINGHAM H, MAYNARD D, TABLAN V, et al. JAPE: a Java Annotation Patterns Engine [EB/OL]. (2000- 10- 12)[2016- 06- 12]. http://www.dcs.shef.ac.uk/intranet/research/public/resmes/CS0010.pdf.
[16] FUENTES-LORENZO D, NDEZ N, FISTEUS J, et al. Improving large-scale search engines with semantic annotations [J]. Expert Systems with Applications, 2013, 40(6): 2287-2296.
[17] GOOCH P, ROUDSARI A. Lexical patterns, features and knowledge resources for conference resolution in clinical notes [J]. Journal of Biomedical Informatics, 2012, 45(5): 901-912.
[18] FERNANDEZ M, PICCOLO L S G, MAYNARD D, et al. Talking climate change via social media: communication, engagement and behavior [C]// Proceedings of the 2016 ACM Conference on Web Science. New York: ACM, 2016: 85-94.
[19] 王俊華,左萬利,彭濤.面向文本的本體學(xué)習(xí)方法[J].吉林大學(xué)學(xué)報(bào)(工學(xué)版),2015,45(1): 236-244.(WANG J H, ZUO W L, PENG T. Test-oriented ontology learning methods [J]. Journal of Jilin University (Engineering and Technology Edition), 2015, 45(1): 236-244.)
[20] MIKOLOV T, SUTSKEVER I, CHEN K, et al. Distributed representations of words and phrases and their compositionality [C]// Proceedings of the 2013 International Conference on Neural Information Processing Systems. West Chester, OH: Curran Associates Inc., 2013: 3111-3119.
[21] ALTINEL B, DIRI B, GANIZ M C. A novel semantic smoothing kernel for text classification with class-based weighting [J]. Knowledge-Based Systems, 2015, 89: 265-277.
[22] ZHANG L, JIANG L, LI C, et al. Two feature weighting approaches for naive Bayes text classifiers [J]. Knowledge-Based Systems, 2016, 100:137-144.
[23] ZHANG X, LI Y, KOTAGIRI R, et al.KRNN:K, Rare-class nearest neighbour classification [J]. Pattern Recognition, 2016, 62:33-44.
[24] 李文波,孫樂,張大鯤.基于Labeled-LDA模型的文本分類新算法[J].計(jì)算機(jī)學(xué)報(bào),2008,31(4): 620-627.(LI W B, SUN L, ZHANG D K. Text classification based on labeled-LDA model [J]. Chinese Journal of Computers, 2008, 31(4): 620-627.)
This work is partially supported by the Shanghai Science and Technology Talents Project (14XD1421000), the Shanghai Science and Technology Innovation Action Plan Project (16511102900).
LUOMing, born in 1974, Ph. D., senior engineer. His research interests include data mining, natural language processing, artificial intelligence.
HUANGHailiang, born in 1975, Ph. D., professor. His research interests include big data technology, AI method and their applications in field of finance and economics.