日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【NLP】情感分析:BERT vs Catboost

發布時間:2025/3/12 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【NLP】情感分析:BERT vs Catboost 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??作者 | Taras Baranyuk

編譯 | VK
來源 | Towards Data Science

介紹

情感分析是一種自然語言處理(NLP)技術,用于確定數據是積極的、消極的還是中性的。

情感分析是基礎,因為它有助于理解語言中的情感基調。這反過來又有助于自動排序評論、社交媒體討論等觀點,讓你做出更快、更準確的決定。

雖然情感分析在近幾年已經非常流行,但是從本世紀初開始,情感分析的研究就一直在進行中。

傳統的機器學習方法,如樸素貝葉斯、Logistic回歸和支持向量機(SVMs)由于其良好的可擴展性,被廣泛應用于大規模情感分析。深度學習(Deep learning,DL)技術已被證明能為各種NLP任務(包括情緒分析)提供更好的準確性;然而,它們的學習速度和使用往往更慢、更昂貴。

在這個故事中,我想提供一個鮮為人知的結合了速度和質量的替代方案。對于推薦方法的結論和評估,我需要一個基線模型。我選擇了久經考驗的BERT。

數據

社交媒體是一個以前所未有的規模產生大量數據的來源。我將用于這個文章的數據集是冠狀病毒tweets NLP:

https://www.kaggle.com/datatattle/covid-19-nlp-text-classification

正如我所看到的,這個模型沒有那么多的數據,乍一看,似乎沒有一個預訓練好的模型是不行的。

由于訓練樣本的數量較少,我們將它們結合起來,將類的數量減少到3個。

基線BERT模型

讓我們使用TensorFlow Hub。TensorFlow Hub是一個經過訓練的機器學習模型庫,可以在任何地方進行微調和部署。只需幾行代碼就可以重用像BERT和Faster R-CNN這樣的訓練模型。

!pip?install?tensorflow_hub !pip?install?tensorflow_text

small_bert/bert_en_uncased_L-4_H-512_A-8-Smaller BERT模型。這個是一個較小的BERT模型,論文(https://arxiv.org/abs/1908.08962)。

Smaller BERT模型適用于計算資源有限的環境。它們可以按照與原始BERT模型相同的方式進行微調。然而,它們在知識蒸餾的環境中是最有效的。

bert_en_uncased_preprocess-BERT的文本預處理。這個模型使用從維基百科和書庫中提取的英語詞匯。文本輸入采用了“不區分大小寫”的方式進行規范化,這意味著在將標記轉換為單詞片段之前,文本是小寫的,并且去掉了任何重音標記。

tfhub_handle_encoder?=?\"https://tfhub.dev/tensorflow/small_bert/bert_en_uncased_L-4_H-512_A-8/1" tfhub_handle_preprocess?=?\"https://tfhub.dev/tensorflow/bert_en_uncased_preprocess/3"

我不會選擇參數和優化,以避免復雜的代碼。同樣,這是基準模型,不是SOTA。

def?build_classifier_model():text_input?=?tf.keras.layers.Input(shape=(),?dtype=tf.string,?name='text')preprocessing_layer?=?hub.KerasLayer(tfhub_handle_preprocess,?name='preprocessing')encoder_inputs?=?preprocessing_layer(text_input)encoder?=?hub.KerasLayer(tfhub_handle_encoder,?trainable=True,?name='BERT_encoder')outputs?=?encoder(encoder_inputs)net?=?outputs['pooled_output']net?=?tf.keras.layers.Dropout(0.1)(net)net?=?tf.keras.layers.Dense(3,?activation='softmax',?name='classifier')(net)model?=?tf.keras.Model(text_input,?net)loss?=?tf.keras.losses.CategoricalCrossentropy(from_logits=True)metric?=?tf.metrics.CategoricalAccuracy('accuracy')optimizer?=?Adam(learning_rate=5e-05,?epsilon=1e-08,?decay=0.01,?clipnorm=1.0)model.compile(optimizer=optimizer,?loss=loss,?metrics=metric)model.summary()return?model

我已經創建了一個參數不到3000萬的模型。

我分配了30%的訓練數據用于模型驗證。

train,?valid?=?train_test_split(df_train,train_size=0.7,random_state=0,stratify=df_train['Sentiment'])y_train,?X_train?=?\train['Sentiment'],?train.drop(['Sentiment'],?axis=1) y_valid,?X_valid?=?\valid['Sentiment'],?valid.drop(['Sentiment'],?axis=1)y_train_c?=?tf.keras.utils.to_categorical(y_train.astype('category').cat.codes.values,?num_classes=3) y_valid_c?=?tf.keras.utils.to_categorical(y_valid.astype('category').cat.codes.values,?num_classes=3)

epoch的數量是憑直覺選擇的

history?=?classifier_model.fit(x=X_train['Tweet'].values,y=y_train_c,validation_data=(X_valid['Tweet'].values,?y_valid_c),epochs=5) BERT?Accuracy:?0.833859920501709

這里是基準模型。顯然,該模型還可以進一步改進。但是讓我們把這個任務作為你的家庭作業。

CatBoost模型

CatBoost是一個高性能的開源庫,用于在決策樹上進行梯度增強。從0.19.1版開始,它支持在GPU上進行文本分類。

主要優點是CatBoost可以在數據中包含分類函數和文本函數,而無需額外的預處理。對于那些重視推理速度的人來說,CatBoost預測的速度是其他開源梯度增強庫的20到40倍,這使得CatBoost對于延遲關鍵任務非常有用。

!pip?install?catboost

我不會選擇最佳參數,那是你的另一個作業。讓我們編寫一個函數來初始化和訓練模型。

def?fit_model(train_pool,?test_pool,?**kwargs):model?=?CatBoostClassifier(task_type='GPU',iterations=5000,eval_metric='Accuracy',od_type='Iter',od_wait=500,**kwargs)return?model.fit(train_pool,eval_set=test_pool,verbose=100,plot=True,use_best_model=True)

使用CatBoost時,我建議使用池。這個池是一個方便的包裝器,它結合了特征、標簽和元數據,比如分類特征和文本特征。

train_pool?=?Pool(data=X_train,label=y_train,text_features=['Tweet'] )valid_pool?=?Pool(data=X_valid,?label=y_valid,text_features=['Tweet'] )

text_features -文本列索引(指定為整數)或名稱(指定為字符串)的一維數組。參數是一個二維特征矩陣(有以下類型之一:list, numpy.ndarray, pandas.DataFrame, pandas.Series)。

如果將該數組中的任何元素指定為名稱而不是索引,則必須提供所有列的名稱。為此,可以使用該構造函數的feature_names參數顯式地指定它們,或者在data參數中傳遞一個指定列名的pandas.DataFrame。

支持的訓練參數:

  • tokenizers-tokenizer用于在創建字典之前預處理文本類型特征列。

  • dictionaries-用于預處理文本類型特征列的字典。

  • feature_calcers—特征分解器,用于根據預處理的文本類型特征列計算新特征。

我直觀地設置了所有的參數;調整它們將再次成為你的作業。

model?=?fit_model(train_pool,?valid_pool,learning_rate=0.35,tokenizers=[{'tokenizer_id':?'Sense','separator_type':?'BySense','lowercasing':?'True','token_types':['Word',?'Number',?'SentenceBreak'],'sub_tokens_policy':'SeveralTokens'}??????],dictionaries?=?[{'dictionary_id':?'Word','max_dictionary_size':?'50000'}],feature_calcers?=?['BoW:top_tokens_count=10000'] )

準確率

LOSS

CatBoost?model?accuracy:?0.8299104791995787

結果非常接近于基線BERT模型所顯示的結果。因為我幾乎沒有訓練的數據,而且模型是從零開始學習的,所以在我看來,結果令人印象深刻。

額外

我得到了兩個模型,結果非常相似。這能給我們提供什么有用的信息嗎?這兩種模式在核心上幾乎沒有共同點,這意味著它們的結合將產生協同效應。檢驗這一結論的最簡單方法是將結果取平均值,然后看看會發生什么。

y_proba_avg?=?np.argmax((y_proba_cb?+?y_proba_bert)/2,?axis=1)

提升很不錯。

Average?accuracy:?0.855713533438652

結尾

在這個故事中,我:

  • 利用BERT建立基線模型;

  • 創建了一個CatBoost模型;

  • 平均兩個模型的結果會發生什么。

在我看來,在大多數情況下,復雜和緩慢的SOTA是可以避免的,特別是在速度是一個關鍵需求的情況下。

CatBoost提供了很好的情感分析功能。對于Kaggle、DrivenData等競賽愛好者來說,CatBoost可以提供一個好的模型,既可以作為基線解決方案,也可以作為模型集合的一部分。

本文中的代碼可以在這里查看:

https://github.com/sagol/catboost_sentiment/blob/main/catboost_sentiment_analysis.ipynb

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯溫州大學《機器學習課程》視頻 本站qq群851320808,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【NLP】情感分析:BERT vs Catboost的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩激情视频 | 国产巨乳在线观看 | 下面一进一出好爽视频 | 教练含着她的乳奶揉搓揉捏动态图 | 久久亚洲色图 | 精品视频久久 | 波多野结衣av电影 | 五月亚洲综合 | 日本少妇性生活 | 久久亚洲av无码精品色午夜麻豆 | 亚洲男人皇宫 | 亚洲色p | 99久久99久久久精品棕色圆 | 国产精品久久久久久久久久直播 | 成年人香蕉视频 | 人妻视频一区二区三区 | 苍井空亚洲精品aa片在线播放 | 欧美性潮喷xxxxx免费视频看 | 国产综合久久 | av日日夜夜 | 黑料av在线| 五月婷婷六月合 | 精品一区二区视频 | av在线资源站 | 99自拍偷拍视频 | 91日韩| 清清草免费视频 | 精品丰满少妇一区二区三区 | 在线免费观看不卡av | 久久伊人超碰 | 日韩插插插 | 久久午夜片 | 天天综合天天 | 国产成人亚洲欧洲在线 | 美丽的小蜜桃2:美丽人生 | 一久久久久 | a级在线免费观看 | 3d动漫精品啪啪一区二区下载 | 国产情侣免费视频 | 欧美成人三级在线 | av成人免费 | 游戏涩涩免费网站 | 国产精品对白 | 国产99对白在线播放 | 男女黄网站 | 善良的老师伦理bd中字 | 国产乱了高清露脸对白 | 亚洲一区二区三区香蕉 | 日韩精品在线免费观看 | 亚洲综合精品国产一区二区三区 | 天堂а√在线中文在线鲁大师 | 亚洲精品理论 | 小sao货大ji巴cao死你 | 日韩不卡的av | 国产丝袜自拍 | 亚洲丁香网| 精品在线一区二区 | 精品人妻互换一区二区三区 | 人妻一区二区三区四区五区 | 在哪里可以看毛片 | 男男黄网站| 亚洲熟妇av一区二区三区 | 天天操操操操 | 加勒比一区在线 | 俄罗斯美女一级爱片 | 亚洲一区在线视频观看 | 国产精品亚洲二区 | 美女一区二区视频 | 欧美成人乱码一区二区三区 | 美女张开双腿让男人捅 | 欧美丰满美乳xxⅹ高潮www | 国产大片91| 欧美在线日韩在线 | 极品淫少妇 | 亚洲 欧美 另类 综合 偷拍 | 亚洲成人播放 | 欧美中文字幕一区 | 日本wwwwww | 色女人综合 | 老司机成人在线 | 国产aⅴ精品 | 91精品小视频 | 男女午夜爽爽 | 夜夜添无码一区二区三区 | 神马伦理视频 | 先锋久久| 91一区二区国产 | 精品国产网 | 国产香蕉视频在线 | 91成人福利视频 | 成人av小说 | 牛牛视频在线观看 | 三级黄色免费网站 | 国产精品丝袜在线 | 精品少妇人妻AV无码专区在线 | 57pao国产精品一区 | 九七av| 国产制服av | 日韩美女激情 |