“達觀杯”文本智能處理挑戰賽


“達觀杯”文本智能處理挑戰賽

 

一、題目分析

數據

數據包含2個csv文件:

train_set.csv:此數據集用於訓練模型,每一行對應一篇文章。

文章分別在“字”和“詞”的級別上做了脫敏處理。共有四列:

第一列是文章的索引(id);

第二列是文章正文在“字”級別上的表示,即字符相隔正文(article);

第三列是在“詞”級別上的表示,即詞語相隔正文(word_seg);

第四列是這篇文章的標注(class)。

注:每一個數字對應一個“字”,或“詞”,或“標點符號”。“字”的編號與“詞”的編號是獨立的!

test_set.csv:此數據用於測試。數據格式同train_set.csv,但不包含class。 注:test_set與train_test中文章id的編號是獨立的。 友情提示:請不要嘗試用excel打開這些文件!由於一篇文章太長,excel可能無法完整地讀入某一行!

train_set.csv中數據如下:

 

test_set.csv中數據如下:

 

題目的要求大致上已經明確,就是根據兩個參數把id歸類到不同的類中。 

二、問題分析

問題的解決方案大致如下:

三、代碼

 1 print("開始........")
 2 
 3 import pandas as pd
 4 from sklearn.linear_model import LogisticRegression
 5 from sklearn.feature_extraction.text import  CountVectorizer
 6 
 7 df_train = pd.read_csv('./train_set.csv')
 8 df_test = pd.read_csv('./test_set.csv')
 9 df_train.drop(columns=['article','id'],inplace=True)
10 df_test.drop(columns=['article'],inplace=True)
11 
12 vectorizer=CountVectorizer(ngram_range=(1,2),min_df=3,max_df=0.9,max_features=100000)
13 vectorizer.fit(df_train['word_seg'])
14 x_train=vectorizer.transform(df_train['word_seg'])
15 x_test=vectorizer.transform(df_test['word_seg'])
16 y_train=df_train['class']-1
17 
18 lg=LogisticRegression(C=4,dual=True)
19 lg.fit(x_train,y_train)
20 
21 y_test=lg.predict(x_test)
22 
23 df_test['class']=y_test.tolist()
24 df_test['class']=df_test['class']+1
25 df_result=df_test.loc[:,['id','class']]
26 df_result.to_csv('./result.csv',index=False)
27 
28 print("完成.........")

四、回顧總結

提高模型性能的方法大致上有以下幾種:

1、數據預處理

2、特征工程

3、機器學習算法

4、模型集成

5、數據增強


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM