自然語言及語音處理項目式教程 實訓(xùn)指導(dǎo) 實訓(xùn)7 自動提取文本關(guān)鍵詞_第1頁
自然語言及語音處理項目式教程 實訓(xùn)指導(dǎo) 實訓(xùn)7 自動提取文本關(guān)鍵詞_第2頁
自然語言及語音處理項目式教程 實訓(xùn)指導(dǎo) 實訓(xùn)7 自動提取文本關(guān)鍵詞_第3頁
自然語言及語音處理項目式教程 實訓(xùn)指導(dǎo) 實訓(xùn)7 自動提取文本關(guān)鍵詞_第4頁
自然語言及語音處理項目式教程 實訓(xùn)指導(dǎo) 實訓(xùn)7 自動提取文本關(guān)鍵詞_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《自然語言處理技術(shù)》初識文本基礎(chǔ)處理——自動提取文本關(guān)鍵詞實訓(xùn)目標(biāo)掌握讀取文檔的方法。掌握自定義Stop_words函數(shù)獲取停用詞列表,自定義Filter_word函數(shù)處理文檔的方法。掌握使用TF-IDF算法對關(guān)鍵詞進(jìn)行提取的方法。實訓(xùn)環(huán)境環(huán)境版本說明Windows1064電腦操作系統(tǒng)Python3.8.5Python語言版本pandas1.3.0主要用于數(shù)據(jù)讀取、清洗等操作NumPy1.21.6主要用于Python中的數(shù)值計算jieba0.42.1主要用于文本分詞Gensim4.2.0主要用于檢索文本、計算文本相似度、訓(xùn)練詞向量、建模主題等Matplotlib3.3.0主要用于數(shù)據(jù)可視化PaddlePaddle2.4.2是一個深度學(xué)習(xí)框架,提供了高效的計算框架和優(yōu)化算法PaddleSpeech1.2.0主要用于語音和音頻中的各種關(guān)鍵任務(wù)的開發(fā)scikit-learn1.0.2廣泛地用于統(tǒng)計分析和機器學(xué)習(xí)建模等數(shù)據(jù)科學(xué)領(lǐng)域Librosa0.8.1主要用于分析一般的音頻信號,是一個非常強大的Python語音信號處理的第三方庫NLTK3.5是一個常用的自然語言處理工具包,可用于文本處理、語義分析、詞性標(biāo)注等SciPy1.7.3是一個科學(xué)計算工具包,可用于數(shù)學(xué)、科學(xué)、工程學(xué)等領(lǐng)域pyttsx32.9.0主要用于將文本轉(zhuǎn)換成語音實訓(xùn)說明自動提取文本關(guān)鍵詞任務(wù)是指通過計算機自動化地從一篇或多篇文本中提取出最具代表性、最能反映文本主題的關(guān)鍵詞或短語。本任務(wù)根據(jù)TF-IDF算法原理自定義一個TF-IDF算法函數(shù),并通過實例介紹關(guān)鍵詞自動提取。關(guān)鍵詞提取流程主要包括讀取文檔、文本預(yù)處理和TF-IDF實現(xiàn)等步驟,如REF_Ref130823501\h圖21所示。圖STYLEREF1\s2SEQ圖\*ARABIC\s11提取文本關(guān)鍵詞具體步驟實訓(xùn)步驟讀取文檔本任務(wù)以嫦娥五號的相關(guān)新聞為例,進(jìn)行文檔讀取。讀取文檔,如REF_Ref131960728\h代碼21所示。代碼STYLEREF1\s2SEQ代碼\*ARABIC\s11讀取文檔defread_txt_file(file_path):"讀取txt文件,返回文件內(nèi)容"withopen(file_path,'r',encoding='utf-8')asf:#file_path:文件路徑content=f.read()returncontentfile_path='../data/input.txt'content=read_txt_file(file_path)print(content)運行讀取文檔代碼,得到的文檔內(nèi)容如下。嫦娥五號實現(xiàn)我國首次地外天體起飛科技日報北京12月3日電(李晨記者付毅飛)記者從國家航天局獲悉,12月3日23時10分,嫦娥五號上升器3000牛發(fā)動機工作約6分鐘,成功將攜帶樣品的上升器送入到預(yù)定環(huán)月軌道。這是我國首次實現(xiàn)地外天體起飛。與地面起飛不同,嫦娥五號上升器月面起飛不具備成熟的發(fā)射塔架系統(tǒng),著陸器相當(dāng)于上升器的“臨時塔架”,上升器起飛存在起飛初始基準(zhǔn)與起飛平臺姿態(tài)不確定、發(fā)動機羽流導(dǎo)流空間受限、地月環(huán)境差異等問題。另外由于月球上沒有導(dǎo)航星座,上升器起飛后,需在地面測控輔助下,借助自身攜帶的特殊敏感器實現(xiàn)自主定位、定姿。點火起飛前,著上組合體實現(xiàn)月面國旗展開以及上升器、著陸器的解鎖分離。此次國旗展開是我國在月球表面首次實現(xiàn)國旗的“獨立展示”。點火起飛后,上升器經(jīng)歷垂直上升、姿態(tài)調(diào)整和軌道射入三個階段,進(jìn)入預(yù)定環(huán)月飛行軌道。隨后,上升器將與環(huán)月等待的軌返組合體交會對接,將月球樣品轉(zhuǎn)移到返回器,后者將等待合適的月地入射窗口,做好返回地球的準(zhǔn)備。文本預(yù)處理讀入需要提取關(guān)鍵字的文檔之后,需要進(jìn)行預(yù)處理。文本預(yù)處理包括加載停用詞、對當(dāng)前文檔進(jìn)行分詞和詞性標(biāo)注,以及過濾一些對提取關(guān)鍵詞幫助不大的詞。在本步驟中,只將名詞作為候選關(guān)鍵詞,在過濾詞中只留下名詞,并且刪除長度小于或等于1的無意義詞語。文本預(yù)處理的具體步驟如REF_Ref132922000\h圖22所示。圖STYLEREF1\s2SEQ圖\*ARABIC\s12文本預(yù)處理具體步驟獲取停用詞列表加載停用詞文件stopword.txt并按行讀取文件中的停用詞,對文本中多余的換行符進(jìn)行替換,最終獲取停用詞列表。其中,自定義Stop_words函數(shù)用于獲取停用詞列表。加載停用詞文件stopword.txt,如REF_Ref130822444\h代碼22所示。代碼STYLEREF1\s2SEQ代碼\*ARABIC\s12加載停用詞文件stopword.txtdefStop_words():#創(chuàng)建一個空列表,用于存儲停用詞stopword=[]data=[]#打開停用詞文件f=open('../data/stopword.txt')#逐行讀取文件中的內(nèi)容forlineinf.readlines():#去除行末的換行符,并將處理后的字符串添加到data列表中data.append(line.strip())#將data列表中的字符串添加到stopword列表中foriindata:#去除字符串末尾的換行符,并將處理后的字符串添加到stopword列表中output=i.replace('\n','')stopword.append(output)#返回停用詞列表returnstopword#調(diào)用Stop_words函數(shù),并輸出停用詞列表print('停用詞列表(前5個):\n',Stop_words()[0:5])運行加載停用詞文件代碼,得到停用詞列表的前5個元素如下,主要包括標(biāo)點符號。停用詞列表(前5個):['\ufeff,','?','】',']','[']過濾停用詞對當(dāng)前文檔過濾停用詞。自定義Filter_word函數(shù)用于對當(dāng)前文檔進(jìn)行處理,輸入?yún)?shù)為當(dāng)前文檔內(nèi)容。處理后的文檔存放在filter_word變量中,它是一個包含多個字符串的列表。過濾停用詞如REF_Ref131699205\h代碼23所示。代碼STYLEREF1\s2SEQ代碼\*ARABIC\s13過濾停用詞#采用jieba進(jìn)行詞性標(biāo)注,對當(dāng)前文檔過濾詞和停用詞importjieba.possegdefFilter_word(text):original_words=[]#原始詞列表filter_word=[]#過濾后的詞列表stopword=Stop_words()#獲取停用詞列表text=jieba.posseg.cut(text)#使用jieba詞性標(biāo)注對文本進(jìn)行分詞forword,flagintext:#遍歷文檔中的每一個詞及其詞性original_words.append(word)#將詞添加到原始詞列表中ifflag.startswith('n')isFalse:#如果當(dāng)前詞性不是名詞,跳過該詞continueifnotwordinstopwordandlen(word)>1:#如果當(dāng)前詞不在停用詞列表中且長度大于1,那么將其添加到過濾后的詞列表中filter_word.append(word)returnoriginal_words,filter_word#返回原始詞列表和過濾后的詞列表original_words,filter_word=Filter_word(content)#調(diào)用Filter_word函數(shù)處理文本print("過濾前的詞列表:",original_words[0:10])#打印過濾前的詞列表前10個詞print("過濾后的詞列表:",filter_word[0:10])#打印過濾后的詞列表前10個詞運行過濾停用詞代碼,得到過濾前詞列表的前十個詞和過濾后詞列表的前十個詞如下。過濾前的詞列表:['嫦娥','五號','實現(xiàn)','我國','首次','地外','天體','起飛','科技日報','北京']過濾后的詞列表:['嫦娥','天體','科技日報','北京','李晨','記者','付毅飛','記者','國家航天局','嫦娥']在過濾前的詞列表中,包含了文本中出現(xiàn)的前10個詞,如:“嫦娥”“五號”“實現(xiàn)”“我國”等。過濾前的詞列表中既包括名詞,也包括其他詞性的詞。經(jīng)過過濾后的詞列表只保留了名詞且不在停用詞列表中的詞,如:“嫦娥”“天體”“科技日報”“北京”等。TF-IDF實現(xiàn)最后使用TF-IDF算法對關(guān)鍵詞進(jìn)行提取。在自定義的tf_idf函數(shù)中,算法實現(xiàn)分為以下3個步驟。調(diào)用自定義的Filter_word函數(shù)處理當(dāng)前文檔,統(tǒng)計每個詞的TF值。調(diào)用自定義的Filter_words函數(shù)處理整個文檔集,統(tǒng)計IDF值。將TF值和IDF值相乘,得到每個詞的TF-IDF值。通過自定義的tf_idf函數(shù)能夠?qū)崿F(xiàn)對文檔中關(guān)鍵詞的提取。提取文檔關(guān)鍵詞如REF_Ref130822687\h代碼24所示。通過實現(xiàn)TF-IDF算法,分別計算文檔中每個詞的TF值和IDF值,將二者相乘得到TF-IDF值,然后按照TF-IDF值從高到低排序,提取前10個關(guān)鍵詞。代碼STYLEREF1\s2SEQ代碼\*ARABIC\s14提取文檔關(guān)鍵詞importmathimportoperator#加載文檔集,對文檔集過濾詞和停用詞defFilter_words(data_path='../data/corpus.txt'):document=[]forlineinopen(data_path,'r',encoding='utf8'):segment=jieba.posseg.cut(line.strip())filter_words=[]stopword=Stop_words()forword,flaginsegment:ifflag.startswith('n')isFalse:continueifnotwordinstopwordandlen(word)>1:filter_words.append(word)document.append(filter_words)returndocumentdeftf_idf():#統(tǒng)計TF值,即每個詞在文本中出現(xiàn)的頻率tf_dict={}original_words,filter_word=Filter_word(content)#通過Filter_word函數(shù)去除停用詞等無用詞匯,返回文本中的單詞列表forwordinfilter_word:ifwordnotintf_dict:tf_dict[word]=1else:tf_dict[word]+=1forwordintf_dict:tf_dict[word]=tf_dict[word]/len(content)#計算每個詞的頻率,即出現(xiàn)次數(shù)除以總單詞數(shù)#統(tǒng)計IDF值,即每個詞在所有文本中出現(xiàn)的頻率倒數(shù)的對數(shù)idf_dict={}document=Filter_words()#通過Filter_words函數(shù)獲取所有文本,每個文本都是一個單詞列表doc_total=len(document)#計算文本總數(shù)fordocindocument:forwordinset(doc):ifwordnotinidf_dict:idf_dict[word]=1else:idf_dict[word]+=1forwordinidf_dict:idf_dict[word]=math.log(doc_total/(idf_dict[word]+1))#計算每個詞的IDF值#計算TF-IDF值,即每個詞的TF值乘以其IDF值tf_idf_dict={}forwordinfilter_word:ifwordnotinidf_dict:idf_dict[word]=0#若一個詞在所有文本中都沒有出現(xiàn)過,則其IDF值為0tf_idf_

溫馨提示

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

評論

0/150

提交評論