郭建偉,燕娜,陳佳宇
(北京市科學(xué)技術(shù)情報(bào)研究所信息資源部,北京 100044)
互聯(lián)網(wǎng)搜索的查詢被劃分成少數(shù)幾個(gè)關(guān)鍵詞而不是以自然語(yǔ)言表述的實(shí)際的問(wèn)題。人們可以用基于社區(qū)的問(wèn)答系統(tǒng)通上下文獲得更為明確的理解而給出更好的回答。相比而言,一個(gè)互聯(lián)網(wǎng)搜索引擎對(duì)于一段很長(zhǎng)的查詢只能給出很差的返回結(jié)果或不返回任何有價(jià)值的東西。人們只能將他們的問(wèn)題轉(zhuǎn)化成一個(gè)或幾個(gè)貼切的關(guān)鍵詞去嘗試相對(duì)貼切的回復(fù)。信息檢索研究的長(zhǎng)期目標(biāo)是開(kāi)發(fā)檢索模型來(lái)為更長(zhǎng)、更專門的查詢提供精確的結(jié)果。因此需要更好的理解文本信息。嚴(yán)格來(lái)說(shuō),自然語(yǔ)言處理[1][2](Natural Language Processing),包括自然語(yǔ)言理解和自然語(yǔ)言生成兩部分。
自然語(yǔ)言就是人交流用的語(yǔ)言。自然語(yǔ)言處理的研究方向包括以下幾種[2]:
規(guī)則方法:可以用規(guī)則的方法預(yù)先準(zhǔn)備好一些先驗(yàn)知識(shí)。然后用統(tǒng)計(jì)的方法來(lái)處理未知的情況。把些人工經(jīng)驗(yàn)放入規(guī)則庫(kù)。很多時(shí)候,人講話并不是按概率來(lái)的,除非是隨便說(shuō)說(shuō)。比如說(shuō),怎么減肥,只能說(shuō)吃那么幾樣減肥的食品。
統(tǒng)計(jì)方法:語(yǔ)料庫(kù)就是一個(gè)文檔的樣本庫(kù)。需要有很大的規(guī)模,オ有概率統(tǒng)計(jì)的意義,可以假設(shè)很多詞和句子都會(huì)在其中出現(xiàn)多次。
計(jì)算框架:算法設(shè)計(jì)是一件非常困難的工作,需要有很好的數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),采用的算法設(shè)計(jì)技術(shù)主要有迭代法、分治法、動(dòng)態(tài)規(guī)劃法等,互聯(lián)網(wǎng)搜索經(jīng)常面臨海量數(shù)據(jù),需要分布式的計(jì)算框架來(lái)執(zhí)行對(duì)網(wǎng)頁(yè)重要度打分等計(jì)算。
語(yǔ)義庫(kù):自然語(yǔ)言中的語(yǔ)義復(fù)雜多變,如:在“買玩偶送女友”中,“送”這個(gè)詞不止一個(gè)義項(xiàng),Opence 提供了OWL 格式的英文知識(shí)庫(kù)。
自動(dòng)句法分析[3]主要有兩種模式:一是短語(yǔ)結(jié)構(gòu)語(yǔ)法,二是依存語(yǔ)法,依存語(yǔ)法更能體現(xiàn)句子中詞與詞之間的關(guān)系。StanfordParser 實(shí)現(xiàn)了一個(gè)基于要素模型的句法分析器,其主要思想就是把一個(gè)詞匯化的分析器分解成多個(gè)要素(factor)句法分析器。Stanford Parser 將一個(gè)詞匯化的模型分解成一個(gè)概率上下文無(wú)關(guān)文法(PCFG)和一個(gè)依存模型,Sharpnlp 可以圖形化顯示句法樹(shù),它是用C#實(shí)現(xiàn)的,可以利用依存關(guān)系改進(jìn)一元分詞,也可以利用依存關(guān)系改進(jìn)二元分詞等。
互聯(lián)網(wǎng)給人們提供了數(shù)不盡的信息和網(wǎng)頁(yè),其中有許多是重復(fù)和多余的,這就需要文檔排重[4]。比如,央行的征信中心會(huì)收到來(lái)自不同銀行申請(qǐng)貸款的客戶資料,需要合并重復(fù)信息,并整合成一個(gè)更完整的客戶基本信息,這就可以通過(guò)計(jì)算信息的相似性合并來(lái)自不同數(shù)據(jù)來(lái)源的數(shù)據(jù)。文檔排重的方法中語(yǔ)義指紋是可行的方法之一。在具體的針對(duì)句子做抄襲性檢測(cè)的實(shí)踐中,可以按句子生成Simhash,然后根據(jù)生成的文檔指紋信息對(duì)文檔分類。
同義詞替換:“年糕”也叫作“切糕”,如果有人聽(tīng)不懂某個(gè)詞,可以換個(gè)說(shuō)法再重復(fù)一遍。需要把說(shuō)法統(tǒng)一,例如把“國(guó)家稅務(wù)局”替換成“國(guó)稅局”,“國(guó)稅局”是“國(guó)家稅務(wù)局”的縮略語(yǔ)企業(yè)的簡(jiǎn)稱和全稱可以看成是語(yǔ)義相同的。一般來(lái)說(shuō),可以用長(zhǎng)詞替換短詞。在地址方面有時(shí)會(huì)有各種不同的寫法和行政區(qū)域編碼,這時(shí)同義詞替換的方法之一是可以把門牌號(hào)碼中文串轉(zhuǎn)成阿拉伯?dāng)?shù)字。例如:“甘家口一號(hào)樓”轉(zhuǎn)換成:“甘家口1 號(hào)樓”。漢語(yǔ)中構(gòu)造縮略語(yǔ)的規(guī)律很詭異,目前也沒(méi)有一個(gè)定論。初次聽(tīng)到這個(gè)問(wèn)題,幾乎每個(gè)人都會(huì)做出這樣的猜想:縮略語(yǔ)都是選用各個(gè)成分中最核心的字,比如“海關(guān)檢查”縮成“海檢”“人民法官”縮成“法官”等。不過(guò),反例也是有的,“郵政編碼”就被縮成了“郵編”,但“碼”無(wú)疑是更能概括“編碼”一詞的。當(dāng)然,這幾個(gè)縮略語(yǔ)已經(jīng)逐漸成詞,可以加進(jìn)詞庫(kù)了。
信息抓?。↖nformation Extraction,IE),是把文本里包含的信息進(jìn)行結(jié)構(gòu)化處理[5],變成表格一樣的組織形式。在信息抓取系統(tǒng)中,輸入的是原始文本,輸出的是固定格式的信息點(diǎn)。這些被抓取的信息點(diǎn)以統(tǒng)一的形式集成在一起。這就是信息抽取的主要任務(wù)。例如草莓價(jià)格上漲,櫻桃價(jià)格下跌,語(yǔ)義標(biāo)注出草莓和櫻桃都是水果,得到關(guān)鍵詞“水果”。信息抽取技術(shù)并不試圖全面理解整篇文檔,只是對(duì)文檔中包含相關(guān)信息的部分進(jìn)行分析。在信息抽取中,要完成指代消解的任務(wù),從網(wǎng)頁(yè)中如何抓取有用的信息并將其歸類的方法。比如,如何從一個(gè)大的正確詞表中找和輸入詞編輯距離小于k 的詞集合,使用了兩個(gè)有限狀態(tài)機(jī)求交集的方法。
圖1 關(guān)鍵詞提取流程圖
關(guān)健詞提取是文本信息處理的一項(xiàng)重要任務(wù),例如可以利用關(guān)鍵詞提取來(lái)發(fā)現(xiàn)新聞中的熱點(diǎn)題。和關(guān)鍵詞類似,很多政府公文也有主題詞描述,上下文相關(guān)廣告系統(tǒng)也可能會(huì)用到關(guān)鍵詞提取技術(shù),統(tǒng)計(jì)詞頻和詞在所有文檔中出現(xiàn)的總次數(shù)。TF(Term Frequence)代表詞頻,IDF(Invert Document Frequence)代表文檔頻率的倒數(shù)。比如說(shuō)“的”在100文檔中的40 篇文檔中出現(xiàn)過(guò),則文檔頻率DF(Document Frequence)是40,IDF 是140。“的”在第一篇文檔中出現(xiàn)了15 次,則TFWIDI(的)=15*140-0.375。另外一個(gè)詞“反腐數(shù)”在這100 篇文檔中的5 篇文檔中出現(xiàn)過(guò),則DF 是5,IDF 是15。“反腐敗”在第一篇文檔中出現(xiàn)了5 次,則TF*IDF(反腐?。?*1/5=1,結(jié)果是:TF*DF(反腐?。㏕F+DF(的)。
模糊匹配問(wèn)題:從用戶查詢?cè)~中挖掘正確提示詞表,一般不需要提示沒(méi)有任何用戶搜索過(guò)的詞,可以輸入任何詞,然后自動(dòng)機(jī)可以基于是否和目標(biāo)詞的編輯距離最多不超過(guò)給定距離從而接收或拒絕它。而且,由于FSA 的內(nèi)在特性,可以在O(n)時(shí)間內(nèi)實(shí)現(xiàn)。這里,m 是測(cè)試字符串的長(zhǎng)度。而標(biāo)準(zhǔn)的動(dòng)態(tài)規(guī)劃編輯距離計(jì)算方法需要O(m*)時(shí)間,這里m 和n 是兩個(gè)輸入單詞的長(zhǎng)度。因此編輯距離自動(dòng)機(jī)可以更快地檢查許多單詞和一個(gè)目標(biāo)詞是否在給定的在最大距離內(nèi)。
所謂自動(dòng)摘要,就是利用計(jì)算機(jī)自動(dòng)地從原始文獻(xiàn)中提取摘要[6]。比如,手機(jī)顯示屏的大小是有限的,因此智能手機(jī)上顯示新聞的短摘要。對(duì)于論壇中長(zhǎng)篇的帖子,有的網(wǎng)友會(huì)求摘要。最簡(jiǎn)單的自動(dòng)生成摘要的方法是返回文格的第一句,稍微復(fù)雜點(diǎn)的方法是首先確定最重要的幾個(gè)句子,然后根據(jù)最重要的幾個(gè)句子生成摘要。
文本分類就是讓計(jì)算機(jī)對(duì)一定的文本集合按照一定的標(biāo)準(zhǔn)進(jìn)行分類。比如,小李是個(gè)足球迷,喜歡看足球類的新聞,新聞推薦系統(tǒng)使用文本分類技術(shù)為小李自動(dòng)推薦足球類的新聞。文本分類程序把一個(gè)未見(jiàn)過(guò)的文檔分成已知類別中的一個(gè)或多個(gè),例如把新聞分成國(guó)內(nèi)新聞和國(guó)際新聞。利用文本分類技術(shù)可以對(duì)網(wǎng)頁(yè)分類,也可以用于為用戶提供個(gè)性化新聞或者垃圾郵件過(guò)濾把給定的文檔歸到兩個(gè)類別中的一個(gè)叫作兩類分類,例如垃圾郵件過(guò)濾,就只需要確定“是”還是“不是”垃圾郵件。分到多個(gè)類別中的一個(gè)叫作多類分類,例如中圖法分類目錄把圖書分成22 個(gè)基本大類文本分類主要分為訓(xùn)練階段和預(yù)測(cè)階段。訓(xùn)練階段得到分類的依據(jù),也叫作分類模型。預(yù)測(cè)階段根據(jù)分類模型對(duì)新文本分類。訓(xùn)練階段一般先分詞,然后提取能夠作為分類依據(jù)的特征詞,最后把分類特征詞和相關(guān)的分類參數(shù)寫入模型文件。提取特征詞這個(gè)步驟叫作特征提取。早期經(jīng)常采用樸素貝葉斯的的文本分類方法,后來(lái)支持向量機(jī)方法成為首選。除此之外,還可以對(duì)人的行為聚類。90 年代末期,美國(guó)S.Reis 教授通過(guò)對(duì)2300 多名被試者的300 多種行為所做的因素分析表明,人類的所有行為可以聚類為15 種行為。
語(yǔ)音識(shí)別技術(shù)[7],也被稱為自動(dòng)語(yǔ)音識(shí)別(Automatic Speech Recognition,ASR),它是一種交叉學(xué)科,與人們的生活和學(xué)習(xí)密切相關(guān),其目標(biāo)是將說(shuō)話者的詞匯內(nèi)容轉(zhuǎn)換為計(jì)算機(jī)可讀的輸入,例如按鍵、二進(jìn)制編碼或者字符序列。比如,將來(lái)打銀行的客服電話,可以直接和銀行系統(tǒng)用口語(yǔ)對(duì)話,而不是“普通話請(qǐng)按1”這樣把人當(dāng)成機(jī)器的詢問(wèn),實(shí)現(xiàn)語(yǔ)音交互。初學(xué)者不會(huì)寫代碼,有經(jīng)驗(yàn)的程序員可以口述代碼,然后讓初學(xué)者把代碼敲進(jìn)去,為了節(jié)約程序員的時(shí)間,可以用語(yǔ)音識(shí)別代碼根據(jù)語(yǔ)音翻譯成文字,進(jìn)一步,還可以根據(jù)識(shí)別出的文字識(shí)別語(yǔ)意,這樣可以讓機(jī)器和人交流。兒童識(shí)別圖片后,可以說(shuō)出這個(gè)圖是老虎還是大象。系統(tǒng)使用語(yǔ)音識(shí)別技術(shù)判斷孩子回答是否正確。對(duì)于不正確的,系統(tǒng)自動(dòng)給出提示。開(kāi)放式語(yǔ)音識(shí)別做好不容易,可以輔助人工輸入字幕,類似語(yǔ)音輸入法。Julius是日本京都大學(xué)和一家日本公司開(kāi)發(fā)的大詞匯量語(yǔ)音識(shí)別引弊,是一種高性能、與語(yǔ)音相關(guān)的研究和開(kāi)發(fā)的解碼器軟件,基于字的N-gram 和上下文相關(guān)的HMM 模型,目前已經(jīng)應(yīng)用于日語(yǔ)和漢語(yǔ)的大規(guī)模連續(xù)語(yǔ)音識(shí)別。在Juis 系統(tǒng)中存在連個(gè)模型:語(yǔ)言模型和聲學(xué)模型。
圖2 語(yǔ)音識(shí)別結(jié)構(gòu)
自然語(yǔ)言處理技術(shù)包括很多方面,如文本分類、對(duì)話系統(tǒng)、機(jī)器翻譯等。人們經(jīng)常用到的查詢功能使用的是搜索引擎技術(shù),用戶在搜索引擎中輸入較長(zhǎng)的問(wèn)題時(shí),計(jì)算機(jī)要能夠給出準(zhǔn)確的答案。在幾乎是所有的我們從電影或電視上看到的未來(lái),搜索引擎已經(jīng)進(jìn)化到類似人類助手一樣能回答針對(duì)任何事物的復(fù)雜問(wèn)題的程度。然而,盡管互聯(lián)網(wǎng)搜索引擎能夠?qū)Ш椒浅>薮蟮闹R(shí)范圍,但是我們要達(dá)到智能助手的能力還很遠(yuǎn)。