文本數據的獲取方法通常有兩種:html
- 使用別人作好的語料庫
- 爬蟲去獲取本身的預料數據
通常能夠使用正則表達式去進行刪除python
因爲python2不支持unicode的處理,所以使用python2作中文文本預處理須要遵循的原則是,存儲數據都用utf8,讀出來進行中文相關處理時,使用GBK之類的中文編碼。正則表達式
中文分詞工具介紹算法
stopwords = pd.read_csv("NLP_project\data\stopwords.txt", index_col=False, quoting=3, sep="\t", names=['stopword'],encoding='utf-8') stopwords = stopwords['stopword'].values
def preprocess_text(content_lines, sentences, category): for line in content_lines: try: segs = jieba.lcut(line) segs = list(filter(lambda x: len(x) > 1, segs)) segs = list(filter(lambda x: x not in stopwords, segs)) sentences.append((" ".join(segs), category)) #sentence是列表。裏面是一個元祖,category是該內容的一個標籤 except BaseException: print(line)
通常特徵提取能夠有三種方法轉換成向量的形式。app
可參考原理連接編碼
一、分詞:通常使用jieba軟件。 二、生成詞向量詞典:可以使用word2vec算法對分詞後的語料庫進行預訓練生成詞向量詞典。其中的字詞是不重複的,word2vec會對文本中的字、詞和標點基本元素的出現頻率進行統計,經過無監督訓練,得到做爲基礎語料基礎構成元素的字詞對應的指定維度的向量表徵。 三、數據集劃分:在源代碼可將數據集和測試集的劃分比例參數設爲0.6,60%用來訓練集,40%用來測試集和驗證集。 四、文本數字化:將分詞後語料庫文本中對應的字詞和2中詞向量詞典經行對比,獲其索引,即在詞向量詞典對應的序號,這樣文檔中都以整數索引序號表示從而實現索引形式的數字化,有利於下降文本表示的數據維度。 五、文本向量化:在數據進入模型訓練前需按照詞的索引序號從2中的詞向量詞典取出其對應的向量,這樣整篇文本被轉化爲向量的形式。 六、標籤:即文本類型,可用one-hot形式的標籤。