【NLP】使用BERT完成NLP任务
生活随笔
收集整理的這篇文章主要介紹了
【NLP】使用BERT完成NLP任务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在日常生活中新聞具備有多的信息,在AINWIN互聯網輿情企業風險事件的識別和預警 比賽中參賽選手需要根據新聞識別主體和新聞類型。
比賽官網(報名即可下載數據集):http://ailab.aiwin.org.cn/competitions/48
比賽給定了的1w條左右的訓練數據,以及部分企業主體名稱的匯總。接下來我們看如何一步一步完成本場比賽的。
比賽思路
對比賽要求進行分析后,可以將賽題任務具體劃分為:
任務1:企業主體抽取:抽取出新聞中主要的企業名稱,并與完整的企業名稱進行對應;(NER任務)
任務2:新聞類型分類:根據新聞的內容將新聞的類型進行具體分類;(文本分類任務)
完成思路:
將任務1和任務2,分開完成;
將任務1和任務2,一起用Bert建模;
任務1:使用TFIFD完成
對文本進行分詞:
import?jiebadef?strcut(s):seg_list?=?jieba.cut(s)return?'?'.join(list(seg_list))train_title?=?train_data['NEWS_TITLE'].apply(strcut)TFIDF + 線性模型:
from?sklearn.feature_extraction.text?import?TfidfVectorizertfidf?=?TfidfVectorizer(ngram_range=(1,1)) train_title_ttidf?=?tfidf.fit_transform(train_title)驗證集分類精度約89%。
任務1:使用BERT分類
進行token處理:
from?transformers?import?BertTokenizer tokenizer?=?BertTokenizer.from_pretrained('bert-base-chinese') train_encoding?=?tokenizer(list(tr_x),?truncation=True,?padding=True,?max_length=128) val_encoding?=?tokenizer(list(val_x),?truncation=True,?padding=True,?max_length=128)讀取模型并定義優化器:
import?torch from?transformers?import?AutoModelForSequenceClassification,?AdamW,?get_linear_schedule_with_warmup device?=?torch.device("cuda:0"?if?torch.cuda.is_available()?else?"cpu") model.to(device)optim?=?AdamW(model.parameters(),?lr=5e-5) total_steps?=?len(train_loader)?*?1任務2:使用正則匹配
通過公司主體與數據集中字符串匹配:
for?row?in?train_data.iloc[:100].iterrows():match1?=?company_name[company_name['name'].apply(lambda?x:?x?in?row[1].NEWS_TITLE)]if?match1.shape[0]?>?0:match1.loc[:,?'name_len']?=?match1['name'].apply(len)match1?=?match1.sort_values(by='name_len')match1?=?match1.iloc[-1]['name']else:match1?=?''match2?=?company_name[company_name['name_short'].apply(lambda?x:?x?in?row[1].NEWS_TITLE)]if?match2.shape[0]?>?0?and?match1?==?'':match2.loc[:,?'name_len']?=?match2['name_short'].apply(len)match2?=?match2.sort_values(by='name_len')match2?=?match2.iloc[-1]['name']else:match2?=?''識別結果:
標題:?東陽光(600673.SH):控股股東一致行動人宜昌東陽光藥業質押2500萬股 主體標簽:?宜昌東陽光藥業股份有限公司 主體識別結果:?宜昌東陽光藥業股份有限公司標題:?千億市值蒸發超九成,康美藥業財務造假坑了誰? 主體標簽:?康美藥業股份有限公司 主體識別結果:?康美藥業股份有限公司任務2:BERT 序列標注
加載BERT序列標注模型:
import?torch from?transformers?import?BertForTokenClassification,?AdamW,?get_linear_schedule_with_warmup model?=?BertForTokenClassification.from_pretrained('bert-base-chinese',?num_labels=7)device?=?torch.device("cuda:1"?if?torch.cuda.is_available()?else?"cpu") model.to(device)識別結果:
標題:山東省政府辦公廳就平邑縣玉榮商貿有限公司石膏礦坍塌事故發出通報 機構:?山東省政府辦公廳 機構:?平邑縣玉榮商貿有限公司標題:[新聞直播間]黑龍江:龍煤集團一煤礦發生火災事故 位置:?黑龍江 機構:?龍煤集團代碼&數據
比賽報名地址:http://ailab.aiwin.org.cn/competitions/48
文章完整代碼:https://github.com/datawhalechina/competition-baseline
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯溫州大學《機器學習課程》視頻 本站qq群851320808,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【NLP】使用BERT完成NLP任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【供参考】2021 中国一流大学名单(3
- 下一篇: 腾讯视频如何缓存视频