1. 程式人生 > >數據挖掘——文本挖掘

數據挖掘——文本挖掘

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() 通過導入保存文件中的單詞添加到詞庫

<未完>

  

數據挖掘——文本挖掘