李思彤 冀美琪 夏欣雨 殷復(fù)蓮
摘 ?要: 針對文學(xué)作品人物關(guān)系復(fù)雜,無法進行快速準(zhǔn)確查詢的問題,本文提出基于文學(xué)作品的人物關(guān)系問答系統(tǒng)設(shè)計方案并進行實例驗證。本文采用文本表示、實體識別等自然語言處理技術(shù),研究文學(xué)作品中人物關(guān)系的自動抽取方法,實現(xiàn)了根據(jù)用戶輸入的人物名稱快速返回其人物關(guān)系的功能。典型案例驗證了系統(tǒng)的有效性。
關(guān)鍵詞:?人物關(guān)系抽取;自動問答系統(tǒng);文學(xué)作品;人物關(guān)系三元組
中圖分類號: TP391????文獻(xiàn)標(biāo)識碼:?A????DOI:10.3969/j.issn.1003-6970.2019.09.032
本文著錄格式:李思彤,冀美琪,夏欣雨,等. 基于文學(xué)作品的人物關(guān)系問答系統(tǒng)設(shè)計與實現(xiàn)[J]. 軟件,2019,40(9):139-143
Design and Implementation of Question and Answer System for Personal Relations Based on Literary Works
LI Si-tong,?JI Mei-qi, XIA Xin-yu, YIN Fu-lian
(Communication University of China, College of Information and Communication Engineering,?Beijing 100024, China)
【Abstract】: Aiming at the problem that the relationship between characters in literary works is complex and can not???be queried quickly and accurately, this paper proposes a design scheme of a question-and-answer system based on the relationship between characters in literary works and verifies it with examples. In this paper, we use natural language processing technology such as text representation and entity recognition to study the automatic extraction method of the relationship between characters in literary works, and realize the function of returning the relationship between characters quickly according to the user's input names. Typical cases verify the effectiveness of the system.
【Key words】: Character relation extraction; Automatic question and answer system; Literature works; Character relation triple
近年來網(wǎng)絡(luò)文學(xué)蓬勃發(fā)展,文學(xué)作品的數(shù)量和題材層出不窮。一部文學(xué)作品的字?jǐn)?shù)通常是超過百萬的,這就使得用戶僅僅通過自己閱讀是很難準(zhǔn)確地捕捉到作品中具體的人物關(guān)系。如果使用傳統(tǒng)的搜索引擎對文學(xué)作品中的人物關(guān)系進行查詢,得到的結(jié)果往往都是相對應(yīng)的大量文字片段的網(wǎng)頁鏈接,無法得到簡潔準(zhǔn)確的答案[1]。由此,能夠彌補上述缺陷的自動問答系統(tǒng)逐漸受到廣泛關(guān)注,它不僅允許用戶以自然語言的方式進行提問,還能夠?qū)崿F(xiàn)針對用戶提問返回相應(yīng)簡潔準(zhǔn)確答案句的功???能[2],在一定程度上提高了用戶的查詢效率。
自動問答系統(tǒng)作為人工智能的一個分支,已有了漫長的發(fā)展歷史。20世紀(jì)60年代發(fā)展的問答系統(tǒng),允許用戶以自然語言的方式查詢數(shù)據(jù)庫中存儲的信息。該時期最成功受到人們關(guān)注的兩個問答系統(tǒng)是BASEBALL[3]和LUNAR[4]。到了20世紀(jì)90年代,該時期的問答系統(tǒng)已經(jīng)可以彌補傳統(tǒng)搜索引擎針對用戶提問返回一系列相關(guān)網(wǎng)頁鏈接的缺陷,最為著名的問答系統(tǒng)是Start系統(tǒng),該系統(tǒng)根據(jù)用戶所查詢的信息是否存在于已有數(shù)據(jù)庫中設(shè)定了兩種處理模式,即當(dāng)用戶查詢的內(nèi)容已經(jīng)存在于知識庫中的情況下,系統(tǒng)可以直接將對應(yīng)的答案返回給用戶;如果知識庫中沒有存儲對應(yīng)的信息,則通過搜索引擎檢索并處理后反饋給用戶[5]。近年來,隨著神經(jīng)網(wǎng)絡(luò)技術(shù)、深度學(xué)習(xí)技術(shù)等的發(fā)展進步,自動問答系統(tǒng)進入了以知識和知識自動化為中心的新階段。21世紀(jì)初期誕生的Watson[6]問答系統(tǒng),由美國IBM公司研發(fā),通過存儲有關(guān)影視、新聞等多個領(lǐng)域的海量資料,實現(xiàn)在較短時間內(nèi)針對用戶提問返回相應(yīng)答案,并由此在知識競賽中打敗人腦一舉成名,現(xiàn)已在多個領(lǐng)域廣泛使用。
與國際上自動問答系統(tǒng)的發(fā)展相比較,我國對其的研究起步較晚。近年來隨著科學(xué)技術(shù)的飛速發(fā)展,我國各大高校和研究所也開始對其展開了深入的研究,如復(fù)旦大學(xué)[7]和中科院都參加了QA Track的競賽、上海交通大學(xué)開發(fā)的智能答疑系統(tǒng)[8]以及中科院計算所研究的知識問答系統(tǒng)[9]等。2005年百度公司推出百度知道,這是一個交互式的問答系統(tǒng),具體實現(xiàn)時主要是將用戶查詢的問題與數(shù)據(jù)庫中已存在的問題進行比較,若相同則立即返回答案,若不同則根據(jù)相似度計算返回與之相似的若干問題及答案供用戶參考[10]。整體來看,中文的語法以及語義復(fù)雜性等多因素給研究帶來了不少挑戰(zhàn),因此針對中文的語句相似度研究、文本理解等知識自動問答系統(tǒng)逐漸成為研究的熱點,且有很大的發(fā)展空間。
本文提出基于文學(xué)作品的人物關(guān)系問答系統(tǒng)研究方案,基于共現(xiàn)法進行人物對及親密度分析,定義并提取人物關(guān)系對規(guī)則,實現(xiàn)用戶以自然語言方式輸入,系統(tǒng)實現(xiàn)人物關(guān)系自動問答的功能。
本文提出的基于文學(xué)作品的人物關(guān)系問答系統(tǒng)研究方案圖如圖1所示。主要包括數(shù)據(jù)采集如網(wǎng)絡(luò)文學(xué)小說的采集、近義詞詞條及反義詞詞條的收集,數(shù)據(jù)預(yù)處理如對文本數(shù)據(jù)進行去除停用詞等操作,使用文本表示方法將文本數(shù)據(jù)表示成計算機能夠識別的向量模式,再通過實體識別、關(guān)鍵詞提取等自然語言處理技術(shù)對文學(xué)作品的內(nèi)容進行分析處理,實現(xiàn)當(dāng)用戶針對相關(guān)文本的人物關(guān)系進行提問時,能夠自動對問題答案進行檢索,進而將整理好的答案返回給用戶,以滿足用戶快速搜索的需求。
在實現(xiàn)問答系統(tǒng)的人物關(guān)系查詢功能時,進行了人物關(guān)系對及親密度的提取,將提取到的人物對及人物關(guān)系存儲成人物關(guān)系三元組和對應(yīng)的答案句,通過定義簡單和復(fù)雜兩種查詢答案句的模式,實現(xiàn)了基于文學(xué)作品的人物關(guān)系問答。
2??人物關(guān)系對及親密度的提取研究
本文在進行人物關(guān)系對及親密度的提取研究中,使用的研究方法流程圖如2所示。針對一部文學(xué)作品,首先進行基于共現(xiàn)法的人物對及親密度的提取,然后使用自定義規(guī)則進行人物關(guān)系的抽取,接著根據(jù)提取好的人物關(guān)系三元組定義答案句模式,從而實現(xiàn)當(dāng)用戶針對文學(xué)作品中的相關(guān)人物進行提問時,系統(tǒng)能夠返回給用戶人物關(guān)系答案句的功能。
2.1基于共現(xiàn)法的人物對及親密度提取
“共現(xiàn)”是指文獻(xiàn)中特征項描述的信息共同出現(xiàn)的現(xiàn)象[11]。常見的共現(xiàn)類型包括文獻(xiàn)耦合、共詞、共鏈等多種形式,本文主要使用的是于1986年被首次提出的“共詞”分析方法?!肮苍~”表示多個詞匯在同一篇文獻(xiàn)中同時出現(xiàn)。共詞分析的原理是通過文獻(xiàn)集中某幾個詞匯共同出現(xiàn)的情況,來反映這些詞之間的關(guān)聯(lián)強度,從而確定它們所代表的學(xué)科或研究領(lǐng)域的熱點及各主題之間的關(guān)系[12]。一般認(rèn)為兩個詞匯在一篇文獻(xiàn)中同時出現(xiàn)的次數(shù)越多,那么這兩個詞匯所代表的主題之間的關(guān)系越密切。將共現(xiàn)法應(yīng)用到分析小說中各個角色之間的人物關(guān)系時,則可以認(rèn)為在一個章節(jié)或一篇文章中的同一段共同出現(xiàn)的兩個人物之間,具有某種關(guān)聯(lián)。本文設(shè)計與實現(xiàn)針對文學(xué)作品的人物關(guān)系進行自動問答查詢功能,因此選用共現(xiàn)法進行人物對及親密度的提取。
本文具體使用python工具實現(xiàn)人物對及親密度的提取,主要設(shè)計思路為建立姓名字典和親密度字典。進行人物對及親密度的提取是分章節(jié)進行的,以便為后續(xù)的人物關(guān)系抽取奠定基礎(chǔ)。在每一章節(jié)中,首先借助jieba工具對文本數(shù)據(jù)進行分詞和詞性標(biāo)注,接下來使用實體識別技術(shù)識別出該章節(jié)文本中所有的人物名字,將它們存儲在姓名字典中。然后進行每一段落中兩個共同出現(xiàn)的人物名字的統(tǒng)計,同時記錄人物對共同出現(xiàn)的次數(shù),將次數(shù)記錄在對應(yīng)的親密度字典中。接下來將每一章節(jié)得到的人物對和親密度進行匯總整理,從而得到整部文學(xué)作品中人物對和親密度的數(shù)據(jù)。如果存在同一人物有多個名字的情況,則采取建立列表的方式,將該人物所有的名字都存儲在一個列表中,而該列表最終的值選定為該人物的正式名字,由此實現(xiàn)對包含該人物的人物對合并及對應(yīng)的親密度加和,通過上述操作最終實現(xiàn)基于共現(xiàn)法的人物對及親密度提取。
2.2人物關(guān)系對的定義及提取規(guī)則
人物關(guān)系對,顧名思義,即對兩個人物名稱及他們之間關(guān)系的統(tǒng)稱。其中,關(guān)于人物對的提取已在上一小節(jié)中闡述了具體實現(xiàn)方法,接下來需要說明的就是如何進行人物關(guān)系的抽取。人物關(guān)系抽取可以看作是實體關(guān)系抽取的一個重要分支,主要是將抽取中的命名實體限定為人名。實體關(guān)系的存儲形式一般為關(guān)系三元組,類比到人物關(guān)系抽取中,則可以定義人物關(guān)系對的存儲形式為人物關(guān)系三元組
本文是設(shè)計實現(xiàn)針對文學(xué)作品中人物關(guān)系的自動問答,因此人物關(guān)系對選擇通過人物關(guān)系三元組進行存儲,其中實體1和實體2代表文學(xué)作品中的兩個不同人物名稱,關(guān)系詞則是對兩個人物之間關(guān)系的具體描述詞。
本文定義的人物關(guān)系提取規(guī)則流程如圖3所示。
首先需要對描述人物關(guān)系的詞語進行收集,將文學(xué)作品中經(jīng)常出現(xiàn)的如“母親”“父親”“兄長”“叔父”等詞語存入用戶自定義詞典中,單獨標(biāo)注一種詞性。然后對需要分析的文本數(shù)據(jù)進行分詞和詞性標(biāo)注,識別能夠表示人物關(guān)系的詞語,在每一個描述人物關(guān)系詞語的前后找到距離最近的兩個人物名稱,將這兩個人物名稱以及描述關(guān)系的詞語存成一個人物關(guān)系三元組。
按照上述做法提取出來的人物關(guān)系三元組與直接利用共現(xiàn)法提取的人物對相比較,在大多情況下數(shù)量較少,也就是說極有可能存在沒有提取到確切關(guān)系詞的人物對,針對這種情況,本文選取分析該章情感傾向的方法實現(xiàn)對人物關(guān)系提取規(guī)則的補充完善。如果該章計算得到的情感傾向為正向,則將人物對關(guān)系定義為“朋友”;如果該章計算得到的情感傾向為負(fù)向,則將人物對關(guān)系定義為“敵人”。
需要說明的是,這里存在有一個特殊情況:如果存在一個人物對,他們的關(guān)系實際上是戀人關(guān)系,具體體現(xiàn)為兩人之間的親密度極高且章節(jié)情感傾向為正向,但是在文章中兩人的互動都是直接使用名字,此時無法提取到能夠描述兩人確切關(guān)系的詞語,使用上述定義的規(guī)則就會將兩人的關(guān)系錯誤地歸結(jié)為“朋友”。對于這種現(xiàn)象,本文采用結(jié)合人物對親密度數(shù)值的方法,規(guī)定了一個親密度閾值等于50(一般文學(xué)作品的章節(jié)數(shù)目都超過50章),當(dāng)親密度大于50時,可以認(rèn)為人物對之間有很親密的關(guān)系。對于親密度大于50且關(guān)系被定義為“朋友”的人物對,人工檢查此關(guān)系是否需要修改為“戀人”關(guān)系。
2.3答案句模式設(shè)定
本文設(shè)計構(gòu)建的人物關(guān)系查詢模塊,旨在返回給用戶簡潔準(zhǔn)確的答案句。由此,根據(jù)已有的人物關(guān)系三元組,規(guī)定一種答案句子的模式[13],將三元組中的數(shù)據(jù)轉(zhuǎn)為答案句進行存儲,當(dāng)用戶進行提問時,可以根據(jù)識別出來的人物名稱直接與答案句內(nèi)包含的人物名稱進行匹配,匹配成功后直接返回完整的答案句,由此為該模塊的問答功能提供便利,也在一定程度上提高了問答系統(tǒng)的處理效率。由于人物關(guān)系三元組 根據(jù)存有的人物關(guān)系三元組及對應(yīng)的答案句,本文設(shè)計實現(xiàn)的基于文學(xué)作品的人物關(guān)系查詢,擬通過簡單和復(fù)雜兩種處理方式進行體現(xiàn)。簡單的查詢處理模式,即用戶所查詢的人物關(guān)系對存在于已有的數(shù)據(jù)庫中,系統(tǒng)就可以直接返回給用戶相應(yīng)的答案句,可以實現(xiàn)對用戶提問簡潔高效的回答。復(fù)雜查詢處理模式采用基于中間人物的方法,即用戶所查詢的人物關(guān)系對沒有存在于已有的數(shù)據(jù)庫中,這時系統(tǒng)無法直接提取到對應(yīng)的答案句,需要通過尋找中間人物進行答案句組合,繼而返回給用戶組合答案句。當(dāng)存在多個中間人物符合條件時,通過引入親密度數(shù)值這一指標(biāo),選擇親密度數(shù)值最大的人物對進行最終的關(guān)系說明。3??典型案例分析
本文選擇網(wǎng)絡(luò)小說《香蜜沉沉燼如霜》作為典型案例進行分析。在問答系統(tǒng)的人物關(guān)系查詢模塊中,首先利用共現(xiàn)法統(tǒng)計了每一章節(jié)中共同出現(xiàn)的人物對以及他們之間的親密度,然后將整部文學(xué)作品的所有章節(jié)人物對進行合并整理,對具有不同人物名稱的同一人物進行自定義規(guī)則的特殊處理,由此得到了小說中包含的全部人物對及他們的親密度數(shù)值。
以《香蜜沉沉燼如霜》中的男主人公旭鳳為例,他一個人就擁有很多個不同的名字,比如女主人公錦覓對他特有的稱呼“鳳凰”、天帝天后對他的稱呼“旭鳳”、月下仙人對他特有的稱呼“鳳娃”、其他天兵天將或者仙侍對他的尊稱“二殿下”、“火神”,這么多人物名稱其實只代表“旭鳳”一個人,那么包含這些不同人物名稱的人物對也需要進行相應(yīng)的識別和合并,表1為旭鳳的所有名字與錦覓共同出現(xiàn)的次數(shù)統(tǒng)計。
由表1中四組數(shù)據(jù)可以得到,我們最終使用的旭鳳和錦覓的親密度,應(yīng)該是四組數(shù)據(jù)中的親密度加和。按照此方法對所有的人物對及親密度進行整理,從而得到準(zhǔn)確的人物對及其親密度數(shù)值。
接下來利用人物關(guān)系抽取的自定義規(guī)則提取了作品中的人物關(guān)系對,對于能夠直接提取到人物關(guān)系的人物對,將人物關(guān)系和兩個人物直接進行人物關(guān)系三元組的存儲;對于沒有提取到確切人物關(guān)系的人物對,則對該章進行基于情感詞典的情感傾向分析[14],根據(jù)得到的“正向”或“負(fù)向”的情感,規(guī)定人物關(guān)系為“朋友”或“敵人”。最終將所有的人物關(guān)系三元組,按照特定模式得到的答案句以及相應(yīng)的親密度均存儲于數(shù)據(jù)庫中,從而實現(xiàn)針對人物關(guān)系的自動問答。最終設(shè)計了可視化頁面對該問答系統(tǒng)的人物關(guān)系查詢功能進行展示。在問答系統(tǒng)的人物關(guān)系查詢模塊頁面中,用戶只需要在輸入框內(nèi)輸入想要查詢?nèi)宋镪P(guān)系的兩個人物名字,點擊查詢按鈕,就能在輸入框下方得到相應(yīng)的答案句。
圖4和圖5即為使用該問答系統(tǒng)進行人物關(guān)系查詢的具體示例。
圖4即為簡單查詢功能展示,當(dāng)用戶輸入想要查詢?nèi)宋镪P(guān)系的兩個名字為“旭鳳,錦覓”時,系統(tǒng)根據(jù)數(shù)據(jù)庫中已有的數(shù)據(jù)進行匹配,通過點擊查詢按鈕實現(xiàn)返回答案句“旭鳳是錦覓的戀人,錦覓是旭鳳的戀人?!?/p>
圖5即為通過中間人物實現(xiàn)復(fù)雜查詢功能的展示,當(dāng)用戶輸入想要查詢?nèi)宋镪P(guān)系的兩個名字為“旭鳳,先花神”時,系統(tǒng)在數(shù)據(jù)庫中沒有找到相匹配的數(shù)據(jù),所以選擇查找中間人物的方式進行答案句組合,通過比較最終選取“錦覓”作為兩者之間的中間人物進行關(guān)系說明,最終點擊查詢按鈕實現(xiàn)返回組合答案句“先花神是錦覓的母親,旭鳳是錦覓的戀人?!?h4>4 ?結(jié)論
本文立足于自然語言處理技術(shù),設(shè)計與實現(xiàn)了基于文學(xué)作品的人物關(guān)系查詢自動問答系統(tǒng),使用了共現(xiàn)法進行文學(xué)作品中人物對及親密度的提取,使用自定義規(guī)則進行了人物關(guān)系抽取,并通過存儲人物關(guān)系三元組,設(shè)定適當(dāng)?shù)拇鸢妇淠J?,最終實現(xiàn)了當(dāng)用戶針對文學(xué)作品中人物關(guān)系進行查詢時,該系統(tǒng)能夠通過文本分析等相關(guān)技術(shù),快速返回給用戶簡潔的答案句。
參考文獻(xiàn)
[1]?Wei Z, Xuan Z, Junjie C. Design and implementation of influenza Question Answering System based on multi-?strategies[C]. IEEE International Conference on Computer Science & Automation Engineering. IEEE, 2012.