本發(fā)明屬于信息技術(shù)、數(shù)據(jù)挖掘技術(shù)領(lǐng)域,具體涉及一種基于點(diǎn)評(píng)數(shù)據(jù)的語義詞典構(gòu)建方法。
背景技術(shù):
隨著電子商務(wù)的迅猛發(fā)展,互聯(lián)網(wǎng)上的點(diǎn)評(píng)從逐漸進(jìn)入人們視野,到慢慢影響用戶的選擇,再到對(duì)品牌的影響正一步步加深。以酒店業(yè)為例,酒店希望借助技術(shù)手段獲取用戶的點(diǎn)評(píng)反饋,用于指導(dǎo)酒店的品牌管理和運(yùn)營管理,提升品牌形象和服務(wù)質(zhì)量。用戶希望查看其他用戶的點(diǎn)評(píng),明確酒店的優(yōu)點(diǎn)和缺點(diǎn),以此作為預(yù)訂的重要參考。Tripadvisor研究顯示,超過85%的用戶非常重視酒店的口碑質(zhì)量,近90%的用戶在做出預(yù)訂決策前查看用戶點(diǎn)評(píng)。
越來越多的用戶樂于在互聯(lián)網(wǎng)上分享自己的觀點(diǎn)或體驗(yàn),這類點(diǎn)評(píng)數(shù)據(jù)爆炸式增長,僅靠人工的方法難以應(yīng)對(duì)在線海量點(diǎn)評(píng)的收集和處理。因此,迫切需要計(jì)算機(jī)幫助用戶快速獲取和整理這些點(diǎn)評(píng)信息,情感分析(Sentiment Analysis)技術(shù)應(yīng)運(yùn)而生。情感分析不僅是信息處理領(lǐng)域的研究熱點(diǎn),在產(chǎn)業(yè)界也引起了廣泛關(guān)注。
要分析點(diǎn)評(píng)的情感,首先要識(shí)別出點(diǎn)評(píng)中的有價(jià)值的情感信息要素,這包括:1)評(píng)價(jià)對(duì)象,如“酒店”、“價(jià)格”等;2)評(píng)價(jià)成分,如“非常好”、“還算干凈”等。其中,評(píng)價(jià)成分包括情感詞(如“好”、“干凈”等)、程度副詞(如“非?!钡?、普通副詞(如“大都”等)以及否定詞(如“不”等),評(píng)價(jià)成分不僅表達(dá)了情感,還通過其修飾成分加強(qiáng)、減弱或置反了情感表達(dá)句的情感極性,從而使情感表達(dá)得更加豐富。
情感詞在情感分析中的重要性是不言而喻的。然而很多情況下,單獨(dú)的情感詞的極性是有歧義的,如“餐廳的價(jià)格很高”的“高”描述“餐廳價(jià)格”時(shí)表示貶義,而“餐廳員工工作效率很高”的“高”的描述“工作效率”時(shí)表示褒義。因此,在文本的情感分析中僅考慮情感詞是遠(yuǎn)遠(yuǎn)不夠的,還需要考慮評(píng)價(jià)對(duì)象與情感詞的搭配,如<價(jià)格,高>,<工作效率,高>這樣的二元搭配。
上述各類語義詞典,無論是情感詞詞典、程度副詞詞典等,還是搭配詞典等,對(duì)于文本情感分析有著舉足輕重的作用。目前純?nèi)斯な占淼脑~典資源,規(guī)模是不夠的,效率也非常低。一種更好的方法是基于語料庫的統(tǒng)計(jì)方法或機(jī)器學(xué)習(xí)方法,這種方法雖然會(huì)帶來一些 噪音,但這時(shí)再介入人工,成本是比較低的。Bootstrapping是一種半監(jiān)督的機(jī)器學(xué)習(xí)方法,在信息抽取、知識(shí)庫構(gòu)建領(lǐng)域獲得廣泛應(yīng)用,也可以借鑒應(yīng)用到語義詞典構(gòu)建中。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)上述問題,提供一種基于點(diǎn)評(píng)數(shù)據(jù)的語義詞典構(gòu)建方法,能夠產(chǎn)生高質(zhì)量的語義詞典和模板庫。
本發(fā)明采用的技術(shù)方案如下:
一種基于點(diǎn)評(píng)數(shù)據(jù)的語義詞典構(gòu)建方法,包括如下步驟:
1)獲取點(diǎn)評(píng)數(shù)據(jù),通過少量點(diǎn)評(píng)數(shù)據(jù)獲得各個(gè)語義類的語義詞,構(gòu)建種子語義詞典;
2)對(duì)點(diǎn)評(píng)數(shù)據(jù)的句子進(jìn)行分詞處理;
3)對(duì)分詞后的點(diǎn)評(píng)數(shù)據(jù),逐詞判定其語義類并用語義類標(biāo)簽進(jìn)行替換;
4)對(duì)標(biāo)簽替換后的點(diǎn)評(píng)數(shù)據(jù)進(jìn)行斷句,根據(jù)各語義類的名稱及各語義類包含的具體詞語生成模版;
5)將模版應(yīng)用到語義類標(biāo)簽替換后的點(diǎn)評(píng)數(shù)據(jù)中,以抽取各語義類的語義詞;
6)根據(jù)模版的重要性、推廣性和準(zhǔn)確性,對(duì)各模版進(jìn)行打分;
7)選取得分最高的部分模版,根據(jù)選取的模版及其打分計(jì)算各模版抽取的語義詞的得分,進(jìn)而選取得分最高的部分語義詞對(duì)語義詞典進(jìn)行擴(kuò)充;
8)步驟3)至步驟7)迭代進(jìn)行,直到挑選出來的語義詞不正確時(shí)迭代終止,得到最終的語義詞典,并由各模版構(gòu)成模版庫。
進(jìn)一步地,步驟1)通過聚焦爬蟲從點(diǎn)評(píng)網(wǎng)站獲取在線點(diǎn)評(píng)數(shù)據(jù),并通過人工查看少量點(diǎn)評(píng),整理各個(gè)語義類的語義詞,形成種子詞典。
進(jìn)一步地,步驟2)首先采用基于詞典的最大匹配分詞方法進(jìn)行分詞,然后針對(duì)分詞有歧義的部分采用序列標(biāo)注的分詞方法得到正確的分詞結(jié)果;所述序列標(biāo)注的分詞方法將詞的切分問題轉(zhuǎn)換為字的分類問題,每個(gè)字根據(jù)其在詞中的不同位置,賦予不同的位置類別標(biāo)記,基于這樣的標(biāo)記序列確定句子的切分方式。
進(jìn)一步地,步驟3)所述語義類包括評(píng)價(jià)對(duì)象詞、評(píng)價(jià)屬性詞、情感詞、程度副詞、普通副詞、否定詞、插入詞。
進(jìn)一步地,步驟4)根據(jù)“。”、“!”、“?”3個(gè)標(biāo)點(diǎn)符號(hào)進(jìn)行斷句,并限定模版的最小長度為3個(gè)詞,最大長度為7個(gè)詞。
進(jìn)一步地,步驟5)抽取各語義類的語義詞時(shí),當(dāng)某個(gè)點(diǎn)評(píng)片段對(duì)應(yīng)的模版與步驟4)所得模版的差異只有一個(gè)詞時(shí),將該詞作為相應(yīng)語義類的實(shí)例詞。
進(jìn)一步地,步驟7)所述得分最高的部分模版是得分最高的前5~10%的模版,所述得分最高的部分語義詞是得分最高的前5~10%的語義詞。
進(jìn)一步地,在步驟8)之后,由人工進(jìn)行確定語義詞典中情感詞的極性,以及情感詞與評(píng)價(jià)對(duì)象詞、評(píng)價(jià)屬性詞的搭配極性;人工確定過程中,將其所屬模版對(duì)應(yīng)的點(diǎn)評(píng)片段作為判定的依據(jù)。
與純?nèi)斯な占姆绞较啾?,本發(fā)明采用的基于點(diǎn)評(píng)語料的方法效率高,可以在較短時(shí)間內(nèi)整理得到較大規(guī)模的語義詞典;與傳統(tǒng)Bootstrapping方法相比,本發(fā)明提出的模版打分能有效地衡量模版嵌套的情況;與傳統(tǒng)基于Bootstrapping的語義詞典構(gòu)建方法相比,本發(fā)明可以同時(shí)抽取多個(gè)語義類。
附圖說明
圖1是本發(fā)明的基于點(diǎn)評(píng)數(shù)據(jù)的語義詞典構(gòu)建方法的步驟流程圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面通過具體實(shí)施例和附圖,對(duì)本發(fā)明做進(jìn)一步說明。
對(duì)于語義詞典的構(gòu)建,本發(fā)明采用基于自舉(Bootstrapping)的方法。自舉,即自擴(kuò)展或自舉,是一種半監(jiān)督的機(jī)器學(xué)習(xí)方法,可以用于同時(shí)抽取語義詞典和模板。這種方法的思想基于這樣的觀察:抽取模板可以用于抽取新的實(shí)例,反過來這些實(shí)例又可以用于抽取新的模板。這種方法的優(yōu)勢(shì)在于不需要標(biāo)注的訓(xùn)練語料,僅僅需要少數(shù)種子。首先通過人工干預(yù)得到初始化的種子詞語,利用種子詞語獲得模板,進(jìn)而通過模板獲得種子詞語,如此迭代進(jìn)行。在每一輪迭代中,都將產(chǎn)生新的標(biāo)注數(shù)據(jù),最優(yōu)的詞語會(huì)添加到相應(yīng)到語義詞典中,最優(yōu)的模版也會(huì)添加到模版庫中,用這些新的標(biāo)注數(shù)據(jù)重新學(xué)習(xí)模型,從而又可以產(chǎn)生新的數(shù)據(jù),如此循環(huán)往復(fù),直到最終收斂結(jié)束,從而獲得更多的種子詞語和模板。這就是最基本的Bootstrapping算法(或過程)。
語義詞典的語義類包括評(píng)價(jià)對(duì)象詞(Obj)、評(píng)價(jià)屬性詞(Attr)、情感詞(Sent)、程度副詞(Dgr)、普通副詞(Adv)、否定詞(Neg)、插入詞(Inter)等,每個(gè)語義類都包括若干詞語,模版就是由語義類名稱或具體詞語組成的序列。
本發(fā)明在現(xiàn)有的Bootstrapping方法基礎(chǔ)上進(jìn)行改進(jìn),圖1是本發(fā)明方法的步驟流程圖,下面是具體的實(shí)施步驟:
步驟1:數(shù)據(jù)準(zhǔn)備。通過聚焦爬蟲從攜程等主流點(diǎn)評(píng)網(wǎng)站獲取在線點(diǎn)評(píng)數(shù)據(jù)。
步驟2:種子詞典構(gòu)建。人工查看少量(如500條)點(diǎn)評(píng),整理各個(gè)語義類的語義詞,形成種子詞典,將該語義詞典記為SemLex。
步驟3:點(diǎn)評(píng)分詞。中文分詞是中文自然語言處理的基礎(chǔ)步驟,本發(fā)明分詞采用詞典分詞和統(tǒng)計(jì)分詞融合的方法。首先采用基于詞典的最大匹配分詞方法,針對(duì)分詞有歧義的部分再采用序列標(biāo)注的分詞方法。
基于詞典的最大匹配分詞方法,給定詞典,對(duì)于待分詞的漢字序列,依次尋找匹配的最長詞典詞,無匹配者則作為單字詞處理,直至該漢字序列處理完畢。按照對(duì)漢字序列掃描方向的不同,該方法又可以分為:正向最大匹配(從左向右匹配)和逆向最大匹配(從右向左匹配)。例如,對(duì)于序列“當(dāng)原子結(jié)合成分子時(shí)”,正向最大匹配結(jié)果為“當(dāng)|原子|結(jié)合|成|分子|時(shí)”,而逆向最大匹配結(jié)果為“當(dāng)|原子|結(jié)合|成分|子時(shí)”。
顯然,正向最大匹配和逆向最大匹配都不能很好地處理切分歧義問題。正向最大匹配和逆向最大匹配也可以結(jié)合形成雙向最大匹配,雙向匹配時(shí)正向和逆向匹配不一致的地方,往往是潛在歧義的地方。有歧義往往需要根據(jù)具體上下文確認(rèn)分詞結(jié)果。有監(jiān)督的序列標(biāo)注方法能夠充分的挖掘上下文的豐富特征,因此有歧義的情況下本發(fā)明引入序列標(biāo)注方法消除歧義。該方法將詞的切分問題轉(zhuǎn)換為字的分類問題,每個(gè)字根據(jù)其在詞中的不同位置,賦予不同的位置類別標(biāo)記,比如詞首、詞中、詞尾和單字詞?;谶@樣的標(biāo)記序列,很容易確定句子的切分方式。其中,B(Begin)、M(Middle)、E(End)、S(Single)分別表示詞首、詞中、詞尾、單字詞。有了字的標(biāo)記序列,符合正則表達(dá)式“S”或“B(M)*E”的字序列表示一個(gè)詞,從而很容易地完成句子切分。為了實(shí)現(xiàn)序列標(biāo)注任務(wù),本發(fā)明采用條件隨機(jī)場(chǎng)模型(Conditional Random Fields,CRF),該模型在自然語言處理中得到廣泛應(yīng)用,并取得了很大成功。具體特征包括:前一個(gè)字、當(dāng)前字、后一個(gè)字、前一個(gè)字與當(dāng)前字、當(dāng)前字與后一個(gè)字,以及基于這些一元特征的二元特征。條件隨機(jī)場(chǎng)模型利用提取的這些特征,預(yù)測(cè)出的每個(gè)字的類別標(biāo)記。
最大匹配方法的詞典以及有監(jiān)督的條件隨機(jī)場(chǎng)模型的訓(xùn)練學(xué)習(xí)語料都來自本發(fā)明人工標(biāo)注的10萬條酒店點(diǎn)評(píng)。
步驟4:語義類標(biāo)簽替換。對(duì)分詞后的點(diǎn)評(píng)逐詞判定其語義類并用語義類標(biāo)簽替換,如“餐廳|的|價(jià)格|很|高”,替換為“Obj|的|Attr|Dgr|Sent”,對(duì)于點(diǎn)評(píng)起始和結(jié)束位置分別添加“Start”和“End”標(biāo)簽,點(diǎn)評(píng)中除了“。”、“!”、“?”之外的標(biāo)點(diǎn)符號(hào)也采用“Punc”標(biāo)簽替換。
步驟5:模版生成。該步驟對(duì)標(biāo)簽替換后的點(diǎn)評(píng)數(shù)據(jù)進(jìn)行斷句,根據(jù)各語義類的名稱及各 語義類包含的具體詞語生成模版。本實(shí)施例中,根據(jù)“。”、“!”、“?”3個(gè)標(biāo)點(diǎn)符號(hào)斷句,限定模版最小長度3個(gè)詞,最大長度7個(gè)詞,掃描標(biāo)簽替換后的點(diǎn)評(píng),生成候選模版。
步驟6:語義詞抽取。將候選模版應(yīng)用到語義類標(biāo)簽替換后的點(diǎn)評(píng)中。當(dāng)某個(gè)點(diǎn)評(píng)片段對(duì)應(yīng)的模版與候選模版的差異只有一個(gè)詞時(shí),將該詞作為相應(yīng)語義類的實(shí)例詞。例如,對(duì)于點(diǎn)評(píng)片段“價(jià)格|很|高”,其中“價(jià)格”屬于評(píng)價(jià)屬性詞,“高”屬于情感詞,而“很”不屬于任何語義類,這時(shí)其對(duì)應(yīng)的模版為“Attr|很|Sent”。這與候選模版“Attr|Dgr|Sent”只有中間一個(gè)詞不同,則將“很”抽取出來作為程度副詞的實(shí)例詞。
步驟7:模版打分。本發(fā)明從兩方面打分,一方面通過頻次衡量模版的重要性和推廣性,另一方面通過在語義詞典中的命中率衡量模版的準(zhǔn)確性。
模版pati重要性和推廣性打分S(pati)的計(jì)算公式如下:
其中,|pati|是模版pati的長度,以詞數(shù)計(jì)算,f(pati)表示模版pati的頻次,C(pati)表示嵌套pati的模版集合,如點(diǎn)評(píng)片段“餐廳|的|價(jià)格|很|高”對(duì)應(yīng)的模版“Obj|的|Attr|Dgr|Sent”嵌套點(diǎn)評(píng)片段“價(jià)格|很|高”對(duì)應(yīng)的模版“Attr|Dgr|Sent”。
pati準(zhǔn)確性打分P(pati)的計(jì)算公式如下:
其中,T(pati)表示模版pati抽取的語義詞集合,f(t)表示語義詞t的頻次,SemLex為步驟1構(gòu)建的種子語義詞典。
我們采用Sigmoid函數(shù)將S(pati)歸一化到(0,1),進(jìn)而融合兩方面的打分得到F(pati),計(jì)算公式如下:
其中α為重要性和推廣性打分S(pati)的權(quán)重,取值范圍為[0,1]。本發(fā)明更注重模版的準(zhǔn)確性,故將α=0.4,還可以根據(jù)具體應(yīng)用加以調(diào)整。
步驟8:模版挑選。根據(jù)F(pati)選取得分最高的前5~10%的模版。
步驟9:語義詞打分。根據(jù)挑選的模版patk及其打分,計(jì)算該模版抽取的語義詞的得分,計(jì)算公式如下:
步驟10:語義詞典擴(kuò)充。選取得分最高的前5~10%的詞添加到語義詞典SemLex中。
步驟4到步驟10迭代進(jìn)行。迭代終止條件。挑選出來的語義詞明顯不正確時(shí)終止。
步驟11:極性確定。對(duì)于情感詞的極性,以及情感詞與評(píng)價(jià)對(duì)象詞、評(píng)價(jià)屬性詞的搭配極性,由人工完成。人工確定過程中,將其所屬模版對(duì)應(yīng)的點(diǎn)評(píng)片段作為判定的依據(jù)。
結(jié)果表明,本發(fā)明在準(zhǔn)確率和召回率上都取得了不錯(cuò)的性能,產(chǎn)生高質(zhì)量的語義詞典和模板庫。
在1000萬條酒店點(diǎn)評(píng)上的實(shí)驗(yàn)結(jié)果表明,本發(fā)明提出的語義詞典構(gòu)建方法是有效的。抽取的評(píng)價(jià)對(duì)象詞有4835個(gè),如“早餐”、“網(wǎng)絡(luò)”等;抽取的評(píng)價(jià)屬性詞有175個(gè),如“價(jià)格”、“態(tài)度”等;抽取的情感詞有2393個(gè),如“舒服”、“贊”等;抽取的程度副詞有92個(gè),如“十分”、“過分”等;抽取的普通副詞有214個(gè),如“十分”、“過度”等;抽取的否定詞有28個(gè),如“木有”、“不會(huì)”等;抽取的插入詞有143個(gè),如“感覺”、“總的來說”等。
以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,本領(lǐng)域的普通技術(shù)人員可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求書所述為準(zhǔn)。