資源簡介 課時4 文本數據處理課時目標1.了解文本數據處理的一般過程和方法。2.掌握分詞的方法和技巧。1.文本數據處理主要應用在搜索引擎、情報分析、自動摘要、自動校對、論文查重、文本分類、垃圾郵件過濾、機器翻譯、自動應答等方面。2.文本內容是非結構化的數據,需將文本從無結構的原始狀態轉化為結構化。3.典型的文本處理過程主要包括:分詞、特征提取、數據分析、結果呈現等。(1)分詞中文分詞是中文文本信息處理的基礎,機器翻譯、全文檢索等涉及中文的相關應用中都離不開中文分詞。分詞是將連續的字序列按照一定的規范重新組合成詞序列的過程,也就是將一個漢字序列切分成一個一個單獨的詞。常見的分詞方法有:①基于詞典;②基于統計;③基于規則。常見的分詞系統有分詞系統 簡介jieba分詞 Python開源項目,基于詞典IKAnalyzer Java 開源分詞工具包NLPIR 北京理工大學大數據搜索與挖掘實驗室,非商業應用免費語言云哈工大社會計算與信息檢索研究中心 在線API接口調用BosonNLP玻森中文語義開放平臺提供 在線API接口或庫調用(2)特征提取一般采用的方式為根據專家的知識挑選有價值的特征,或者用數學建模的方法構造評估函數自動選取特征等。目前大多采用評估函數進行特征提取的方式,評估函數大多是基于概率統計設計的,這就需要用龐大的訓練數據集才能獲得對分類起關鍵作用的特征。隨著深度學習、大數據分析等技術的發展,文本特征提取將更加準確、科學。4.文本數據分析與應用在取得特征詞后,對文本的分析就需要根據項目的需求,確定解決問題的路徑,選取合適的工具、設計算法抽取出文本中隱含的價值。(1)標簽云標簽云用詞頻表現文本特征,將關鍵詞按照一定的順序和規律排列,如頻度遞減、字母順序等,并以文字大小的形式代表詞語的重要性。廣泛應用于報紙、雜志等傳統媒體和互聯網。(2)文本情感分析文本情感分析是指通過計算機技術對文本的主觀性、觀點、情緒、極性的挖掘和分析,對文本的情感傾向做出分類判斷。文本情感分析主要應用于網絡輿情監控、用戶評論、分析與決策、信息預測等眾多領域。 例1 Python中文分詞模塊jieba采用的分詞方法屬于 ( )A.基于詞典 B.基于統計C.基于規則 D.以上都有可能答案 A解析 教材中有介紹中文分詞模塊jieba分詞模塊中的詞典。變式訓練1 依據上下文中相鄰字出現的頻率,同時出現的次數越高就越可能組成一個詞,這種分詞方法屬于 ( )A.基于詞典 B.基于統計C.基于規則 D.以上都有可能答案 B解析 頻率是要經過統計的。例2 下列關于文本數據處理的說法,正確的是 ( )A.處理的文本信息通常是結構化數據B.特征提取是中文文本信息處理的基礎C.目前的分詞算法能實現完全準確的進行分詞D.處理的目的是從大規模的文本數據中提取出符合需要的有用模式和隱藏的信息答案 D解析 處理的文本信息是非結構化數據;中文分詞是中文文本信息處理的基礎。變式訓練2 文本數據處理的主要應用有 ( )①搜索引擎 ②自動摘要 ③論文查重 ④列車查詢 ⑤微博評論典型意見A.①④⑤ B.①②③⑤C.②③④ D.②③④⑤答案 B解析 “列車查詢”中主要應用了結構化數據,①②③⑤中主要應用了非結構化的文本數據。例3 2022年10月16日,習近平總書記在中國共產黨第二十次全國代表大會上作了《高舉中國特色社會主義偉大旗幟為全面建設社會主義現代化國家而團結奮斗》的報告,大會后全文發表。現將該報告內容存儲在“new.txt”文件中,經程序處理后的數據保存為“newfc.txt”文件。分別如圖a、圖b所示。圖a圖b(1)處理文件“new.txt”中的數據生成“newfc.txt”文件的過程,一般稱為 。 (2)編寫如下Python程序,讀取“newfc.txt”文件的數據,并統計其中各詞語(2個及以上漢字構成)出現的次數,在畫線位置填寫合適的代碼,完善程序。import pandas as pdf=open('newfc.txt','r',encoding='utf-8').read () #讀取文件words = f.split()#利用空格、換行符將字符串f分割成列表counts = {}#建立空字典,用于存放詞語及其出現的次數for word in words: #統計其中各詞語(2個及以上漢字構成)出現的次數 if ① : if word not in counts: counts[word] = 0 ② #利用字典生成相應的Series,根據值降序排列s=pd.Series(③ ).sort_values (ascending=False) for i in ④ : #從高到低輸出出現次數最多的10個詞語 print(i)答案 (1)分詞 (2)①len(word)>1②counts[word]+=1 ③counts④s.head(10).index或者s.index[:10]解析 本題考查文本數據處理、pandas處理數據(如字典作為Series結構數據的源數據,排序sort_values()以及head()函數等)等操作(1)根據圖b的狀態,可以看出生成“newfc.txt”文件的過程是文本處理過程中的分詞。(2)①處描述的是該詞的長度是2個及以上漢字,可以填入len(word)>1或len(word)>=2;當有長度大于等于2個漢字的詞第一次出現的時候,添加一個新的鍵值對,先設置counts[word]為0,②處該詞出現的次數加1,可以填入counts[word]+=1;③處利用字典counts的數據生成相應的Series結構數據,可以填入counts;字典作Series的原始數據時,字典的鍵作為索引index,字典的值作為數據列,i要遍歷對象s經過降序排序后的前10條數據的索引值,所以④處需要填入的是s.head(10).index或者s.index[:10]。變式訓練3 在網上搜索朱自清的《綠》文章,如圖所示。(1)搜索的信息并保存為txt文件,該過程稱為 。 (2)“綠.txt”文件是文本的類型是 。(填字母:A.結構化數據/B.半結構化數據/C.非結構化數據) (3)制作標簽云的代碼如下:import collectionsimport jiebaimport wordcloud as wcimport numpy as npfrom PIL import Imagewcg=wc.WordCloud(background_color="white",font_path='assets/msyh.ttf')text=open('data/綠.txt',encoding='utf-8').read()seg_list= f=collections.Counter(seg_list)wcg.fit_words(f)wcg.to_file('output/b.png')劃線處語句是調用jieba對象的cut函數對變量為text文件進行分詞,則該處語句為 。 (4)得到的云標簽如圖所示。該圖片的文件名是 ,表示該文本特征是 (至少寫出3個)。 答案 (1)采集信息 (2)C (3)jieba.cut(text) (4)b.png 我的著了綠 梅雨潭解析 獲取信息的過程,稱為信息的采集。從文件的內容來看,屬于非結構化信息。jieba對象的cut函數對文本文件進行切割,應為jieba.cut(文件名)。標簽云用詞頻表現文本特征,一般以文字大小的形式代表詞語的重要性。 1.有關大數據的文本數據處理,下列說法正確的是 ( )A.jieba模塊的分詞算法屬于基于統計的分詞方法B.大數據文本情感分析是電腦將自己的情感表現出來C.文本處理過程中一般先進行數據分析,再分詞、提取特征,最后呈現結果D.標簽云一般根據詞頻表現文本特征,以文字大小代表詞語的重要性答案 D解析 A選項jieba模塊的分詞算法屬于基于字典。C選項文本處理的一般過程為:分詞、特征提取、數據分析、結果呈現。2.下列關于中文分詞方法的描述中,屬于基于詞典的分詞方法的是 ( )A.在分析句子時與詞典中的詞語進行對比,詞典中出現的就劃分為詞B.依據上下文中相鄰字出現的頻率統計,同時出現的次數越高就越可能組成一個詞C.讓計算機模擬人的理解方式,根據大量的現有資料和規則進行學習,然后分詞D.依據詞語與詞語之間的空格進行分詞答案 A解析 B選項基于統計。C選項基于規則。3.在中文文本分析中,一般不用做文本的特征項的是 ( )A.字 B.詞C.短語 D.段落答案 D4.下列數據分析中可能涉及文本情感分析的是 ( )A.博主地域分析 B.微博評論內容分析C.微博發布設備分析 D.博主男女比例分析答案 B5.某研究小組對采集的省內微博數據進行了研究,用不同的顏色來表示心情,在區域地圖上展示了不同地區的人在不同時間的情緒變化,該研究小組所使用的文本數據分析是 ( )A.詞頻統計 B.標簽云C.文本情感分析 D.文本挖掘答案 C解析 根據題目描述可知,本題是通過計算機技術對文本的情緒進行挖掘和分析,并對文本的情感傾向做出分類判斷,因此屬于文本情感分析,答案為C。一、基礎鞏固 1.下列數據處理中,不屬于文本數據處理的是 ( )A.根據白名單和黑名單機制,進行垃圾郵件的識別B.在線客服通過自動應答技術回答問題C.實時監測景區的人流數據,控制過多的游客進入景區D.分析消費者的意見數據,挖掘用戶觀點,輔助運營決策答案 C解析 C選項只是掌握游客數量,沒有進行分詞等文本操作。2.下列數據處理中,不屬于文本數據處理的是 ( )A.將中文翻譯成其他國家的文字B.輸入姓名、單位等信息,制作通訊錄C.檢測的論文內容與對比庫中的資料進行對比,檢測論文可信度D.解析大量合同文檔,有效監控風險條款,節省人力和時間成本答案 B解析 制作通訊錄的材料是結構化數據。3.文本數據處理的主要步驟由以下部分選項組成:①文本校對 ②特征抽取 ③數據分析④分詞 ⑤文本獲取 ⑥結果呈現正確的順序是 ( )A.⑤②④③⑥ B.⑤③④②⑥C.⑤④②③⑥ D.⑤④①③②⑥答案 C解析 考查文本處理的4個過程,該過程中沒有文本校對這個步驟。4.下列數據分析中可能沒有涉及文本情感分析的是 ( )A.用戶評論內容分析B.用戶年齡分布分析C.預測股票走勢和價格D.用戶投訴商品會話答案 B解析 評論內容有壞有好,預測股票走勢會帶來情感,用戶投訴商品會有偏向。但用戶年齡分布分析比較客觀。5.下列有關文本數據分析與應用的說法正確的是 ( )A.文本的情感分析帶有主觀感情B.標簽云只統計各個字詞出現的概率C.標簽云比較適合用戶評論分析與決策D.需要根據項目的需求,確定解決問題的路徑,選取合適的工具答案 D解析 用戶評論分析與決策往往帶有主觀想法。6.分析某城市的介紹,創建的標簽云如圖所示。其中用作文本的特征項的是 ( )A.字 B.詞 C.句子 D.段落答案 B解析 觀察標簽云可知,用作文本的特征項的是詞,因此答案為B。7.某文本數據集的標簽云如圖所示,下列說法正確的是 ( )A.對數據集中文本分詞后可直接創建標簽云,無須特征提取B.標簽云須顯示該數據集包含的全部詞語C.該數據集中,詞語“玩偶”比“注意力”的出現頻率高D.最能表現該數據集中文本特征的詞有“車頂”“玩偶”“路口”答案 C解析 A選項分詞后,還要統計。B選項可以包含部分詞語。D選項路口并不是主要特征。8.下列關于數據可視化的描述中,錯誤的是 ( )A.標簽云是基于語句的文本內容可視化B.數據可視化將數據以圖形圖像等形式表示C.數據可視化可以直觀的呈現數據中蘊含的信息D.數據可視化增強了數據的解釋力與吸引力答案 A解析 A選項標簽云用詞頻表現文本特征。9.編寫一個Python程序,為一篇主題關于“碳中和”的文章制作標簽云,如圖所示。下列說法不正確的是 ( )A.這篇文章屬于結構化數據B.該程序可以使用jieba模塊進行分詞C.基于詞典和基于統計的分詞方法一般是結合使用的D.標簽云用詞頻表現文本特征,詞頻越高的文字越大答案 A解析 本題考查對文本數據處理的理解。A選項文本內容是非結構化的數據。10.若字符串str1="小明打死老虎",有如下Python程序:import jieba#1.全模式:['小','明','打死','打死老虎','死老虎','老虎']fc1=jieba.lcut(str1,cut_all=True)#2.精簡模式:['小明','打死老虎']fc2=jieba.lcut(str1,cut_all=False)下列有關文本分詞處理,說法正確的是 ( )A.使用jieba分詞處理的文本內容屬于結構化的數據B.文本處理過于復雜,語文作文機器自動閱卷目前無法實現C.采用全模式分詞產生的分詞數量一定多于精簡模式的分詞數量D.文本的處理過程主要包括:分詞、特征提取、數據分析、結果呈現等答案 D11.制作“中國”詞云Python代碼如下:import jiebaimport imageiofrom wordcloud import wordCloudtext=① #讀取文本文件“中國.txt”到text對象中 mask=imageio.imread('中國.jpg')wcg=wordCloud(background_color="white",font_path='STZHONGS.TTF',mask=mask)seg_list=② #對文本進行分詞 f=collections.Counter(seg_list)wcg.fit_words(f)③ #創建詞云圖片文件“中國.png” 運行該程序段,內置的collections庫用Counter函數統計詞頻。請回答下列問題︰(1)結合代碼,根據以上提示,則①②處對文本文件進行讀取和分詞的語句應分別填入的是① ,② 。 (2)若要創建如下圖所示的詞云,則③必應填入的語句是 。 (3)圖中所出現的詞是根據詞頻統計進行顯示的。結合以上代碼進行分析,則統計詞頻的語句是 。 答案 (1)①open("中國.txt").read②jiaba.cut(text) (2)wcg.to_file("中國.png")(3)f=collections.Counter(seg_list)二、能力提升12.制作標簽云的代碼如下:import collectionsimport jiebaimport wordcloud as wcimport numpy as npfrom PIL import Imagemask=np.array(Image.open("assets/heart.jpg"))wcg=wc.WordCloud(background_color="white",font_path='assets/msyh.ttf',mask=mask)text=open('data/浙江師范大學.txt', encoding='utf-8').read()seg_list=jieba.cut(text)f=collections.Counter(seg_list) ① wcg.fit_words(f)wcg.to_file('output/c.png')運行該程序段,輸出如圖a所示的標簽云。內置的collections庫用Counter函數可以統計各個字詞出現的頻率。請回答下列問題:圖a(1)結合代碼,根據以上提示,則對文本文件進行分詞的語句是 。 (2)若要輸出各個字詞及出現的次數,運行過程如圖b所示,則劃線①處應填入的代碼為 。 圖b答案 (1)seg_list=jieba.cut(text)(2)print(f)解析 統計各個字詞出現的頻率語句應為f=collections.Counter(seg_list),則seg_list就是分詞的結果,因此分詞的語句是seg_list=jieba.cut(text)。若要打印出這個字典信息,使用print()方法。13.阿澤同學使用百度搜索關鍵字“元旦”,將采集到的結果數據存儲為文本文件,如圖a所示,統計其中各詞語(2個及2個以上文字構成)出現的次數并以衢州地圖為輪廓將其制作成標簽云,如圖b所示。請回答下列問題:(1)編寫如下Python程序,讀取文件,并統計各詞語(2個及2個以上文字構成)出現的次數。請在劃線處填寫合適代碼,完善程序。import jiebaimport ostxt=open(″① ″,″r″).read() words=jieba.cut(txt,cut_all=False)counts={}for word in words: if ② : continue else: if word in counts: counts[word]+=1 else: ③ #生成詞云代碼略(2)下列描述正確的是 (多選,填字母)。 A.文本數據處理主要應用在搜索引擎、情報分析、自動摘要、自動校對、自動應答等方面B.基于詞典的分詞方法、基于統計的分詞方法和基于規則的分詞方法是常用的中文分詞算法,其中基于規則的統計方法在實際應用中較多C.標簽云用詞頻表現文本特征,將關鍵詞按照一定的順序和規律排列,并以文字大小的形式代表詞語的重要性D.典型的中文文本處理過程主要包括:分詞、特征提取、數據分析、結果呈現等E.數據可視化增加了讀者的閱讀難度答案 (1)①″元旦.txt″ ②len(word)==1或len(word)<2 ③counts[word]=1(2)ACD解析 (1)①以只讀模式打開文本文件并且進行處理,文件名需要加上后綴:″元旦.txt″②用jieba進行分詞后,words中為詞匯列表,每次遍歷其中的一個詞匯,2個或2個以上字構成的詞匯需要統計次數置于字典counts中,因此需要coutinue即跳過當前循環繼續下一次循環的條件為:len(word)==1或len(word)<2。③此處表示當前遍歷到的詞匯在counts字典中沒有,此時需要新增元素,并且將值變為1:counts[word]=1。(2)B選項中基于詞典的統計方法在實際應用中較多。 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫