数据科学竞赛-自然语言处理赛流程
自然語言處理賽流程
在NLP賽中,如今很多思路和CV賽是類似的,甚至Pipeline思路也是一致的。
簡(jiǎn)介
隨著CV(計(jì)算機(jī)視覺)大量研究人員的涌入,相對(duì)而言,計(jì)算機(jī)視覺的發(fā)展進(jìn)入了一個(gè)飽和時(shí)期,而自然語言處理的路還有很長(zhǎng),很多NLP科學(xué)家認(rèn)為未來十年是NLP黃金的十年。
過去幾年我們也看到了NLP領(lǐng)域很多突破性的成果,BERT、XLNet等模型的出現(xiàn)為NLP帶來一些新的可能性,這些模型也被廣泛使用在比賽中。
NLP主要有一些任務(wù)如文本分類、文本相似度、序列標(biāo)注、閱讀理解、機(jī)器翻譯、信息抽取等,目前很多數(shù)據(jù)科學(xué)競(jìng)賽平臺(tái)都舉辦了NLP比賽,并且最近有愈演愈烈之勢(shì)。
賽前準(zhǔn)備
參加NLP比賽必須要對(duì)賽題有充分的理解,也就是對(duì)賽題的背景知識(shí)有充足的了解。此外,可以查閱是否有過類似的任務(wù),看看前人的解決方案,或者在其他人的baseline基礎(chǔ)上修改(注意,從頭開始碼一個(gè)賽題的源碼是很累且沒有必要的,有很多人會(huì)開放他們的baseline源碼,在這些baseline基礎(chǔ)上修改會(huì)事半功倍。這點(diǎn)在Kaggle上尤為明顯,Kaggle是一個(gè)非常優(yōu)秀的比賽平臺(tái)。)
到了比賽后期,如果已經(jīng)沒有什么突破了,就到了組隊(duì)的時(shí)機(jī),一般選擇排名差不多的組隊(duì),融合多人的結(jié)果會(huì)取得更好的效果。(前期不建議組隊(duì)是因?yàn)橐粋€(gè)隊(duì)伍是有提交限制的,分開是為了更好的在一起。)
工具選擇
NLP是個(gè)復(fù)雜的任務(wù),要想取得不錯(cuò)的效果需要使用各種庫(kù),下面推薦幾個(gè)常用的工具包。
- Gensim
- NLTK
- TextBlob
- CoreNLP
- TensorFlow
數(shù)據(jù)探索
在NLP比賽中一般不使用EDA(探索性數(shù)據(jù)分析)來稱呼自然語言任務(wù)中的數(shù)據(jù)探索,這是因?yàn)槠鋽?shù)據(jù)大多格式統(tǒng)一(文本文件配以一個(gè)說明性表格文件)沒必要進(jìn)行過多的探索,達(dá)不到分析的地步(只需要示例性地探索說明文件和文本文件即可)。
-
數(shù)據(jù)集存儲(chǔ)信息
通過shell腳本或者Python腳本了解數(shù)據(jù)集中數(shù)據(jù)的基本信息,如文本格式,標(biāo)注方式(文件夾名稱標(biāo)注一批文本或者csv文件逐一標(biāo)注每個(gè)文本,前者更加常用,適用于分布式存儲(chǔ)和分類回歸等多種任務(wù))等。使用Python腳本更加靈活且保證整個(gè)項(xiàng)目的流程化。
-
文本格式
抽樣顯示文本及其標(biāo)簽或者標(biāo)注,確認(rèn)是否需要對(duì)文本進(jìn)行進(jìn)一步處理,如文本分類中每個(gè)文本是給的是否為分詞后的結(jié)果。
作為比賽參與者,一般關(guān)系下面的信息即可。
- 文本長(zhǎng)度
- 字頻、詞頻
- 標(biāo)簽的分布
數(shù)據(jù)預(yù)處理
數(shù)據(jù)決定了模型的上限,算法只是逼近這個(gè)上限,所以數(shù)據(jù)預(yù)處理很重要。這一部分主要介紹數(shù)據(jù)預(yù)處理的一些思路,分為中文和英文兩種思路。
中文
- 非文本內(nèi)容刪除(正則表達(dá)式)
- 處理中文編碼問題(轉(zhuǎn)為UTF8)
- 中文分詞(Jiaba分詞、pkuseg等)
- 引入停用詞(哈工大停用詞表,停用詞取出后的效果不一定很好,特別對(duì)于RNN這種序列模型)
- 特征工程
英文
- 非文本內(nèi)容刪除
- 拼寫檢查及更正
- 詞干提取及詞形還原(NLTK工具包)
- 大小寫轉(zhuǎn)化
- 特征工程
Pipeline制定
目前對(duì)NLP比賽,分為兩種方法,為傳統(tǒng)方法和深度方法。不過近年來,深度方法取得了更好的效果,所以比賽中較好的表現(xiàn)大多都采用了深度方法,尤其是一些新模型。
文本特征構(gòu)建及建模
文本特征的構(gòu)建核心的思路就是為每個(gè)文本(一句或者一段或者一篇文章)生成一個(gè)結(jié)構(gòu)化的特征,方便分類器的訓(xùn)練。
如何生成這種文本的結(jié)構(gòu)化特征,目前主要有兩種整體思路,分別為傳統(tǒng)方法(機(jī)器學(xué)習(xí)方法)和深度學(xué)習(xí)方法。
-
傳統(tǒng)方法
主要有LDA主題模型、LSI主題模型、TFIDF(詞頻逆文檔頻率)等文本特征提取的方法。一般采用傳統(tǒng)方法進(jìn)行特征提取,也會(huì)使用傳統(tǒng)的機(jī)器學(xué)習(xí)模型進(jìn)行建模處理,常用的機(jī)器學(xué)習(xí)模型有邏輯回歸(LR)、支持向量機(jī)(SVM)、LightGBM等。
-
深度方法
主要采用深度網(wǎng)絡(luò)進(jìn)行特征提取,是一種自動(dòng)進(jìn)行特征編碼的機(jī)器學(xué)習(xí)模型,主要有CNN、RNN、Transformer等。使用深度方法進(jìn)行特征提取則一般構(gòu)建端到端的系統(tǒng),所以不會(huì)采用其他的傳統(tǒng)分類器或者回歸器,會(huì)在特征的輸出層結(jié)一個(gè)全連接層作為分類或者回歸模型。這一步也會(huì)有很多網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)方法,但是我們一般采用前人發(fā)明的很不錯(cuò)的結(jié)構(gòu)基礎(chǔ)上進(jìn)行修改,如BERT等。
模型應(yīng)用
企業(yè)提出比賽當(dāng)然是希望能在業(yè)界使用,過于冗余的模型就算metric刷得好看也是不會(huì)受到青睞的。
補(bǔ)充說明
本文較為簡(jiǎn)略的說明了自然語言處理類比賽的主要流程及方法,由于篇幅限制沒有過細(xì)展開,具體的相關(guān)問題可以查看我的其他博客。博客同步至我的個(gè)人博客網(wǎng)站,歡迎查看。如有錯(cuò)誤,歡迎指正。
總結(jié)
以上是生活随笔為你收集整理的数据科学竞赛-自然语言处理赛流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据科学竞赛-人脸表情识别
- 下一篇: 数据科学竞赛-文本分类