1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        【NLP】使用BERT完成NLP任務(wù)

        共 3945字,需瀏覽 8分鐘

         ·

        2021-05-05 12:16

        在日常生活中新聞具備有多的信息,在AINWIN互聯(lián)網(wǎng)輿情企業(yè)風(fēng)險(xiǎn)事件的識別和預(yù)警 比賽中參賽選手需要根據(jù)新聞識別主體新聞類型。

        比賽官網(wǎng)(報(bào)名即可下載數(shù)據(jù)集):http://ailab.aiwin.org.cn/competitions/48

        比賽給定了的1w條左右的訓(xùn)練數(shù)據(jù),以及部分企業(yè)主體名稱的匯總。接下來我們看如何一步一步完成本場比賽的。

        比賽思路

        對比賽要求進(jìn)行分析后,可以將賽題任務(wù)具體劃分為:

        • 任務(wù)1:企業(yè)主體抽取:抽取出新聞中主要的企業(yè)名稱,并與完整的企業(yè)名稱進(jìn)行對應(yīng);(NER任務(wù))
        • 任務(wù)2:新聞類型分類:根據(jù)新聞的內(nèi)容將新聞的類型進(jìn)行具體分類;(文本分類任務(wù))

        完成思路:

        • 將任務(wù)1和任務(wù)2,分開完成;
        • 將任務(wù)1和任務(wù)2,一起用Bert建模;

        任務(wù)1:使用TFIFD完成

        對文本進(jìn)行分詞:

        import jieba

        def 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 TfidfVectorizer

        tfidf = TfidfVectorizer(ngram_range=(1,1))
        train_title_ttidf = tfidf.fit_transform(train_title)

        驗(yàn)證集分類精度約89%。

        任務(wù)1:使用BERT分類

        進(jìn)行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)

        讀取模型并定義優(yōu)化器:

        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

        任務(wù)2:使用正則匹配

        通過公司主體與數(shù)據(jù)集中字符串匹配:

        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 = ''

        識別結(jié)果:

        標(biāo)題: 東陽光(600673.SH):控股股東一致行動人宜昌東陽光藥業(yè)質(zhì)押2500萬股
        主體標(biāo)簽: 宜昌東陽光藥業(yè)股份有限公司
        主體識別結(jié)果: 宜昌東陽光藥業(yè)股份有限公司

        標(biāo)題: 千億市值蒸發(fā)超九成,康美藥業(yè)財(cái)務(wù)造假坑了誰?
        主體標(biāo)簽: 康美藥業(yè)股份有限公司
        主體識別結(jié)果: 康美藥業(yè)股份有限公司

        任務(wù)2:BERT 序列標(biāo)注

        加載BERT序列標(biāo)注模型:

        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)

        識別結(jié)果:

        標(biāo)題:山東省政府辦公廳就平邑縣玉榮商貿(mào)有限公司石膏礦坍塌事故發(fā)出通報(bào)
        機(jī)構(gòu): 山東省政府辦公廳
        機(jī)構(gòu): 平邑縣玉榮商貿(mào)有限公司

        標(biāo)題:[新聞直播間]黑龍江:龍煤集團(tuán)一煤礦發(fā)生火災(zāi)事故
        位置: 黑龍江
        機(jī)構(gòu): 龍煤集團(tuán)

        代碼&數(shù)據(jù)

        比賽報(bào)名地址:http://ailab.aiwin.org.cn/competitions/48

        文章完整代碼:https://github.com/datawhalechina/competition-baseline

        往期精彩回顧





        本站qq群851320808,加入微信群請掃碼:

        瀏覽 68
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            在线看操逼 | 777中国盗摄偷拍0000 | 94久久人妻无码精品系列蜜桃 | 午夜抽插| 国产夜色精品一区二区AV | 蜜桃十八网站禁一级电影 | 女人被添全过程免费视频 | 亚州激情五月 | 他的舌头伸进我的下面免费观看 | 免费一级婬A片久久久爽死你网站 |