本發(fā)明屬于中文自然語言處理領(lǐng)域,特別涉及一種海量文本中基于詞向量表征的新詞發(fā)現(xiàn)方法及系統(tǒng)。
背景技術(shù):
新詞發(fā)現(xiàn)是中文自然語言處理研究領(lǐng)域一個(gè)非常重要的研究內(nèi)容。由于中文不像英文等許多西方語言,詞和詞之間有固定的分隔符,所以分詞通常作為中文信息處理任務(wù)最開始的一個(gè)必要步驟,而新詞發(fā)現(xiàn)又與分詞緊密相關(guān)。sproat和emerson指出新詞的出現(xiàn)很大程度上影響著分詞工具的分詞準(zhǔn)確性,60%的分詞錯(cuò)誤是由新詞引起的。在新詞任務(wù)中,對于“新詞”并沒有一個(gè)明確界定的概念。在中文分詞領(lǐng)域,有新詞和未登錄詞兩種概念,未登錄詞是指不在當(dāng)前分詞工具的詞典出現(xiàn)的詞,新詞則是指隨時(shí)代發(fā)展出現(xiàn)的詞,新詞也屬于未登錄詞,一般沒有對新詞和未登錄詞加以區(qū)別,本發(fā)明對此也不做區(qū)分。
目前新詞識別方法主要分為有監(jiān)督的方法和無監(jiān)督的方法。有監(jiān)督的方法主要是基于統(tǒng)計(jì)學(xué)習(xí),這種方法需要大量的標(biāo)注數(shù)據(jù)以及大量的特征選取工作,而獲得大量的標(biāo)注數(shù)據(jù)往往成本較高,特征選取需要豐富的經(jīng)驗(yàn);無監(jiān)督的方法主要是基于規(guī)則或計(jì)算一些統(tǒng)計(jì)指標(biāo)來進(jìn)行新詞發(fā)現(xiàn),基于規(guī)則的方法需要制定大量的語言規(guī)則,可移植性差,而單純的某個(gè)統(tǒng)計(jì)指標(biāo)往往效果較差,且一些統(tǒng)計(jì)指標(biāo)計(jì)算復(fù)雜。
隨著近幾年利用神經(jīng)網(wǎng)絡(luò)或深度學(xué)習(xí)訓(xùn)練語言模型而得到的詞向量能夠很好的表征詞與詞之間的語義關(guān)系,而一個(gè)新詞如果被分詞軟件錯(cuò)誤的分開,被分開的不同部分應(yīng)該語義上很相似,例如‘張勇’是一個(gè)人名,但分詞軟件錯(cuò)誤的分成了“張/勇/”。經(jīng)過合適的神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練,可以發(fā)現(xiàn)‘張’和‘勇’對應(yīng)的詞向量很相似。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種海量文本中基于詞向量表征的新詞發(fā)現(xiàn)方法及系統(tǒng),以至少解決以上技術(shù)問題之一。
本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的。
本發(fā)明首先涉及一種海量文本中基于詞向量表征的新詞發(fā)現(xiàn)方法,包括:
對新詞發(fā)現(xiàn)任務(wù)的語料進(jìn)行預(yù)處理,所述預(yù)處理至少包括短句切分和分詞;
對預(yù)處理后的語料進(jìn)行n-gram詞串挖掘,以得到該語料中的n-gram候選詞串;
設(shè)置詞向量,并根據(jù)n-gram候選詞串中的詞與詞之間對應(yīng)的詞向量的相似性進(jìn)行剪枝,得到新詞。
作為一種優(yōu)選的實(shí)施方式,所述對預(yù)處理后的語料進(jìn)行n-gram詞串挖掘以得到該語料中的n-gram候選詞串的方法包括:
從預(yù)處理后的語料中查找所有出現(xiàn)頻率大于預(yù)設(shè)頻率閾值的二元詞串,并記錄各個(gè)二元詞串的位置索引;
二元詞串從其位置索引開始進(jìn)行左右擴(kuò)張直到達(dá)到停止條件,得到n-gram候選詞串。
作為另一種優(yōu)選的實(shí)施方式,所述詞向量為基于外部語料訓(xùn)練得到,所述基于外部語料訓(xùn)練詞向量的方法包括:
對外部語料進(jìn)行分詞處理;
采用神經(jīng)網(wǎng)絡(luò)訓(xùn)練語言模型對分詞處理后的外部語料進(jìn)行訓(xùn)練,得到詞向量。
作為另一種優(yōu)選的實(shí)施方式,所述根據(jù)n-gram候選詞串中的詞與詞之間對應(yīng)的詞向量的距離進(jìn)行剪枝的方法包括:判斷n-gram候選詞串中的詞與詞之間對應(yīng)的詞向量的相似性是否大于預(yù)設(shè)的相似性閾值,如果滿足該條件則將這兩個(gè)詞作為一個(gè)新詞進(jìn)行保存。
本發(fā)明還涉及一種海量文本中基于詞向量表征的新詞發(fā)現(xiàn)系統(tǒng),包括:
預(yù)處理模塊,其被配置成對新詞發(fā)現(xiàn)任務(wù)的語料進(jìn)行預(yù)處理,所述預(yù)處理至少包括短句切分和分詞;
n-gram詞串挖掘模塊,其被配置成對預(yù)處理后的語料進(jìn)行n-gram詞串挖掘,以得到該語料中的n-gram候選詞串;
詞向量設(shè)置模塊,其被配置成設(shè)置詞向量;
剪枝模塊,其被配置成根據(jù)n-gram候選詞串中的詞與詞之間對應(yīng)的詞向量的相似性進(jìn)行剪枝,得到新詞。
作為一種優(yōu)選的實(shí)施方式,所述n-gram詞串挖掘模塊具體被配置成:
從預(yù)處理后的語料中查找所有出現(xiàn)頻率大于預(yù)設(shè)頻率閾值的二元詞串,并記錄各個(gè)二元詞串的位置索引;
二元詞串從其位置索引開始進(jìn)行左右擴(kuò)張直到達(dá)到停止條件,得到n-gram候選詞串。
作為另一種優(yōu)選的實(shí)施方式,所述詞向量設(shè)置模塊具體被配置成:對外部語料進(jìn)行分詞處理;采用神經(jīng)網(wǎng)絡(luò)訓(xùn)練語言模型對分詞處理后的外部語料進(jìn)行訓(xùn)練,得到詞向量。
作為另一種優(yōu)選的實(shí)施方式,所述剪枝模塊具體被配置成:判斷n-gram候選詞串中的詞與詞之間對應(yīng)的詞向量的相似性是否小于預(yù)設(shè)的相似性閾值,如果滿足該條件則將這兩個(gè)詞作為一個(gè)新詞進(jìn)行保存。
本發(fā)明提出的技術(shù)方案具有以下有益效果:
本發(fā)明把詞向量應(yīng)用到了中文的新詞發(fā)現(xiàn)任務(wù)中,并結(jié)合傳統(tǒng)新詞發(fā)現(xiàn)中用的n-gram詞串方法,提出了一種新的無監(jiān)督的新詞發(fā)現(xiàn)方法,本發(fā)明首先利用海量文本進(jìn)行詞向量訓(xùn)練,然后基于詞向量對n-gram詞串進(jìn)行剪枝。實(shí)驗(yàn)結(jié)果表明,相較于基于互信息、鄰接熵等無監(jiān)督方法,本發(fā)明提出的方法具有更高的準(zhǔn)確率,此外,由于本發(fā)明并不需要大量的人工標(biāo)注數(shù)據(jù),因此能夠更加簡單高效的實(shí)施。
附圖說明
圖1示出了根據(jù)本發(fā)明的實(shí)施例的海量文本中基于詞向量表征的新詞發(fā)現(xiàn)方法的流程圖。
圖2示出了根據(jù)本發(fā)明的實(shí)施例的海量文本中基于詞向量表征的新詞發(fā)現(xiàn)系統(tǒng)的原理框圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將對本發(fā)明的具體實(shí)施方式進(jìn)行清楚、完整的描述。
圖1示出了根據(jù)本發(fā)明的實(shí)施例的海量文本中基于詞向量表征的新詞發(fā)現(xiàn)方法的流程圖。
該方法包括:步驟s1,對新詞發(fā)現(xiàn)任務(wù)的語料進(jìn)行預(yù)處理;步驟s2,對預(yù)處理后的語料進(jìn)行n-gram詞串挖掘,以得到該語料中的n-gram候選詞串;步驟s3,設(shè)置詞向量,并根據(jù)n-gram候選詞串中的詞與詞之間對應(yīng)的詞向量的相似性進(jìn)行剪枝,得到新詞。
首先,步驟s1中,對新詞發(fā)現(xiàn)任務(wù)的語料進(jìn)行預(yù)處理。本實(shí)施例的目的為發(fā)現(xiàn)新詞發(fā)現(xiàn)任務(wù)的語料中的新詞,因此,所述新詞發(fā)現(xiàn)任務(wù)的語料為本實(shí)施例的處理對象,在本實(shí)施例中,首先需要對新詞發(fā)現(xiàn)任務(wù)的語料進(jìn)行預(yù)處理,其中,預(yù)處理包括短句切分和分詞,具體地,可以將新詞發(fā)現(xiàn)任務(wù)的語料以中文句號或問號進(jìn)行短句切分,然后利用分詞軟件進(jìn)行分詞,常用的分詞軟件包括word分詞器、stanford分詞器、jieba分詞器等等。
接下來,步驟s2中,對預(yù)處理后的語料進(jìn)行n-gram詞串挖掘,以得到該語料中的n-gram候選詞串。
對于步驟s2,首先介紹以下基本概念。
如果幾個(gè)相鄰的詞在語料中經(jīng)常一起出現(xiàn),他們很可能是新詞,這樣的序列詞串叫做n-gram詞串,n代表序列詞串中詞的個(gè)數(shù)。例如有這樣一句話“ceo張勇表示…”,分詞后變成“ceo張勇表示…”,如果“張勇表示”出現(xiàn)在多個(gè)句子里,便可以找出3-gram詞串{‘張’,‘勇’,‘表示’}。步驟s2的目標(biāo)是找出所有的出現(xiàn)頻率大于預(yù)設(shè)頻率閾值的n-gram,同時(shí)每個(gè)n元詞串中的n要盡可能大。
對于步驟s2,在一個(gè)具體地實(shí)施例中,所述對預(yù)處理后的語料進(jìn)行n-gram詞串挖掘的方法包括:從預(yù)處理后的語料中查找所有出現(xiàn)頻率大于預(yù)設(shè)頻率閾值的二元詞串,并記錄各個(gè)二元詞串的位置索引;對于各個(gè)二元詞串,二元詞串從其位置索引開始進(jìn)行左右擴(kuò)張直到達(dá)到停止條件,得到n-gram候選詞串,其中,所述停止條件可以為左右擴(kuò)張后得到的詞串頻率小于預(yù)設(shè)頻率閾值或者左右擴(kuò)張后得到的詞串為停用詞。
最后,在步驟s3中,設(shè)置詞向量,并根據(jù)n-gram候選詞串中的詞與詞之間對應(yīng)的詞向量的相似性進(jìn)行剪枝,得到新詞。
對于步驟s3,設(shè)置詞向量是剪枝的基礎(chǔ),因此需要確保在剪枝前設(shè)置詞向量,關(guān)于詞向量,首先介紹以下基礎(chǔ)知識。
自然語言處理中要用機(jī)器學(xué)習(xí)的方法解決問題,首先需要把一些特征符號數(shù)學(xué)化,把詞轉(zhuǎn)換成詞向量便是其中一種方式。詞向量主要有兩種,一種是one-hotrepresentation,即建立一個(gè)詞庫,向量的維度等于詞庫大小,詞表示為對應(yīng)維度為1;另一種是distributedrepresentation,它是采用神經(jīng)網(wǎng)絡(luò)或深度學(xué)習(xí)的方式訓(xùn)練語言模型時(shí)得到的詞向量。distributedrepresentation詞向量很好的刻畫了潛在的語義關(guān)系,同時(shí)相對于one-hotrepresentation維度較低,避免了維數(shù)災(zāi)難和稀疏問題。本發(fā)明實(shí)施例采用distributedrepresentation詞向量。
對于步驟s3,在另一個(gè)具體地實(shí)施例中,設(shè)置詞向量的方法包括:對外部語料進(jìn)行分詞處理,外部語料作為訓(xùn)練詞向量的訓(xùn)練語料,對于外部語料,僅需要進(jìn)行分詞處理;采用神經(jīng)網(wǎng)絡(luò)訓(xùn)練語言模型對分詞處理后的外部語料進(jìn)行訓(xùn)練,得到詞向量,其中,所述神經(jīng)網(wǎng)絡(luò)訓(xùn)練語言模型為skip-gram或cbow模型,該步驟中,可以采用現(xiàn)有的訓(xùn)練工具進(jìn)行詞向量的訓(xùn)練,訓(xùn)練工具可以采用google開源詞向量工具word2vec。
對于步驟s3,設(shè)置詞向量后,根據(jù)n-gram候選詞串中的詞與詞之間對應(yīng)的詞向量的相似性進(jìn)行剪枝,在另一個(gè)具體地實(shí)施例中,所述剪枝的方法包括:判斷n-gram候選詞串中的詞與詞對應(yīng)的詞向量之間的相似性,根據(jù)相似性結(jié)果對n-gram候選詞串進(jìn)行剪枝。更具體地,度量兩個(gè)詞向量之間的相似性或距離的指標(biāo)可以為余弦相似性、歐式距離、曼哈頓距離,其中,當(dāng)選用余弦相似性指標(biāo)時(shí),掃描候選詞串,如相鄰的兩個(gè)詞對應(yīng)的詞向量之間的余弦相似性小于某一個(gè)閾值,就進(jìn)行剪枝;如果選用的是歐式距離或曼哈頓距離,掃描候選詞串,如相鄰的兩個(gè)詞對應(yīng)的詞向量之間的距離相似性大于所設(shè)定的閾值,就進(jìn)行剪枝。例如,對于{‘張’,‘勇’,‘表示’}這個(gè)候選詞串,‘張’對應(yīng)的詞向量與‘勇’對應(yīng)的詞向量之間的余弦相似性大于預(yù)設(shè)的閾值,但‘勇’對應(yīng)的詞向量‘表示’對應(yīng)的詞向量之間的余弦相似性小于預(yù)設(shè)的閾值,因此‘張勇表示’不能作為新詞,即此時(shí)需要引入剪枝,把‘表示’這個(gè)詞去掉,剩下的‘張勇’作為一個(gè)新詞。
表1為根據(jù)本發(fā)明的實(shí)施例的海量文本中基于詞向量表征的新詞發(fā)現(xiàn)方法與現(xiàn)有技術(shù)的對比實(shí)驗(yàn)結(jié)果。
表1對比實(shí)驗(yàn)結(jié)果
表1中,作為對比的方法包括互信息和左右信息熵的無監(jiān)督方法,以及基于條件隨機(jī)場的有監(jiān)督方法,另外,采用正確率(precision)、召回率(recall)和f值(f-measure)來評價(jià)各個(gè)參評方法的性能。
如表1所示,本發(fā)明提出的基于詞向量剪枝的新詞發(fā)現(xiàn)方法明顯優(yōu)于其他幾類方法。
圖2示出了根據(jù)本發(fā)明的實(shí)施例的海量文本中基于詞向量表征的新詞發(fā)現(xiàn)系統(tǒng)的原理框圖。
如圖2所示,根據(jù)本發(fā)明的實(shí)施例的海量文本中基于詞向量表征的新詞發(fā)現(xiàn)系統(tǒng)包括預(yù)處理模塊1、n-gram詞串挖掘模塊2、詞向量設(shè)置模塊3和剪枝模塊4。
所述預(yù)處理模塊被配置1成對新詞發(fā)現(xiàn)任務(wù)的語料進(jìn)行預(yù)處理,所述預(yù)處理包括短句切分和分詞。
所述n-gram詞串挖掘模塊2被配置成對預(yù)處理后的語料進(jìn)行n-gram詞串挖掘,以得到該語料中的n-gram候選詞串。
所述詞向量設(shè)置模塊3被配置成設(shè)置詞向量。
所述剪枝模塊4被配置成根據(jù)n-gram候選詞串中的詞與詞之間對應(yīng)的詞向量的相似性進(jìn)行剪枝,得到新詞。
在一種實(shí)施例中,所述n-gram詞串挖掘模塊2具體被配置成:從預(yù)處理后的語料中查找所有出現(xiàn)頻率大于預(yù)設(shè)頻率閾值的二元詞串,并記錄各個(gè)二元詞串的位置索引;二元詞串從其位置索引開始進(jìn)行左右擴(kuò)張直到達(dá)到停止條件,得到n-gram候選詞串,所述停止條件為左右擴(kuò)張后得到的詞串頻率小于預(yù)設(shè)頻率閾值或者左右擴(kuò)張后得到的詞串為停用詞。
在另一種實(shí)施例中,所述詞向量設(shè)置模塊3具體被配置成:對外部語料進(jìn)行分詞處理;采用神經(jīng)網(wǎng)絡(luò)訓(xùn)練語言模型對分詞處理后的外部語料進(jìn)行訓(xùn)練,得到詞向量。所述神經(jīng)網(wǎng)絡(luò)訓(xùn)練語言模型為skip-gram或cbow模型。
在另一種實(shí)施例中,所述剪枝模塊4具體被配置成:判斷n-gram候選詞串中的詞與詞之間對應(yīng)的詞向量的相似性是否大于預(yù)設(shè)的相似性閾值,如果滿足該條件則將這兩個(gè)詞作為一個(gè)新詞進(jìn)行保存。例如,對于{‘張’,‘勇’,‘表示’}這個(gè)n-gram候選詞串,通過相似性判斷得到‘張勇’是個(gè)新詞,但‘張勇表示’不是新詞,因此,通過剪枝模塊進(jìn)行剪枝,把‘表示’這個(gè)詞去掉,剩下的‘張勇’作為一個(gè)新詞進(jìn)行保存。
從以上實(shí)施例可以看出,本發(fā)明實(shí)施例首先利用海量文本進(jìn)行詞向量訓(xùn)練,然后基于詞向量對n-gram詞串進(jìn)行剪枝。實(shí)驗(yàn)結(jié)果表明,相較于基于互信息、鄰接熵等無監(jiān)督方法,本發(fā)明提出的方法具有更高的準(zhǔn)確率,此外,由于本發(fā)明并不需要大量的人工標(biāo)注數(shù)據(jù),因此能夠更加簡單高效的實(shí)施。
需要說明的是,在本說明書中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
還需要說明的是,上述一系列處理不僅包括以這里所述的順序按時(shí)間序列執(zhí)行的處理,而且包括并行或分別地、而不是按時(shí)間順序執(zhí)行的處理。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以全部通過軟件來實(shí)施?;谶@樣的理解,本發(fā)明的技術(shù)方案對背景技術(shù)做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
以上對本發(fā)明進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。