Python程序設(shè)計與大數(shù)據(jù)-第9章-自然語言處理_第1頁
Python程序設(shè)計與大數(shù)據(jù)-第9章-自然語言處理_第2頁
Python程序設(shè)計與大數(shù)據(jù)-第9章-自然語言處理_第3頁
Python程序設(shè)計與大數(shù)據(jù)-第9章-自然語言處理_第4頁
Python程序設(shè)計與大數(shù)據(jù)-第9章-自然語言處理_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

9.1

Python常用自然語言處理工具9.2

文本處理9.3詞法分析9.5實戰(zhàn):搜索引擎9.4

語法分析of561習題第九章自然語言處理9.1Python常用自然語言處理工具第九章自然語言處理of3129.1.1Python自然語言處理工具包NLTK自然語言處理工具包NLTK是NLP領(lǐng)域最常使用的一個Python庫。NLTK是由美國賓夕法尼亞大學的StevenBird和EdwardLoper開發(fā)的。NLTK包括圖形演示和示例數(shù)據(jù),其提供了WordNet這種方便處理詞匯資源的接口,以及分類、分詞、詞干提取、標注、語法分析、語義推理等類庫。NLTK網(wǎng)站:/。安裝NLTK的命令:sudopipinstall-Unltk。安裝NumPy的命令(可選):sudopipinstall-Unumpy。安裝測試的命令:pythonthentypeimportnltk。9.1Python常用自然語言處理工具第九章自然語言處理of3139.1.2Python中文處理工具jiebajieba是一個用Python實現(xiàn)的分詞庫,對中文有很強大的分詞能力。jieba網(wǎng)站:/fxsjy/jieba。Windows環(huán)境下安裝jieba的命令:pipinstalljieba。jieba的優(yōu)點如下:(1)支持3種分詞模式:

精確模式。試圖將句子最精確地切開,適合文本分析。

全模式。把句子中所有可以成詞的詞語都掃描出來,速度非???,但是不能解決歧義。

搜索引擎模式。在精確模式的基礎(chǔ)上,對長詞再次切分,提高召回率,適用于搜索引擎分詞。(2)支持自定義詞典。9.1Python常用自然語言處理工具第九章自然語言處理of3149.1.3Python語法解析器PLYPLY是Lex和Yacc的Python實現(xiàn),包含了它們的大部分特性。PLY采用慣例優(yōu)于配置(ConventionOverConfiguration,COC)的方式實現(xiàn)各種配置的組織,例如,強制詞法單元的類型列表的名字為tokens,強制描述詞法單元的規(guī)則的變量名為t_TOKENNAME等。PLY使用簡單,經(jīng)過短時間學習就可以實現(xiàn)一個簡單的語法規(guī)則和翻譯規(guī)則程序。PLY對研究編譯器原理很有價值。PLY網(wǎng)站:/ply/。Windows環(huán)境下安裝PLY的命令:pipinstallply。9.1

Python常用自然語言處理工具9.2

文本處理9.3詞法分析9.5實戰(zhàn):搜索引擎9.4

語法分析of565習題第九章自然語言處理9.2文本處理第九章自然語言處理of3169.2.1文本獲取當今主流的自然語言處理研究使用機器學習或統(tǒng)計模型技術(shù)。隱馬爾可夫模型(HiddenMarkovModel,HMM)的使用,以及越來越多的基于統(tǒng)計模型的研究,使得系統(tǒng)擁有了更強的對未知輸入的處理能力。那么,一個首要問題是,如何獲取大量的數(shù)據(jù)?無論是統(tǒng)計模型還是機器學習,其準確率都建立在樣本好壞的基礎(chǔ)上,樣本空間是否足夠大,樣本分布是否足夠均勻,這些也都將影響算法的最終結(jié)果。1.獲取語料庫一種方法是在網(wǎng)絡(luò)上尋找一些第三方提供的語料庫,如比較有名的開放語料庫wiki。但在很多實際情況中,所研究或開發(fā)的系統(tǒng)往往應用于某種特定的領(lǐng)域,這些開放語料庫無法滿足需求。這時就需要使用另一種方法——用爬蟲主動獲取想要的信息(詳見第7章)。網(wǎng)絡(luò)信息豐富多彩,爬蟲獲取的網(wǎng)頁內(nèi)容格式多種多樣,如HTML、XML、Word等。這些內(nèi)容包含大量垃圾數(shù)據(jù),如聲音、動畫、圖片、廣告、Web標簽等,這些數(shù)據(jù)直接影響后期文本處理。如何對這些噪聲數(shù)據(jù)進行過濾,只保存單純的文本格式,是Web信息處理需要深入研究的課題。9.2文本處理第九章自然語言處理of3179.2.1文本獲取2.文本語料庫分類文本語料庫分為4類[5]:①最簡單的孤立的文本集合;②按照文本等標簽分類組成結(jié)構(gòu),如布朗語料庫;③分類不嚴格、會重疊的語料庫,如路透社語料庫;④隨時間/語言用法改變的語料庫,如就職演說庫。3.語料庫的用法

以布朗語料庫為例。因為這個語料庫是研究文本間系統(tǒng)性差異的資源,所以可以用來比較不同文本中情態(tài)動詞的用法,示例如右上:如果想操作自己的語料庫,并且使用之前的方法,那么,需要用PlaintextCorpus-Reader函數(shù)來載入它們。這個函數(shù)有2個參數(shù),第1個是根目錄,第2個是子文件(可以使用正則表達式進行匹配),示例如右下:9.2文本處理第九章自然語言處理of3189.2.2文本表示文本的表示及其特征詞的選取是自然語言處理的一個基本問題。它通過對從文本中抽取的特征詞進行量化來表示文本信息,將它們從一個無結(jié)構(gòu)的原始文本轉(zhuǎn)化為結(jié)構(gòu)化的、計算機可以識別處理的信息,即對文本進行科學抽象,建立它的數(shù)學模型,用以描述和代替文本。由于文本是非結(jié)構(gòu)化的數(shù)據(jù),要想從大量的文本中提取有用的信息就必須首先將文本轉(zhuǎn)化為可處理的結(jié)構(gòu)化形式。通常先對詞匯進行分離,也就是采用分詞技術(shù),然后實現(xiàn)文本向量化表示。例如,文本

可以用向量表示為

,其中,

為文本

的單個詞項及文本特征。當前,文本表示模型主要有3種,分別為布爾模型、概率模型和向量空間模型。9.2文本處理第九章自然語言處理of3199.2.2文本表示向量空間模型結(jié)構(gòu)框架易于拓展,是目前最流行的文本結(jié)構(gòu)化表示方法。Python自然語言處理模塊中文本的表示方法就采用了向量空間模型。9.2文本處理第九章自然語言處理of31109.2.3文本特征詞提取文本特征詞提取主要是指將文本中最能表征文本主題的詞匯提取出來,對信息相關(guān)度較低的詞匯進行過濾,從而用最少的詞項表征文本最重要的信息內(nèi)容,這樣能高效地降低向量空間的維度,簡化后續(xù)的處理操作。文本特征詞提取算法分別基于統(tǒng)計和基于語義進行。文本特征詞提取的過程如圖9-1所示。9.2文本處理第九章自然語言處理of31119.2.3文本特征詞提取1.基于統(tǒng)計的文本特征詞提取算法基于統(tǒng)計的文本特征詞提取算法主要采用評估函數(shù)對特征項進行打分,然后選取分值較高的特征項構(gòu)成特征向量空間。目前常用的基于統(tǒng)計的文本特征詞提取算法有以下3種:1)TF-IDF加權(quán)法TF-IDF加權(quán)是詞頻與反文檔頻率的乘積,是反文檔頻率對詞頻的權(quán)值加權(quán)。TF-IDF加權(quán)認為在一篇文本中出現(xiàn)頻率高但在其他文本中出現(xiàn)頻率低的詞對于文本之間的區(qū)分很重要,最能表征文本的特點。

計算如式(9-3)所示。TF-IDF計算如式(9-4)所示。TF-IDF加權(quán)法計算簡單,對文本特征詞提取效果良好,是一種應用廣泛的提取方法。9.2文本處理第九章自然語言處理of31129.2.3文本特征詞提取2)互信息互信息的主要思路是衡量詞項與文本類別的關(guān)系。當詞項在某類別中出現(xiàn)的頻次比較高,但是在另一類別中出現(xiàn)的頻次比較低時,說明該詞項在出現(xiàn)頻率較高的文本類別中互信息貢獻大,則該詞項最能表征文本的特征性?;バ畔⒂嬎愕氖窃~項出現(xiàn)在某一類別中的文本個數(shù)與它出現(xiàn)在整個文本集中的文本個數(shù)之比。特征項

的互信息的計算如下:

3)信息增益信息增益表征特征項對文本類別的影響程度,主要考量特征項出現(xiàn)之前與出現(xiàn)之后的信息熵的相差額度。假設(shè)S為文本集合,D為文本集合中所有類別的集合,d為集合D

中的元素,表示文本集合的某一類別,那么對于特征項f,其信息增益計算方法如下:9.2文本處理第九章自然語言處理of31139.2.3文本特征詞提取2.基于語義的文本特征詞提取算法常用的基于語義的文本特征詞提取算法可分為以下兩種。1)基于本體論的文本特征詞提取基于本體論的文本特征詞提取方法主要通過構(gòu)建詞語網(wǎng)絡(luò)結(jié)構(gòu),獲取計算特征權(quán)值的公式,然后根據(jù)計算公式得到文本的主題特征項。該方法充分考慮了特征項所在的文檔位置和特征項之間的關(guān)系。2)基于知網(wǎng)概念的文本特征詞提取基于知網(wǎng)概念的文本特征詞提取方法主要利用同義詞和近義詞匹配構(gòu)成知識網(wǎng)絡(luò)。通過知網(wǎng)概念對文檔進行部分語義分析,然后合并同義詞,并對詞語進行聚類,從而得到文本特征項?;谡Z義的文本特征詞提取方法能夠有效地降低特征向量的維度,與基于統(tǒng)計的文本特征詞提取方法不同,其不僅可以有效地去除噪聲或無用信息,還能充分考慮詞項之間的語義關(guān)聯(lián)性,解決同義詞和多義詞的問題。Jieba內(nèi)置TF-IDF加權(quán)法和TextRank算法兩種關(guān)鍵詞(jieba中的文本特征詞稱為關(guān)鍵詞)提取方法,使用時直接調(diào)用即可,見右上。因提取關(guān)鍵詞的前提是分詞(見9.3節(jié)),P:265-267的示例代碼使用了jieba自帶的前綴詞典和IDF權(quán)重詞典。9.1

Python常用自然語言處理工具9.2

文本處理9.3詞法分析9.5實戰(zhàn):搜索引擎9.4

語法分析of5614習題第九章自然語言處理9.3詞法分析第九章自然語言處理of31159.3.1分詞9.3.1分詞詞是最小的能夠獨立活動的有意義的語言成分。分詞的主要任務(wù)是將文本中連續(xù)的字符序列轉(zhuǎn)換成分隔正確的單詞序列。

簡單的英文分詞不需要任何工具,通過空格和標點符號就可以完成。中文分詞和復雜的英文分詞需要使用現(xiàn)有的工具。由于英文和中文在文化上存在巨大的差異,因此,Python處理英文和中文需要使用不同的模塊。對于中文分詞,推薦用jieba,而英文分詞則推薦使用NLTK。1.NLTK分詞NLTK中的分詞是句子級,因此要先分句,再逐句分詞,否則效果不好。1)分句(SentencesSegment)假如有一段文本,希望把它分成一個一個的句子,此時可以使用NLTK中的punkt句子分割器,示例代碼及輸出結(jié)果如右上:9.3詞法分析第九章自然語言處理of31169.3.1分詞NLTK分詞2)分詞(TokenizeSentences)接下來要把每句話再切割成逐個單詞。最簡單的方法是使用NLTK中的WordPunctTokenizer,示例代碼如右下:除了WordPunctTokenizer,NLTK還提供了另外3個分詞方法,TreebankWordTokenizer、PunktWordTokenizer和WhitespaceTokenizer,而且它們的用法與WordPunctTokenizer類似。對于比較復雜的詞型,WordPunctTokenizer往往并不勝任,我們需要借助正則表達式的強大功能來完成分詞任務(wù),此時可使用函數(shù)regexp_tokenize()。9.3詞法分析第九章自然語言處理of31179.3.1分詞NLTK分詞2)分詞(TokenizeSentences)使用NLTK進行分詞時一般可配合使用函數(shù),對文本按照句子進行分割時使用nltk.sent_tokenize(text);對句子進行分詞時使用nltk.word_tokenize(sent)。9.3詞法分析第九章自然語言處理of31189.3.1分詞2.jieba分詞jieba提供了如下3種分詞模式:(1)精確模式:cut_all=True,試圖將句子最精確地切開。(2)全模式:cut_all=False,把句子中所有可以成詞的詞語都掃描出來。(3)搜索引擎模式:jieba.cut_for_search(),在精確模式的基礎(chǔ)上,對長詞再次切分。例如,使用jieba.cut()函數(shù)并傳入待分詞的文本字符串,使用cut_all參數(shù)控制選擇使用全模式還是精確模式,默認為精確模式。如果需要使用搜索引擎模式,使用jieba.cut_for_search()函數(shù)即可。運行以下代碼之后,jieba首先會加載自帶的前綴詞典,然后完成相應的分詞任務(wù)。9.3詞法分析第九章自然語言處理of31199.3.2詞性標注詞性標注又稱詞類標注或簡稱為標注,是指為分詞結(jié)果中的每個單詞標注一個正確的詞性的程序,也即確定每個詞是名詞、動詞、形容詞或其他詞性的過程。詞性也稱為詞類或詞匯范疇。用于特定任務(wù)的標記的集合稱為一個標記集。詞性標注是文本處理的基礎(chǔ),通過詞性標注,任一單詞都能被歸入至少一類詞匯集(setoflexical)或詞性條目(part-of-speechcategories)中,如名詞、動詞、形容詞和冠詞等。詞性標簽用符號來代表詞匯條目——NN(名詞)、VB(動詞)、JJ(形容詞)和AT(冠詞)。BrownCorpus

是最悠久,也是最常用的標記集之一。1.NLTK詞性標注NLTK進行詞性標注時用到的函數(shù)是nltk.pos_tag(tokens),其中,tokens是句子分詞后的結(jié)果,同樣是句子級的標注。例如:9.3詞法分析第九章自然語言處理of31209.3.2詞性標注2.jieba詞性標注

jieba在進行中文分詞的同時,還可以完成詞性標注任務(wù)。它根據(jù)分詞結(jié)果中每個詞的詞性,可以初步實現(xiàn)命名實體識別,即將標注為nr的詞視為人名,將標注為ns的詞視為地名等。所有標點符號都會被標注為x,所以可以根據(jù)這個去除分詞結(jié)果中的標點符號。例如:在漢語中,詞性標注比較簡單,因為漢語詞匯詞性多變的情況比較少見,大多詞語只有一個詞性,或者出現(xiàn)頻次最高的詞性遠遠高于第二位的詞性。據(jù)統(tǒng)計,只須選取最高頻詞性,即可實現(xiàn)準確率為80%的中文詞性標注程序。利用HMM即可實現(xiàn)更高準確率的詞性標注。9.3詞法分析第九章自然語言處理of31219.3.3命名實體識別命名實體識別又稱“專名識別”,是指識別文本中具有特定意義的實體,主要包括人名、地名、機構(gòu)名、專有名詞等。命名實體識別的任務(wù)是識別句子中的人名、地名和機構(gòu)名等命名實體。每一個命名實體都是由一個或多個詞語構(gòu)成的。命名實體識別包括兩個步驟:①實體邊界識別;②確定實體類別(人名、地名、機構(gòu)名或其他)。命名實體識別是信息提取、問答系統(tǒng)、句法分析、機器翻譯、面向SemanticWeb的元數(shù)據(jù)標注等應用領(lǐng)域的重要基礎(chǔ)工具,主要有如下三種方法:(1)基于規(guī)則和詞典的方法。該方法需要專家制訂規(guī)則,準確率較高,但依賴于特征領(lǐng)域,可移植性差。(2)基于統(tǒng)計的方法。其主要采用HMM、MEMM、CRF,難點在于特征的選擇。該方法能獲得好的健壯性和靈活性,不需要太多的人工干預,沒有太多領(lǐng)域限制,但需要大量的標記集。(3)混合方法。其指將規(guī)則與統(tǒng)計相結(jié)合、多種統(tǒng)計方法相結(jié)合等,是目前主流的方法。NLTK進行命名實體識別的函數(shù)是nltk.ne_chunk(tags),其中,tags是句子詞性標注后的結(jié)果,同樣是句子級的。例如:9.3詞法分析第九章自然語言處理of31229.3.4去停用詞有些文本中存在很多出現(xiàn)頻率高但是實際意義不大的詞,如“他”“了”“it”“you”等,稱之為停用詞。去停用詞的主要思想是分詞過后,遍歷一下停用詞表,去掉停用詞。刪除停用詞會提高文本特征分析的效果和效率。1.NLTK去停用詞NLTK提供了一份英文停用詞數(shù)據(jù),總計179個停用詞。9.3詞法分析第九章自然語言處理of31239.3.4去停用詞1.NLTK去停用詞例如:對英文句子進行分詞分詞之后去除停用詞:以右上可以看出,停用詞被過濾了,但標點符號還在,為此,我們首先定義一個標點符號列表,然后過濾這些標點符號。9.3詞法分析第九章自然語言處理of31249.3.4去停用詞1.2.jieba去停用詞例如:jieba_text_output.txt文件的內(nèi)容如下:李小福/是/創(chuàng)新辦/主任/也/是/云計算/方面/的/專家/;//什么/是/八一雙鹿/,/例如/我/輸入/一個/帶/“/韓玉賞鑒/”/的/標題/,/在/自定義詞/庫中/也/增加/了/此/詞為/N/類/,/「/」/正確/應該/不會/被/切開/。/mac/上/可/分出/「/石墨/烯/」/;/此時/又/可以/分出/來/凱特琳/了/。/源文件jieba_text.txt的內(nèi)容如下:李小福是創(chuàng)新辦主任也是云計算方面的專家;什么是八一雙鹿,例如我輸入一個帶“韓玉賞鑒”的標題,在自定義詞庫中也增加了此詞為N類,「臺中」正確應該不會被切開。mac上可分出「石墨烯」;此時又可以分出來凱特琳了。9.3詞法分析第九章自然語言處理of31259.3.5中文分詞實戰(zhàn)使用jieba進行中文分詞的實戰(zhàn)代碼詳見P:275-277源字符串如下:jieba在進行中文分詞的同時,還可以完成詞性標注任務(wù)。根據(jù)分詞結(jié)果中每個詞的詞性,可以初步實現(xiàn)命名實體識別,即將標注為nr的詞視為人名,將標注為ns的詞視為地名等。所有標點符號都會被標注為x,所以可以根據(jù)這個去除分詞結(jié)果中的標點符號。停用詞(部分)如下:部分輸出結(jié)果如下:9.1

Python常用自然語言處理工具9.2

文本處理9.3詞法分析9.5實戰(zhàn):搜索引擎9.4

語法分析of5626習題第九章自然語言處理9.4語法分析第九章自然語言處理of31279.4.1語法分析簡介語法分析是將單詞之間的線性次序變換成一個顯示單詞如何與其他單詞相關(guān)聯(lián)的結(jié)構(gòu),以確定語句是否合乎語法,即語法分析是通過語法樹或其他算法來分析主語、謂語、賓語、定語、狀語、補語等句子元素。語法分析有兩個主要內(nèi)容,其一是句子語法在計算機中的表達與存儲方法,以及語料數(shù)據(jù)集;其二是語法分析的算法。9.4語法分析第九章自然語言處理of31289.4.2語法樹我們可以用樹狀結(jié)構(gòu)圖來表示句子的語法樹,如圖9-2所示。其中,S表示句子;NP、VP、PP分別表示名詞、動詞和介詞短語(短語級別);N、V、P分別表示名詞、動詞、介詞。實際存儲時圖9-2的語法樹可以表示為(S(NP(NBoeing))(VP(Vis)(VP(Vlocated)(PP(Pin)(NP(NSeattle))))))?;ヂ?lián)網(wǎng)上已經(jīng)有成熟的、手工標注的語料數(shù)據(jù)集,如PennTreebankIIConstituentTags(/mihai/teaching/ista555-fall13/readings/PennTreebankConstituents.html)。9.4語法分析第九章自然語言處理of31299.4.3語法分析算法1.上下文無關(guān)語法上下文無關(guān)語法(Context-FreeGrammer,CFG):為了生成句子的語法樹,我們可以定義如下一套上下文無關(guān)語法。(1)N表示一組非葉子節(jié)點的標注,如{S、NP、VP、N…}。(2)Σ表示一組葉子結(jié)點的標注,如{boeing、is…}。(3)R表示一組規(guī)則,每條規(guī)則都可以表示為X->Y1Y2…Yn、X∈N、Yi∈(N∪Σ)。(4)S表示語法樹開始的標注。舉例來說,語法的一個語法子集可以用圖9-3來表示。當給定一個句子時,我們便可以按照從左到右的順序來解析語法。例如,句子themansleeps就可以表示為(S(NP(DTthe)(NNman))(VPsleeps))。9.4語法分析第九章自然語言處理of31309.4.3語法分析算法1.上下文無關(guān)語法上述這種上下文無關(guān)語法可以很容易地推導出一個句子的語法結(jié)構(gòu),但其缺點是推導出的結(jié)構(gòu)可能存在二義性。例如,圖9-4和圖9-5中的語法樹都可以表示同一個句子。常見的二義性問題有:①單詞的不同詞性,如can一般表示“可以”這個情態(tài)動詞,有時則表示罐子;②介詞短語的作用范圍,如VPPPPP這樣的結(jié)構(gòu),第二個介詞短語可能形容VP,也可能形容第一個PP;③連續(xù)的名字,如NNNNNN。9.4語法分析第九章自然語言處理of31319.4.3語法分析算法1.上下文無關(guān)語法1)自定義文法示例代碼如下:

2)開發(fā)文法下面程序展示了如何利用簡單的過濾器來尋找?guī)Ь渥友a語的動詞。9.4語法分析第九章自然語言處理of31329.4.3語法分析算法2.概率分布的上下文無關(guān)語法由于語法的解析存在二義性,就需要找到一種方法從多種可能的語法樹中找出最可能的一棵樹。一種常見的方法是概率分布的上下文無關(guān)語法(ProbabilisticContext-FreeGrammar,PCFG)。如圖9-6所示,除了常規(guī)的語法規(guī)則,我們還對每一條規(guī)則賦予了一個概率。對于每一棵生成的語法樹,我們將其中所有規(guī)則的概率的乘積作為這棵語法樹的出現(xiàn)概率。綜上所述,當我們獲得多棵語法樹時,可以分別計算每棵語法樹的概率p(t),出現(xiàn)概率最大的那棵語法樹就是我們希望得到的結(jié)果。9.4語法分析第九章自然語言處理of31339.4.4語法分析實例下面是一個四則運算的語法結(jié)構(gòu)用PLY實現(xiàn)四則運算的語法分析:9.4語法分析第九章自然語言處理of31349.4.4語法分析實例與詞法分析一樣,語法分析的命名方式也是固定的,即p_成分名_動作。函數(shù)一開始必須是一個聲明字符串,格式是“成分名:成分名成分名…”。其中,成分名可以是詞法分析中的ID,如PLUS、NUMBER等。冒號右邊的是這個函數(shù)結(jié)果的成分名。語法分析通過組合各個ID得到結(jié)構(gòu)化的結(jié)果。成分相同的結(jié)構(gòu)可以合并,如同時定義加法和減法:從上面例子可以看到,增加的一種結(jié)構(gòu)用“|”換行分隔。注意這個字符串的格式是固定的,不過PLUS和MINUS的順序沒有規(guī)定,哪個在上面都可以。9.1

Python常用自然語言處理工具9.2

文本處理9.3詞法分析9.5實戰(zhàn):搜索引擎9.4

語法分析of5635高級大數(shù)據(jù)人才培養(yǎng)習題第九章自然語言處理9.5實戰(zhàn):搜索引擎第九章自然語言處理of3136搜索引擎是“對網(wǎng)絡(luò)信息資源進行搜集整理并提供信息查詢服務(wù)的系統(tǒng),包括信息搜集、信息整理和用戶查詢?nèi)糠帧?。圖9-7是搜索引擎的一般結(jié)構(gòu),首先信息搜集模塊將網(wǎng)絡(luò)信息采集到網(wǎng)絡(luò)信息庫中(一般使用爬蟲);然后信息整理模塊對采集的信息進行分詞、去停用詞、賦權(quán)重等操作后建立索引表(一般是倒排索引)構(gòu)成索引庫;最后用戶查詢模塊就可以識別用戶的檢索需求并提供檢索服務(wù)。搜索引擎可以用Nutch等工具來配置,也可以自己寫代碼實現(xiàn)。本節(jié)作為一個Python學習案例,我們用Python代碼來實現(xiàn)一個簡單的中文搜索引擎。搜其索范圍限定在某個新聞網(wǎng)站內(nèi)部。另外,需要安裝jieba和BeautifulSoup庫。9.5實戰(zhàn):搜索引擎第九章自然語言處理of31371.問題分析從圖9-7可知,一個完整的搜索引擎結(jié)構(gòu)從互聯(lián)網(wǎng)搜集信息開始,要達成目標,主要有如下4個步驟:(1)爬取網(wǎng)站

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論