短信文本分類的實踐

由於最近接觸到一些短信內容,本着想要做一個模板提取和分類,先試試水。開局就遇到一堆問題,也可能是我自己太菜。所以想把遇到的問題進行記錄,以備不時之需。

第一部分

①由於我拿到的數據是沒有標籤的,就是隻有短信內容,沒有短信標籤,是分爲那個類。所以我打算只添加兩類標籤,就用0和1區分。問題出來了,pandas可以把標籤都賦值成一類,data1['score']=1。但是就沒有負標籤,也不能人工去標註負標籤把,想着是自己做着玩,然後就每五個標註爲一個負樣本。找了好幾種方法,發現如下代碼可以解決:

ran1=random.sample(range(0,len(data1)),len(data1)//5)  #前面沒有//5隨機所有行
for i in ran1:
    data1['score'][i]=0

這樣得出的樣本比例正負樣本5:1.。

②然後發現數據量太少,就做了複製操作。複製容易,就是總是出現X,y的數據條數匹配不上,找了好幾個方法,還好可以解決:

from sklearn.utils import shuffle #utils在英語中是跑龍套/小工具的意思
df = shuffle(data1,random_state=33)
X = df['content']
y = df['score']
X = pd.concat([df[['content']],df[['content']],df[['content']]])   #複製三分
y = pd.concat([df.score,df.score,df.score])

先對數據打亂,然後在複製,就不報錯了,我也不知道原理是什麼,有知道的大神移動要告訴一下!

③由於處理的文本,要進行分詞、去停用詞等處理,在添加停用詞文件的時候,把停用詞文件放到項目目錄Data中,總是讀取錯誤,只能從盤裏讀取。估計是我哪個地方寫錯了,回頭再找找方法。

第二部分

①導入詞袋模型,將分割的文本進行詞袋處理

②藉助多維貝葉斯模型,短文本分類

③分別打印出混淆矩陣,準確率,召回率,F1等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章