中文情感分类单标签
接上一篇:
你所不知道的 Transformer!
超詳細的 Bert 文本分類源碼解讀 | 附源碼
章節
- 背景介紹 
- 預處理 
完整的 GitHub 項目代碼地址:
https://github.com/sherlcok314159/ML/blob/main/nlp/practice/sentiment.md
背景介紹
這次的任務是中文的一個評論情感去向分類:
每一行一共有三個部分,第一個是索引,無所謂;第二個是評論具體內容;第三個是標簽,由0,1,2組成,1代表很好,2是負面評論,0應該是情感取向中立。
數據預處理
bert模型是可以通用的,但是不同數據需要通過預處理來達到滿足bert輸入的標準才行。
首先,我們創造一個讀入自己數據的類,名為MyDataProcessor。其實,這個可以借鑒一下谷歌寫好的例子,比如說MrpcProcessor。
首先將DataProcessor類復制粘貼一下,然后命名為MyDataProcessor,別忘了繼承一下DataProcessor。
接下來我們以get_train_examples為例來簡單介紹一下如何讀入自己的數據。
第一步我們需要讀取文件進來,這里需要注意的是中文要額外加一個utf-8編碼。
讀取好之后,這里模仿創建train_data為空列表,索引值為0。
代碼主體跟其他的差不多,有區別的是我們這里并沒有用DataProcessor的_read_tsv方法,所以文件分割部分我們得自己寫。同時因為中文每行結束會有換行符("\n"),需要換為空白。
至于dev和test數據集處理方式大同小異,只需要將名字換一下,這里不多贅述,這里放了處理訓練集的完整函數。
然后get_labels方法,里面寫具體的labels,這里是0,1,2,那么就是0,1,2,注意不要忘了帶上英文引號就行。最重要的是去main(_)方法下面添加自己定義的數據處理類別
模型去bert官方下載中文的預訓練模型,其他的對著改改就好,相信看過我的文本分類(https://github.com/sherlcok314159/ML/blob/main/nlp/tasks/text.md)的剩下的都不需要多說。跑出來的結果如下,我用的是Tesla K80,白嫖Google Colab的,用時1h17min47s。
AI 角:你能看出這個 AI 做得嘛
總結
 
                            
                        - 上一篇: 从零开始带你一步一步使用YOLOv3训练
- 下一篇: 想都不敢想!这8个神奇“黑科技”原来已经
