數據挖掘——文本挖掘
阿新 • • 發佈:2018-09-12
lse 一個數 邏輯 class tro csv 單詞 taf edt
文本挖掘是將文本信息轉化為可利用的數據的知識。
第一步:創建“語料庫”
語料庫(Corpus)是我們要分析的所有文檔的集合。
實現邏輯:
將各文本文件分類放置在一個根目錄下,通過讀取根目錄下所有子目錄中的所有文件,
然後將讀取結果賦值到一個數據框中,得到含有文件路徑、文件內容的結果。
代碼核心:
構建方法:os.walk(fileDir) 對在fileDir目錄下的所有文件(for循環)進行操作 ,得到文件路徑
文件讀取:codecs.open(filepath,medthod,encoding) 文件路徑、打開方式(r,w,rw)、文件編碼 ,得到文本內容
#構建語料庫 import codecs filepaths = [] #構建一個空的‘文件路徑’列表 filecontents = [] #構建一個空的‘文件內容’列表 for root, dirs, files in os.walk(‘.\SogouC.mini\Sample‘): for name in files: #拼接文件路徑,得到所有子文件夾下的文件的文件路徑的列表 filepaths,包含根目錄、子目錄和文件名 filepath = os.path.join(root,name) filepaths.append(filepath)#將所有子文件夾下的文件路徑的列表合並到一個新的列表中 #打開文件,‘r’表示只讀,編碼方式‘utf-8’ f = codecs.open(filepath,‘r‘,‘utf-8‘) filecontent = f.read() #讀取文件,並將內容傳入到 ‘filecontent‘(文件內容)列表中 f.close() #關閉文件 filecontents.append(filecontent) #將所有子文件夾下的文件內容的列表合並到一個新的列表中 import pandas as pd #根據得到的合並後的文件路徑和文件內容,得到語料庫的數據框 corpos = pd.DataFrame({ ‘filePath‘:filepaths, ‘fileContent‘:filecontents}) corpos.to_csv(‘.\corpos.csv‘,sep=‘,‘,encoding=‘utf_8_sig‘,index=False)
###防止保存時出現亂碼,需要參數encoding=‘utf_8_sig‘
第二步:中文分詞
一般使用 jieba 中文分詞包
jieba.cut(‘str‘) 對str進行分詞
jieba.add_word() 增加自定義分詞
jieba.load_userdict() 通過導入保存文件中的單詞添加到詞庫
<未完>
數據挖掘——文本挖掘