。
[0027] 如圖1所示,本發(fā)明實(shí)施例的文本中新詞發(fā)現(xiàn)的方法主要包括如下步驟:
[0028] 步驟Sll :將文本中的每個(gè)字分隔開,利用深度神經(jīng)網(wǎng)絡(luò)算法提取每個(gè)字的特征 向量。西方文字通常在單詞之間都有空隔分割,計(jì)算機(jī)對(duì)單詞識(shí)別起來(lái)比較方便,但是中文 沒(méi)有詞組分割,而計(jì)算機(jī)本身并不能區(qū)分詞語(yǔ)詞組,因此,在本發(fā)明實(shí)施例中,對(duì)文本進(jìn)行 新詞發(fā)現(xiàn)之前,首先要將文本中的每個(gè)字分隔開。
[0029] 對(duì)文本中的每個(gè)字的分隔操作,可以使用python腳本語(yǔ)言實(shí)現(xiàn)。例如,將所有字 轉(zhuǎn)換為統(tǒng)一碼編碼形式。因?yàn)榻y(tǒng)一碼編碼格式每個(gè)字符的長(zhǎng)度都為1,這樣,把每個(gè)句子按 照長(zhǎng)度為1的步長(zhǎng)分割,就得到了一個(gè)一個(gè)字分開的文本。
[0030] 將文本中的每個(gè)字分隔開后,便可利用深度神經(jīng)網(wǎng)絡(luò)提取每個(gè)字的特征向量。但 是由于一個(gè)文本中往往含有數(shù)個(gè)句子,甚至更多,因此,在本發(fā)明的一個(gè)實(shí)施例中,文本中 新詞發(fā)現(xiàn)的方法還包括:在將文本中的每個(gè)字分隔開之前,將所述文本按照標(biāo)點(diǎn)符號(hào)進(jìn)行 分行,使每行成為一個(gè)短文本。具體流程如圖2所示。
[0031] 將文本分成一個(gè)個(gè)的短文本的具體操作可以使用python腳本語(yǔ)言實(shí)現(xiàn),將所有 標(biāo)點(diǎn)符號(hào)收集起來(lái)。代碼的編寫規(guī)則為:遇到標(biāo)點(diǎn)符號(hào)就將文本分開,并將分開后的句子片 段存儲(chǔ)到文件中。通過(guò)將原始文本分隔成一個(gè)一個(gè)的短文本,可以減少計(jì)算的復(fù)雜程度,從 而提尚處理的效率。
[0032] 在進(jìn)行了上述的將文本分隔成短文本以及將文本中的每個(gè)字分隔開的操作后,便 可以對(duì)文本中每個(gè)單獨(dú)的字進(jìn)行特征的提取。在本發(fā)明實(shí)施例中,采用深度神經(jīng)網(wǎng)絡(luò)算法 提取每個(gè)字的特征向量。
[0033] 神經(jīng)網(wǎng)絡(luò),還可以稱作連接模型(Connection Model),它是一種模仿動(dòng)物神經(jīng)網(wǎng) 絡(luò)行為特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型。這種網(wǎng)絡(luò)依靠系統(tǒng)的復(fù)雜程度,通 過(guò)調(diào)整內(nèi)部大量節(jié)點(diǎn)之間相互連接的關(guān)系,從而達(dá)到處理信息的目的。
[0034] 通過(guò)深度神經(jīng)網(wǎng)絡(luò)的算法提取某一深度的每個(gè)字的向量,得到的結(jié)果是每個(gè)字都 有唯一的一個(gè)特征向量。此外,在利用深度神經(jīng)網(wǎng)絡(luò)提取字的特征向量的過(guò)程中,特征向量 的維數(shù)為深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)中可調(diào)整的參數(shù),例如可以將維數(shù)設(shè)定為200,便可得到每個(gè)字 一個(gè)200維的特征向量。
[0035] 通過(guò)深度神經(jīng)網(wǎng)絡(luò)算法可以自動(dòng)的提取每個(gè)字的特征向量,從而能節(jié)省現(xiàn)有技術(shù) 觀察數(shù)據(jù)特征的時(shí)間。
[0036] 對(duì)每個(gè)字的特征向量進(jìn)行提取后,如圖2所示,在本發(fā)明的實(shí)施例的具體流程 中,還可以包括對(duì)提取結(jié)果進(jìn)行哈希存儲(chǔ)。即將每個(gè)字的字作為鍵(key),特征向量為值 (value)進(jìn)行哈希存儲(chǔ),生成哈希字典,以便于后續(xù)操作過(guò)程中對(duì)上述每個(gè)字的特征向量提 取結(jié)果的查找和運(yùn)用。
[0037] 在經(jīng)過(guò)本步驟的特征向量的提取之后,文本中每個(gè)字的特征向量已經(jīng)獲取,從步 驟S12開始處理。
[0038] 步驟S12 :計(jì)算文本中每相鄰兩個(gè)字的特征向量的夾角余弦值并將計(jì)算結(jié)果排 序。兩個(gè)特征向量越相似,兩特征向量夾角余弦值就越接近1,也就說(shuō)明該相鄰兩個(gè)字的組 合是一個(gè)詞語(yǔ)的可能性就越大。
[0039] 對(duì)相鄰的字與字之間的余弦距離的計(jì)算可以采用余弦值計(jì)算公式進(jìn)行,公式如 下:COS Θ =Vl ·ν2/I vl Il v2 I,其中vl,v2代表兩個(gè)字的特征向量。以文本"質(zhì)量不錯(cuò)"為 例,要分別計(jì)算"質(zhì)量"、"量不"、"不錯(cuò)"三個(gè)片段的特征向量夾角余弦值。
[0040] 在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,對(duì)得到的每相鄰兩個(gè)字的特征向量的夾角余弦值 的計(jì)算結(jié)果進(jìn)行排序。例如,可以是按照余弦值的大小進(jìn)行降序排序。排序的方法可以有 多種選擇,比如利用冒泡排序、快速排序、堆排序等方式進(jìn)行。
[0041] 步驟S13 :選取所有所述夾角余弦值大于預(yù)設(shè)閾值的相鄰兩個(gè)字的順序組合作為 文本新詞,并輸出所述文本新詞。
[0042] 排序后可以清晰地挑選出夾角余弦值大的相鄰兩個(gè)字的順序組合構(gòu)成的文本新 詞。但是由于存在如下情形:兩個(gè)相同的字的特征向量是一樣的,它們的夾角余弦值會(huì)非常 大,但這兩個(gè)字的順序組合并不是一個(gè)詞語(yǔ);數(shù)字和/或字母的組合的特征向量的夾角余 弦值也很高,而它們也不是一個(gè)詞語(yǔ)。因此,需要將上述情形的干擾項(xiàng)從排序后的計(jì)算結(jié)果 中進(jìn)行剔除,然后再進(jìn)行對(duì)夾角余弦值大于預(yù)設(shè)閾值的相鄰兩個(gè)字的順序組合的選取,作 為文本新詞予以輸出。具體流程如圖2所示。
[0043] 在一個(gè)實(shí)施例中,對(duì)上述情形干擾項(xiàng)的剔除可以采用python腳本語(yǔ)言來(lái)實(shí)現(xiàn),代 碼編寫如下:
[0044]
[0045] 如上段代碼所示,遍歷每個(gè)文本新詞,如第2、3行代碼所示:如果這兩個(gè)字符是非 中文字符組成,則過(guò)濾掉;如第4、5行代碼所示:如果得到的結(jié)果中這兩個(gè)字是相同的,則 將其過(guò)濾掉。對(duì)排序后得到的文本新詞中的干擾項(xiàng)過(guò)濾掉后,可以得到質(zhì)量較高的文本新 詞集合。
[0046] 在不同文本中,對(duì)夾角余弦值大于預(yù)設(shè)閾值的相鄰兩個(gè)字的順序組合進(jìn)行選取, 閾值不是確定不變的。文本的大小不一樣或者數(shù)據(jù)類型不一樣,閾值很可能會(huì)有變化。所 以,要通過(guò)觀察余弦值計(jì)算結(jié)果的數(shù)據(jù)來(lái)確定。先對(duì)排序后的每相鄰兩個(gè)字的特征向量的 夾角余弦值的計(jì)算結(jié)果進(jìn)行觀察,通過(guò)觀察,找到新發(fā)現(xiàn)的詞開始變得不準(zhǔn)確的位置,確定 出閾值。
[0047] 完成上述選取后,便可得到質(zhì)量較高的文本新詞。但是,仍然存在如下情形:如得 到的文本新詞中的個(gè)別詞語(yǔ)只是某一個(gè)詞的片段,例如,選取出的文本新詞中存在"阿斯"、 "斯頓",而"阿斯頓"才是真正的一個(gè)文本新詞。對(duì)于這種情形,可以采用詞語(yǔ)合并的方式 進(jìn)行文本新詞選取結(jié)果的完善,即根據(jù)兩個(gè)詞共有子進(jìn)行合并三字詞和/或四字詞。具體 流程如圖2所示。
[0048] 詞語(yǔ)合并具體操作如下:遍歷選取完成后的文本新詞,判斷是否存在兩個(gè)文本新 詞,其中一個(gè)文本新詞的最后一個(gè)字是另一個(gè)文本新詞的第一個(gè)字,若存在,則將所述兩個(gè) 文本新詞按照順序合并去掉中間重復(fù)字得到一個(gè)新的文本新詞;判斷所述新的文本新詞在 文本中是否存在,若存在,則刪除合并前的兩個(gè)文本新詞,保留得到的新的文本新詞;若不 存在,則保留合并前的兩個(gè)文本新詞。
[0049] 根據(jù)上述文本中新詞發(fā)現(xiàn)的方法可以看出,通過(guò)將文本拆分成短文本,從而能減 少計(jì)算的復(fù)雜程度;通過(guò)將文本中的一個(gè)一個(gè)字拆分開,從而能保證計(jì)算機(jī)對(duì)文本中單個(gè) 字符的識(shí)別;通過(guò)深度神經(jīng)網(wǎng)絡(luò)提取每個(gè)字的特征向量,從而能保證對(duì)字的特征向量的自 動(dòng)提取,節(jié)省觀察數(shù)據(jù)特征的時(shí)間;通過(guò)對(duì)提取后的字與其特征向量的哈希字典存儲(chǔ),從而 能保證特征向量提取結(jié)果的有效存儲(chǔ),同時(shí)方便后續(xù)處理過(guò)程對(duì)提取結(jié)果的有效查詢和運(yùn) 用;通過(guò)對(duì)文本中每相鄰兩個(gè)字的特征向量的余弦距離的計(jì)算,從而能方便判斷出每相鄰 兩個(gè)字是否是一個(gè)文本新詞;通過(guò)對(duì)每相鄰兩個(gè)字的特征向量余弦距離的計(jì)算結(jié)果的排 序,從而方便對(duì)夾角余弦值大的相鄰兩個(gè)字的順序組合的選?。煌ㄟ^(guò)對(duì)計(jì)算結(jié)果中相同兩 字的組合以及數(shù)字和/或字母組合等干擾項(xiàng)的剔除,從而能保障得到的下述選取結(jié)果的高 質(zhì)量;通過(guò)對(duì)所有所述夾