一.比賽背景
在本次Datawhale的競賽當中,我們有一個具有20w條訓練集,5w條測驗集的資料集,整個資料集里面包含了各種分類不同的文本,每一個文本在訓練集里都進行了標注label,這個label能夠讓我們知道訓練集里面的句子是屬于哪一個類別的資料,本次競賽的文本分類一共有14個類別的資料,分別是:財經,彩票,房產,家居,教育,科技,社會,時尚,時政,體育,星座,游戲和娛樂,那么我們來看看資料集長啥樣:

其中,在資料集中標簽的對應的關系如下:{'科技': 0, '股票': 1, '體育': 2, '娛樂': 3, '時政': 4, '社會': 5, '教育': 6, '財經': 7, '家居': 8, '游戲': 9, '房產': 10, '時尚': 11, '彩票': 12, '星座': 13},這個資料集我們打開只會看到我們text的資料,而不會看到每一條text所對應的label,這是因為在csv檔案當中標注的label是不會顯示出來的,我們需要將其使用pandas進行讀入,然后再通過dataframe來查看這個檔案,就可以看到訓練集資料的label了!
二.測評指標
在本次比賽當中我們使用了f1_score的測評指標,什么是f1_scrore呢?我們來看看它的定義:
相當于f1_score就是精確率和召回率的一個調和均值,這個演算法和物理當中求解電阻的方法非常相似,那么什么是精確率呢?
2.1精確率(Precision)
精確率的定義如下:

也就是真正確的樣本和我們模型所認為正確的樣本的比值,那么什么是召回率呢?
2.2召回率(Recall)
召回率的公式如下:

這個公式和precision的公式唯一不同的則是分母,用到了所有真正正樣本的數量,而precision用到的則是預測為預測為正類樣本的數量,把這兩個公式結合一下就可以得到我們的F1_score了,這是一個在文本分類領域很常見的指標,
三.提取資料
我們現在用pandas對資料進行讀取,代碼如下:
import pandas as pd train_df = pd.read_csv('train_set.csv', sep='\t')
單引號之內的字串表示讀取訓練集的路徑,后面還可以加上nrow表示讀取csv檔案的行數,一般情況下不使用這個引數,因為會對檔案當中的所有資料進行讀取,如果只需要其中的一部分資料進行訓練,則只需對資料進行切片訓練即可,
四.解題思路
一般情況下我們會使用基于深度學習的方法處理自然語言處理的問題,因為基于深度學習的方法往往會表現得更好,當前最先進的方法則是word2vec和bert了,我們最好首先嘗試這兩個模型對文本處理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/3931.html
標籤:其他
下一篇:7個開源資料科學專案
