王佳琦,韓 軍,孫啟童
(北京航空航天大學(xué) 軟件開發(fā)環(huán)境國家重點(diǎn)實(shí)驗(yàn)室,北京 100191)
自然語言處理包含眾多的研究和應(yīng)用領(lǐng)域,如機(jī)器翻譯、人機(jī)對話、文本分類、信息檢索等。不同的領(lǐng)域,對于語義的定義有所不同,也對語義提取的粒度及方式有著不同的需求。本文針對不同的語義提取場景,設(shè)計了不同的語義提取算法,將語句按照不同的語義模型進(jìn)行提取。本文所提出的基于依存句法的中文語義模型及語義提取方法,對語義進(jìn)行了結(jié)構(gòu)化的表述,很好地區(qū)分了不同的語義提取場景,并在各個場景中取得了預(yù)期的效果。
國內(nèi)對于語義模型的研究,主要有如下兩種?;谠~組本位語法的語義模型和基于依存句法樹的語義模型。
基于詞組本位語法的語義模型是由劉群[1]等人提出的,目的是實(shí)現(xiàn)一個漢英機(jī)器翻譯系統(tǒng)。他們從配價語法、格語法和論元結(jié)構(gòu)理論入手,在對這些理論進(jìn)行了分析研究之后,構(gòu)建出了這種通用的語義模型。1959年,法國語言學(xué)家Lucien T提出了配價語法[2-3]這一概念。配價語法以動詞為中心,對不同的動詞標(biāo)以不同的價值,以此來描述不同實(shí)體之間的關(guān)系。所謂格語法[4],又被稱為語法關(guān)系理論。“格”指的是不同詞語,在不同語態(tài)環(huán)境中發(fā)生的變化,如常常被提起的“第三人稱單數(shù)”,指的就是“格”的變化。所謂論元結(jié)構(gòu)理論[5],則是注重于語句的語義處理,同時兼顧語句的語法處理。
基于依存句法樹的語義模型,是直接使用依存句法分析[6]生成的樹狀結(jié)構(gòu)作為語義模型。依存句法分析指的是,在分詞和詞性標(biāo)注的基礎(chǔ)上,識別語句中各個詞語之間的依存關(guān)系。以“幫我買張從北京到上海的機(jī)票”為例,其依存句法樹如圖1所示。
圖1 依存句法樹示意圖
近些年,哈爾濱工業(yè)大學(xué)在依存句法分析方面取得了突破性的進(jìn)展。哈工大社會計算與信息檢索研究中心花費(fèi)數(shù)年搭建的中文自然語言處理平臺LTP[7],同時兼具分詞、詞性標(biāo)注、依存句法分析等功能。在Chinese Dependency Treebank(CDT)數(shù)據(jù)集[8]上,依存句法分析的準(zhǔn)確率高達(dá)89.5%。
對于上述兩種語義模型,都存在其各自的缺陷。基于詞組本位語法的語義模型,其目的是實(shí)現(xiàn)漢英翻譯系統(tǒng),其對于語義提取的幫助,只能對單一場景下的單句有效,遷移性較差?;谝来婢浞涞恼Z義模型,在假設(shè)依存句法分析正確的前提下,可以保證包含該語句的所有信息。但這樣也會帶來另一個問題,即語義模型所包含的信息太多,調(diào)用者難以分辨哪些是自己需要的,哪些是自己不需要的。同時,依存句法樹的生成只依賴于自然語言處理工具,而其效果是由訓(xùn)練集和訓(xùn)練算法決定的,缺乏一定的泛化能力,對邊緣數(shù)據(jù)的處理不夠完善,對語義的描述存在一定的偏差。
語義特征指的是語言中構(gòu)成意義的基本單位。1955年,Bloomfield提出了語義特征這一概念[9]。在漢語領(lǐng)域,朱德熙于1956年將語義特征用于分析漢語的語法研究[10]。
近些年,國內(nèi)對于語義特征提取方法的研究,逐漸趨于統(tǒng)一。根據(jù)邵敬敏、周芍的研究[11],語義特征提取方法可以總結(jié)歸納為如下四種方法: 內(nèi)省概括法、組合分析法、對立比較法和變換分析法。①內(nèi)省分析法適用一個固定的語法結(jié)構(gòu),當(dāng)想要了解其中某個詞語的語義時,可以嘗試將其替換為詞性相同、含義相近的詞語,然后對整個語句作出分析理解,進(jìn)而概括總結(jié)該詞語的語義。②組合分析法指的是,將兩個或兩個以上的詞語進(jìn)行組合后,可產(chǎn)生新的語義。新的語義一般與組合詞的詞性相關(guān),不同的詞性對應(yīng)著不同的語義。同時,新的語義也會因?yàn)榻M合詞所蘊(yùn)含的意義太多,而呈現(xiàn)出復(fù)雜、多義的特點(diǎn)。③對立比較法,指的是針對一詞多義這種現(xiàn)象,將該詞的所有含義列舉出來,然后分別舉例,進(jìn)行分組比較。④變化分析法一般適用于非正常語序的句子,可以將其轉(zhuǎn)變成正常語序,然后通過分析得到語義特征。
語義特征的分析和提取,是直接建立在語言學(xué)基礎(chǔ)上的,是自然語言最直接、最底層的分析方式[12]。由此可見,如何分析提取語義特征,對于研究語義提取方法有重要的指導(dǎo)作用。但是,上述方法更注重理論,并且均未定義語義模型。對于最終的語義表達(dá)結(jié)果,沒有給出明確的定義。因此,上述方法并不能直接用作語義提取算法。
要構(gòu)建語義模型,首先要定義何為語義。廣義上來講,語義指的是語言所蘊(yùn)含的含義。不同的自然語言,基于不同的符號,這些符號起初不包含信息。人們對于相同的符號,有著相同的理解,此時這些符號便蘊(yùn)含了信息。
語義模型的作用就是,從自然語言中提取信息,并對這些信息進(jìn)行結(jié)構(gòu)化的表述。因此,語義模型的構(gòu)建,需圍繞信息提取來展開。
精簡語義提取場景,指的是用戶在處理語句時,使用的語義數(shù)量相對較少,且語義均為普遍的社會常識,如目的地,出發(fā)地等。其特點(diǎn)是,數(shù)量較少的語義即可完成用戶對語義提取的需求。
針對上述場景,本文提出了鍵值對語義模型。此模型使用key-value鍵值對的形式表示語義。其定義了所有語義項(xiàng)的key,并定義了其對應(yīng)value所應(yīng)滿足的各種條件。例如,“目的地”是一種語義項(xiàng)的key,其value的定義是: 詞性必須為ns,其在依存句法樹中的父節(jié)點(diǎn)必須為“到”“至”等詞語。對于例句“幫我買張從北京到上海的機(jī)票”,其鍵值對語義模型如圖2所示。
圖2 鍵值對語義模型示例
鍵值對語義模型依賴于漢語語法。本文從漢語詞典中遍歷了所有的漢語字詞,將這些字詞作為知識庫的基本詞匯,對它們的重要程度、語義本體、使用頻率等屬性進(jìn)行總結(jié)。節(jié)選如表1所示。其中,“重要程度”值越小,該語義越重要;“使用頻率”值越大,該語義出現(xiàn)頻率越高。
表1 語義本體總結(jié)節(jié)選
本文對日常生活中經(jīng)常使用的2 513個字詞做了統(tǒng)計,針對字詞的重要程度、使用頻率對其進(jìn)行劃分,并將其映射到語義本體。其中,語義本體是一種key-value鍵值對。key的定義,主要是使用已有的、具有普適性的詞語,去描繪其他使用頻率較低的詞語。例如,用“選擇”作為“篩選”的語義本體,用“討論”作為“商議”“商榷”的語義本體。其次,是使用意圖明顯的短語來描繪這些詞語。例如,用“對人好”作為“善待”“善意”的語義本體,用“想便宜”作為“砍價”的語義本體。
鍵值對語義模型要求用戶對不同的詞語進(jìn)行總結(jié),存在大量的重復(fù)性勞動。同時,語義項(xiàng)中key的定義沒有明確的規(guī)范,導(dǎo)致語義模型對于同一語義的描述缺乏標(biāo)準(zhǔn)。例如,在“從北京到上海”這個短語中,提取出的語義是“出發(fā)地: 北京,目的地: 上?!?而在“今天誰值日”這個句子中,提取出的語義是“詢問: 誰”。其中,“出發(fā)地”“目的地”“詢問”等key的定義,受主觀因素影響,其本質(zhì)是使用另一字符串來消除歧義。
隨著語義的增多,鍵值對語義模型對于“鍵”的定義,有如下要求: (1)唯一性。在定義一個全新的“鍵”時,需對比所有已定義的“鍵”,避免產(chǎn)生歧義。(2)可讀性。對于所有已定義的“鍵”,需配以相應(yīng)的說明,闡述其具體含義。(3)擴(kuò)展性。添加新鍵時,不與舊鍵產(chǎn)生沖突。這種對于“鍵”有較高要求的場景,本文將其定義為復(fù)雜語義提取場景。其特點(diǎn)是,該場景所需的語義較為復(fù)雜,對于“鍵”有唯一性、可讀性、擴(kuò)展性的需求。復(fù)雜語義提取場景是為了區(qū)分簡單語義提取場景,指的是該語義模型中,含有更多的“鍵”,這些“鍵”是由后續(xù)開發(fā)者來定義的。而該語義模型的用戶,只能使用已定義的語義,不能添加語義。
針對上述場景,本文提出了槽式語義模型。此模型對于“鍵”有了規(guī)范化的定義,可以表述任意語法特征。在語句中,根據(jù)漢語語言學(xué)的研究可知,句式和語義存在映射關(guān)系。因此,本文采用保留關(guān)鍵詞的形式,對模型有如下定義: (1)保留漢語中的虛詞,抽取實(shí)詞; (2)對于被抽取的詞,組織成數(shù)組的形式; (3)將被抽取后留下的空位,用“$+詞性”的方式進(jìn)行填充,得到的字符串作為“鍵”。對于例句“幫我買張從北京到上海的機(jī)票”,可以得到如圖3所示的槽式語義模型。
圖3 槽式語義模型示例
槽式語義模型,使用key-value鍵值對的形式表示語義。其中它的key是一個字符串,使用“$”作為一個槽(slot)的占位符,后面跟著的英文字母是這個slot應(yīng)填入詞的詞性。value是一個二維數(shù)組,內(nèi)層數(shù)組對應(yīng)著各個slot所取出的值,外層數(shù)組是考慮到同一語句中,可能存在著多個相同的語義而設(shè)計的。
那么,對于語義模型的key來說,哪些字詞該保留下來,哪些字詞該換成slot,就成了至關(guān)重要的問題。在這個問題上,槽式語義模型給出了如下方案,即保留介詞、關(guān)聯(lián)詞等結(jié)構(gòu)性的虛詞,將名詞、代詞等有著大量同屬性的實(shí)詞做為slot。語義模型的key值,使用“關(guān)鍵詞+slot”的形式,實(shí)現(xiàn)了語義的唯一性、可讀性及擴(kuò)展性。只需將value中的值逐一填入slot中,就可得到語序正常、表意清晰的短語。后續(xù)開發(fā)者可以依據(jù)此規(guī)則,定義新的語義。
分詞、詞性標(biāo)注及依存句法分析,包含了語句的全部信息。當(dāng)語義提取對信息完備性有需求時,需要定義新的語義模型,來確保上述信息不會丟失。
針對上述場景,本文提出了樹狀語義模型。此模型定義了如表2所示的五種基本句式及三種修飾關(guān)系,用來描述語句所有的句法關(guān)系。
表2 樹狀語義模型句法表
此模型的特點(diǎn)是,保留語句中的大部分信息,對依存句法樹進(jìn)行重構(gòu),通過遞歸的方式,構(gòu)建語義樹。對于例句“我不知道他有沒有去過故宮。”,其樹狀語義模型如圖4所示。
圖4 樹狀語義模型示例
同時,樹狀語義模型也可用于多粒度語義的提取。在圖4中,例句的第一層是“s+v+o”的句式,對應(yīng)的例句則是“我|不知道|他有沒有去過故宮”。用戶可以通過查詢知識庫的方式來分別獲取s、v、o的具體含義。若知識庫中包含該詞語,則此時就已經(jīng)完成了對語義的提取;若知識庫不包含該詞語,則需查詢該節(jié)點(diǎn)下是否還有子節(jié)點(diǎn),而它的子節(jié)點(diǎn),也符合給定的句式。因此,用戶只需對語義樹進(jìn)行遍歷,并與知識庫中的信息進(jìn)行匹配,即可提取出語義信息。
自然語言是動態(tài)的,當(dāng)語義提取對語義有新的要求時,需對語義進(jìn)行擴(kuò)充。此時,語義模型的擴(kuò)展性會顯得格外重要。本文將這種場景定義為擴(kuò)展性語義提取場景。該場景允許用戶設(shè)計并添加語義,與復(fù)雜語義提取場景有著本質(zhì)的區(qū)別。
針對上述場景,本文提出了路徑式語義模型。用戶可以通過添加語義提取模板的方式,添加語義的提取規(guī)則,其示意圖如圖5所示。
圖5 路徑式語義模型示例
所謂路徑,指的是在依存句法樹中從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的路徑。依存句法樹示例如圖1所示,對于這棵依存句法樹,可以通過深度優(yōu)先遍歷,得到如表3所示的中間結(jié)果。
表3 依存句法樹深度優(yōu)先遍歷結(jié)果
路徑式語義模型,需要定義語義提取模板,然后將多個模板組合在一起。只有當(dāng)語句滿足所有的模板時,才會完成匹配。規(guī)定每個語義提取模板必須為奇數(shù)個元素,且奇數(shù)位元素形式為“詞語+空格+詞性”的形式,偶數(shù)位元素為依存句法關(guān)系。為了增加模板的靈活性,可以使用“$”符作為通配符。
路徑式語義模型的存儲結(jié)構(gòu)如表4所示。
表4 路徑式語義模型存儲結(jié)構(gòu)
Semantics為語義提取模板,只有滿足模板,才可以說語句滿足這一語義。Indexes為用戶自定義要提取位置的索引。在用語義提取模板對語句進(jìn)行比對后,如果語句滿足所有的模板,就可以匹配出相應(yīng)的值。但是,用戶需要的不一定是所有的值,因此需要用戶自己定義提取哪個索引對應(yīng)的詞。Formatting是預(yù)設(shè)字符串,用戶可以將根據(jù)索引提取出來的詞語填入該預(yù)設(shè)字符串中,得到用戶自定義的語義。
基于關(guān)鍵詞的語義提取算法使用了鍵值對語義模型和槽式語義模型,通過對詞語的分類,首先確定語句中的關(guān)鍵詞,然后對關(guān)鍵詞的父節(jié)點(diǎn)、子節(jié)點(diǎn)、兄弟節(jié)點(diǎn)、祖先節(jié)點(diǎn)、子孫節(jié)點(diǎn)等進(jìn)行邏輯判斷,依次篩選出語句的語義項(xiàng),組合生成最終的語義。
如圖6所示,以語句“幫我買張從北京到上海的機(jī)票”為例,先使用自然語言處理工具對其進(jìn)行分詞、詞性標(biāo)注和依存句法分析,得到如圖2所示的依存句法樹。因?yàn)檎Z句中存在“幫”和動賓短語,因此可以判斷此語句是一個命令句。然后,確定關(guān)鍵詞“幫”,其DBL邊所指向的子節(jié)點(diǎn)是該命令的作用對象,此句中可定義為消費(fèi)者,得到語義項(xiàng)“消費(fèi)者: 我”;確定關(guān)鍵詞“從”,其POB邊所指向的子節(jié)點(diǎn)是“北京”,其詞性為ns地點(diǎn),得到語義項(xiàng)“出發(fā)地: 北京”;確定關(guān)鍵詞“到”,其POB邊所指向的子節(jié)點(diǎn)是“上?!?其詞性為ns地點(diǎn),得到語義項(xiàng)“目的地: 上?!薄R源祟愅?得到最終的語義。
圖6 基于關(guān)鍵詞的語義提取算法示例
該算法的偽代碼如表5所示。
表5 基于關(guān)鍵詞的語義提取算法
樹狀語義提取算法是依據(jù)樹狀語義模型,對依存句法樹進(jìn)行整合,得到全新的樹狀結(jié)構(gòu)的一種算法。樹狀語義模型包含“簡單句”和“修飾關(guān)系”這兩種句型結(jié)構(gòu),這兩種結(jié)構(gòu)又細(xì)分為“主語+謂語”“主語+謂語+賓語”“主語+謂語+補(bǔ)語”等句型結(jié)構(gòu)。這里的句型結(jié)構(gòu)并沒有嚴(yán)格的規(guī)定,取決于用戶對于句型的理解,用戶也可以根據(jù)需求自定義句型結(jié)構(gòu)。
如圖7所示,以“我不知道他有沒有去過故宮。”為例,介紹樹狀語義提取算法。首先構(gòu)造依存句法樹,然后使用層序遍歷的方式遍歷這棵樹。這里以“主語+謂語+賓語”為例,當(dāng)遍歷到節(jié)點(diǎn)“知道 v”時,發(fā)現(xiàn)該節(jié)點(diǎn)的詞性是動詞,此時,已經(jīng)找到了“謂語”,需要再找到“主語”和“賓語”。于是,遞歸遍歷該節(jié)點(diǎn)的所有子節(jié)點(diǎn),判斷其子節(jié)點(diǎn)的arc值是否為“SBV”,是的話,則找到該動詞的主語;同時判斷其子節(jié)點(diǎn)的arc值是否為“VOB”,是的話,則找到該動詞的賓語。找到“主語”“謂語”和“賓語”的節(jié)點(diǎn)之后,以這些節(jié)點(diǎn)分割句子,即可得到主語是“我”,謂語是“不知道”,賓語是“他有沒有去過故宮”。遞歸時,“他有沒有去過故宮”也會得到對應(yīng)的結(jié)果,即主語是“他”,謂語是“有沒有去過”,賓語是“故宮”。以此類推,得到最終結(jié)果。
圖7 樹狀語義提取算法示意圖
該算法的偽代碼如表6所示。
表6 樹狀語義提取算法
可擴(kuò)展的語義提取算法,是基于路徑式語義模型而構(gòu)建的,其示意圖如圖8所示。
圖8 可擴(kuò)展的語義提取算法示意圖
圖8以語句“幫我買張從北京到上海的機(jī)票”為例,先對依存句法樹進(jìn)行深度優(yōu)先遍歷,得到依存句法樹的路徑。然后,將路徑分別與預(yù)設(shè)模板進(jìn)行匹配,提取出目標(biāo)信息。最后,將提取出的信息,填入到格式化字符串中,完成語義的提取。例如,路徑“["幫 v", "VOB", "買 v", "VOB", "機(jī)票 n", "ATT", "張 q"]”,可以匹配模板“[["$ v", "VOB", "$ n"]]”,提取到語義“買機(jī)票”。
其擴(kuò)展性主要表現(xiàn)在兩個方面。首先,其沒有針對某一個詞語的復(fù)雜邏輯結(jié)構(gòu),而是由用戶直接定義語義模板,用來對語句進(jìn)行處理。當(dāng)語句與所有模板都匹配成功時,則提取語義。其次,用戶可以根據(jù)實(shí)際需求,控制語義提取的粒度。若用戶對某個語義的準(zhǔn)確率要求很高,那么只需設(shè)置多個語義模板,或者定義更長的語義模板,即可達(dá)到要求。若用戶對某個語義的準(zhǔn)確率要求不高,那么可以設(shè)置較短的語義模板。
該算法的偽代碼如表7所示。
表7 可擴(kuò)展的語義提取算法
本節(jié)以“怎么”“什么”“哪”“多少”“誰”這五個疑問代詞為例,展示了如何通過語義模型及語義提取算法來提取語義。之后,使用北京語言大學(xué)提供的BCC語料庫[12]進(jìn)行實(shí)驗(yàn),其中每個疑問代詞對應(yīng)的例句有1 000句,共5 000句例句。例句的實(shí)際含義為人工標(biāo)注,各個實(shí)驗(yàn)的設(shè)計與結(jié)果如下文所述。
疑問代詞“怎么”,在現(xiàn)代漢語詞典中有五種含義,分別是“詢問”“泛指”“虛指”“程度”“否定”。由于泛指和虛指對于語義提取來說,不具有明確的意義,而有些特殊語句可能包含兩種以上的含義,如例句“大家怎么會沒有意見呢?”,其中“怎么”的含義,既表示了詢問,又表示了否定。因此,將泛指和虛指篩除后,將剩下的含義組合,給出了本文對于“怎么”的六種含義的分類,分別是“詢問”“程度”“否定”“詢問|程度”“詢問|否定”“程度|否定”。
關(guān)于疑問代詞“怎么”,本文僅通過對50條包含“怎么”的語句進(jìn)行總結(jié)后,就可定義出20個語義提取模板,節(jié)選如表8所示。
表8 “怎么”語義提取模板節(jié)選
然后,本文使用表8所示的語義提取模板對BCC語料庫中的1 000條包含“怎么”的語句,使用定義了20個語義提取模板的可擴(kuò)展的語義提取算法進(jìn)行了語義提取測試,結(jié)果節(jié)選如表9所示。
表9 “怎么”語義提取結(jié)果節(jié)選
由表8、表9可知,當(dāng)語義提取模板設(shè)計過短時,可以與更多的語句進(jìn)行匹配,得到更多的語義提取結(jié)果。這些結(jié)果并沒有優(yōu)先級的設(shè)定,會被填入一個二維數(shù)組中。這也印證了漢語的復(fù)雜性。例如,同一句話,既可以是詢問,也可以是否定。對于這種情況,用戶可以在設(shè)定格式化字符串時,傳入不同的數(shù)字,代表不同的優(yōu)先級,然后對得到的語義結(jié)果進(jìn)行排序和取舍。
對于基于關(guān)鍵詞的語義提取算法及樹狀語義提取算法,這兩種算法不支持額外的配置,因此直接對實(shí)驗(yàn)數(shù)據(jù)集中的語句進(jìn)行了語義提取實(shí)驗(yàn)。與使用了20個語義提取模板的可擴(kuò)展的語義提取算法進(jìn)行對比,其準(zhǔn)確率如表10所示。
表10 三種語義提取算法準(zhǔn)確率對比 (單位: %)
由表10可知,對于定義了20個語義提取模板的可擴(kuò)展的語義提取算法,其準(zhǔn)確率與基于關(guān)鍵詞的語義提取算法各有優(yōu)劣。這種情況主要由模板數(shù)量及質(zhì)量決定。由4.3節(jié)實(shí)驗(yàn)可知,當(dāng)模板數(shù)量逐漸增加時,可擴(kuò)展的語義提取算法效果會越來越好。同時,當(dāng)定義的模板適用于更多語句時,其提取效果會更好。對于樹狀提取算法,其準(zhǔn)確率均處于80%以上,不符合正常語序的句子,如倒裝句等,會造成樹狀語義提取出錯。
針對語義提取方式的可行性與擴(kuò)展性,本文通過擴(kuò)充模板數(shù)量的方式,分別使用了10個、15個、20個、25個、30個語義提取模板,對“怎么”、“什么”、“哪”、“多少”、“誰”五種疑問代詞進(jìn)行了語義提取實(shí)驗(yàn)。實(shí)驗(yàn)所使用的數(shù)據(jù)取自北京語言大學(xué)的BCC語料庫,每個疑問代詞有1 000條語句。最終的結(jié)果如表11所示。
表11 語義提取準(zhǔn)確率 (單位: %)
由表11數(shù)據(jù)可以繪制出如圖9所示的模板數(shù)量對于語義提取效果影響折線圖。
圖9 模板數(shù)量對于語義提取效果影響折線圖
由圖9可知,隨著模板配置數(shù)量的提升,各個疑問代詞的語義提取準(zhǔn)確率也逐漸升高,且總體上有放緩的趨勢。從20個模板以后,折線都趨于平緩。這是因?yàn)?模板的數(shù)量已經(jīng)足夠大,足以正確提取90%左右的語句。而提取錯誤的語句,通常是一些邊緣數(shù)據(jù),針對這些邊緣數(shù)據(jù)設(shè)計的語義提取模板,泛用性相對較低,因此折線會趨于平緩。
另外,圖中不同折線的高度略有不同?!霸趺础庇辛鶄€類別,“什么”有四個類別,“哪”有三個類別,“多少”有六個類別,“誰”有兩個類別。一般來說,類別多的疑問代詞,語義提取效果會更好。但在30個模板時,“多少”的準(zhǔn)確率超過了“怎么”,這是由于語義提取模板的設(shè)定和數(shù)據(jù)標(biāo)注不準(zhǔn)確導(dǎo)致的。語句中詞語的含義無法量化,存在一定的主觀誤差。
本節(jié)采用包含“多少”的語句,共計1 000條,語料來自于北京語言大學(xué)提供的BCC語料庫,類型為人工標(biāo)注,該數(shù)據(jù)集的詳細(xì)信息如表12所示。
表12 數(shù)據(jù)集詳情表
該數(shù)據(jù)集有以下特點(diǎn):
(1) 樣本規(guī)模小;
(2) 數(shù)據(jù)分布不均勻;
(3) 不同含義的語句句法結(jié)構(gòu)類似。
中文文本分類任務(wù),現(xiàn)階段的主流解決方案是深度學(xué)習(xí)。于是,本文與基于深度學(xué)習(xí)的中文文本分類算法TextCNN[13],TextRNN[14],FastText[15],TextRCNN[16],TextRNN_Att[17],DPCNN[18],Transformer[19]做了對比。訓(xùn)練集、驗(yàn)證集和測試集的比例為3∶1∶1,保證在各個集合中每一類所占的比例相同。使用上述方法,對本節(jié)給出的數(shù)據(jù)集進(jìn)行訓(xùn)練測試,各模型的準(zhǔn)確率如表13所示。
表13 文本分類算法準(zhǔn)確率 (單位: %)
由表13可知,TextCNN,TextRNN,TextRCNN,DPCNN和Transformer的準(zhǔn)確率均為85.94%。TextRNN準(zhǔn)確率為86.72%,FastText準(zhǔn)確率為85.16%。
以模型的最高準(zhǔn)確率86.72%為基準(zhǔn),與不同模板數(shù)量對應(yīng)的分類效果做對比,可得到如圖10所示的折線圖。
圖10 語義提取算法與文本分類算法對比折線圖
由圖10可知,當(dāng)模板數(shù)量少于25個時,各模型的準(zhǔn)確率都高于語義提取算法。當(dāng)模板數(shù)量達(dá)到25以上時,語義提取算法的準(zhǔn)確率會超過上述模型,并仍保持了增長的趨勢。
綜上所述,當(dāng)樣本規(guī)模小,分布不均勻,且各個分類的區(qū)別不明顯時,隨著模板數(shù)量的增加,語義提取算法的準(zhǔn)確率會越來越高,最終超過上述模型。因此,語義提取算法在處理上述數(shù)據(jù)時,有明顯的優(yōu)勢。
本文主要通過對語言學(xué)理論體系的研究,總結(jié)歸納漢語的語法特點(diǎn),使用自然語言處理工具的分詞、詞性標(biāo)注及依存句法分析的結(jié)果,提出了基于依存句法的語義模型,提出了相應(yīng)的語義提取算法。
本文充分地分析研究了漢語的語法特點(diǎn),在此基礎(chǔ)上,提出了四種不同的語義模型,分別是鍵值對語義模型、槽式語義模型、樹狀語義模型及路徑式語義模型,這些模型分別適用于不同的語義提取場景,然后提出了對應(yīng)的語義提取算法,分別是基于關(guān)鍵詞的語義提取算法、樹狀語義提取算法及可擴(kuò)展的語義提取算法。最后,使用BCC語料庫的5 000條語句,進(jìn)行了語義提取實(shí)驗(yàn),驗(yàn)證了上述語義提取方法的可行性與優(yōu)越性。
上述模型與算法,均適用于訓(xùn)練數(shù)據(jù)少的應(yīng)用場景。用戶只需總結(jié)特定場景中常見的語法特點(diǎn),即可制定出相應(yīng)的語義提取規(guī)則,從而完成對語義的提取。其次,對于跨場景的情況,存在大量的可重用的語義提取規(guī)則,可以直接用于不同場景下的語義提取。因此,該方法對于訓(xùn)練數(shù)據(jù)少的應(yīng)用場景,有著更好的適用性,且彌補(bǔ)了傳統(tǒng)算法可遷移性差等缺點(diǎn)。