結合tfidf權重,對「達觀杯」提供的文本,進行文本分類,做爲baseline,後續改進均基於此。html
# -*- coding: utf-8 -*- """ @簡介:tfidf特徵/ SVM模型 @成績: 0.77 """ #導入所須要的軟件包 import pandas as pd from sklearn.svm import LinearSVC from sklearn.feature_extraction.text import TfidfVectorizer print("開始...............") #==================================================================================================================== # @代碼功能簡介:從硬盤上讀取已下載好的數據,並進行簡單處理 # @知識點定位:數據預處理 #==================================================================================================================== df_train = pd.read_csv('./data/train_set.csv') # 數據讀取 df_test = pd.read_csv('./data/test_set.csv') # 觀察數據,原始數據包含id、article(原文)列、word_seg(分詞列)、class(類別標籤) df_train.drop(columns=['article', 'id'], inplace=True) # drop刪除列 df_test.drop(columns=['article'], inplace=True) #========================================================== # @代碼功能簡介:將數據集中的字符文本轉換成數字向量,以便計算機可以進行處理(一段文字 ---> 一個向量) # @知識點定位:特徵工程 #========================================================== vectorizer = TfidfVectorizer(ngram_range=(1, 2), min_df=3, max_df=0.9) ''' ngram_range=(1, 2) : 詞組長度爲1和2 min_df : 忽略出現頻率小於3的詞 max_df : 忽略在百分之九十以上的文本中出現過的詞 ''' vectorizer.fit(df_train['word_seg']) # 構造tfidf矩陣 x_train = vectorizer.transform(df_train['word_seg']) # 構造訓練集的tfidf矩陣 x_test = vectorizer.transform(df_test['word_seg']) # 構造測試的tfidf矩陣 y_train = df_train['class']-1 #訓練集的類別標籤(減1方便計算) #========================================================== # @代碼功能簡介:訓練一個分類器 # @知識點定位:傳統監督學習算法之線性邏輯迴歸模型 #========================================================== classifier = LinearSVC() # 實例化邏輯迴歸模型 classifier.fit(x_train, y_train) # 模型訓練,傳入訓練集及其標籤 #根據上面訓練好的分類器對測試集的每一個樣本進行預測 y_test = classifier.predict(x_test) #將測試集的預測結果保存至本地 df_test['class'] = y_test.tolist() df_test['class'] = df_test['class'] + 1 df_result = df_test.loc[:, ['id', 'class']] df_result.to_csv('./results/beginner.csv', index=False) print("完成...............")
因爲提供的數據集較大,通常運行時間再10到15分鐘之間,基礎電腦配置在4核8G的樣子(越消耗內存在6.2G),所以,通常可能會遇到內存溢出的錯誤。學習
可限制每次讀取的數據量,具體解決辦法以下:測試
固然,你也能夠換一個配置更高的電腦。spa