日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

“达观杯”文本智能处理挑战赛,季军带你飞

發(fā)布時(shí)間:2024/9/15 92 豆豆
生活随笔 收集整理的這篇文章主要介紹了 “达观杯”文本智能处理挑战赛,季军带你飞 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


來自AI小白入門

前段時(shí)間和朋友何從慶(AI算法之心)等隊(duì)友一起組隊(duì)參加了這個(gè)比賽,本來以為小比賽人少,沒想到參加的人會(huì)有幾千人。最后我們隊(duì)伍取得季軍(4st/3131),雖有些許遺憾,但是也很榮幸認(rèn)識(shí)了更多的大佬。在此和隊(duì)友整理總結(jié)了一波,放出答辯PPT以及開源了部分代碼,希望對(duì)剛接觸這個(gè)領(lǐng)域的小白新手能有些幫助~~~


競賽背景


  • 2018年人工智能的發(fā)展在運(yùn)算智能和感知智能已經(jīng)取得了很大的突破和優(yōu)于人類的表現(xiàn)。而在以理解人類語言為入口的認(rèn)知智能上,目前達(dá)觀數(shù)據(jù)自然語言處理技術(shù)已經(jīng)可以實(shí)現(xiàn)文檔自動(dòng)解析、關(guān)鍵信息提取、文本分類審核、文本智能糾錯(cuò)等一定基礎(chǔ)性的文字處理工作,并在各行各業(yè)得到充分應(yīng)用。

  • 自然語言處理一直是人工智能領(lǐng)域的重要話題,而人類語言的復(fù)雜性也給 NLP 布下了重重困難等待解決。長文本的智能解析就是頗具挑戰(zhàn)性的任務(wù),如何從紛繁多變、信息量龐雜的冗長文本中獲取關(guān)鍵信息,一直是文本領(lǐng)域難題。隨著深度學(xué)習(xí)的熱潮來臨,有許多新方法來到了 NLP 領(lǐng)域,給相關(guān)任務(wù)帶來了更多優(yōu)秀成果,也給大家?guī)砹烁鄳?yīng)用和想象的空間。

  • 此次比賽,達(dá)觀數(shù)據(jù)提供了一批長文本數(shù)據(jù)和分類信息,希望選手動(dòng)用自己的智慧,結(jié)合當(dāng)下最先進(jìn)的NLP和人工智能技術(shù),深入分析文本內(nèi)在結(jié)構(gòu)和語義信息,構(gòu)建文本分類模型,實(shí)現(xiàn)精準(zhǔn)分類。未來文本自動(dòng)化處理的技術(shù)突破和應(yīng)用落地需要人工智能從業(yè)者和愛好者的共同努力,相信文本智能處理技術(shù)因?yàn)槟愕乃惴?#xff0c;變得更加智能!



比賽網(wǎng)址


http://www.dcjingsai.com/common/cmpt/%E2%80%9C%E8%BE%BE%E8%A7%82%E6%9D%AF%E2%80%9D%E6%96%87%E6%9C%AC%E6%99%BA%E8%83%BD%E5%A4%84%E7%90%86%E6%8C%91%E6%88%98%E8%B5%9B_%E7%AB%9E%E8%B5%9B%E4%BF%A1%E6%81%AF.html



答辯PPT





詳細(xì)解決方案


對(duì)于這個(gè)比賽,我們嘗試了很多方法,最后我們發(fā)現(xiàn)了一些對(duì)解決這個(gè)賽題很不錯(cuò)的解決方案(當(dāng)然,對(duì)于其他任務(wù)也可以起到不錯(cuò)的效果)。總結(jié)如下:


  • 通過對(duì)于詞向量做一個(gè)增強(qiáng),即利用word2vec與glove的差異性,構(gòu)建一個(gè)魯棒性更高的詞語向量表征。具體而言,我們對(duì)于每個(gè)詞通過word2vec以及glove分別訓(xùn)練出兩個(gè)200維度的詞量,兩種向量相結(jié)合,表征出更強(qiáng)的語義信息,從而得到一個(gè) 400維度的詞向量。大家也可以word2vec+glove+faxttext的組合,對(duì)于我來說,效果并不是很好,我覺得可能的原因是faxttext與word2vec的相似性很高,弱化了glove的向量表征,同時(shí),對(duì)于glove單獨(dú)的詞向量我也沒有嘗試過,大家也可以嘗試一下。

  • 對(duì)于模型的話,選擇了一個(gè)比較簡單的模型,兩個(gè)雙向的GRU模型,然后分別平均池化和最大池化,最后接到FC層。

  • 訓(xùn)練的方式:訓(xùn)練模型我們固定了100個(gè)epoch,然后使用早停的策略,根據(jù)驗(yàn)證集上的性能,選擇驗(yàn)證數(shù)據(jù)集上具有最佳準(zhǔn)確率分?jǐn)?shù)的模型作為最終模型,并評(píng)估其在測試數(shù)據(jù)集上的性能。

代碼如下


1. 導(dǎo)入各個(gè)算法庫,導(dǎo)入數(shù)據(jù)集,數(shù)據(jù)集路徑根據(jù)自己的路徑設(shè)置。


train=pd.read_csv("../input/train_set.csv")
test=pd.read_csv("../input/test_set.csv")


2.?詞向量維度選取以及句子長度截?cái)嘁话惴椒ā?/span>


  • 對(duì)于句子長度選擇:統(tǒng)計(jì)下每條句子的長度,一般可以看置信區(qū)間在90,95,98的句子長度,比如有三條句子,句子中分別有2000,1800,1900個(gè)詞。因此,基于此代碼np.percentile([2000,1800,1900],95),可以得到置信區(qū)間在95的句子長度為1990。

  • 對(duì)于詞向量的維度:可以嘗試100,200,300等,對(duì)于不同的維度,測試模型的效果,從而選擇一個(gè)相對(duì)較好的維度。


tokenizer?=?text.Tokenizer(num_words=args.num_words,?lower=False,filters="")
tokenizer.fit_on_texts(list(df_train[col].values)+list(df_test[col].values))
train_?=?sequence.pad_sequences(tokenizer.texts_to_sequences(df_train[col].values),?maxlen=maxlen_)
test_?=?sequence.pad_sequences(tokenizer.texts_to_sequences(df_test[col].values),?maxlen=maxlen_)
word_index?=?tokenizer.word_index
#詞向量訓(xùn)練代碼可以在github上面查看,下面是生成詞向量嵌入矩陣
embedding_word2vec_matrix?=?np.zeros((len(word_index)?+?1,?victor_size))
for?word,?i?in?word_index.items():
????embedding_vector?=?model[word]?if?word?in?model?else?None
????if?embedding_vector?is?not?None:
????????count?+=?1
????????embedding_word2vec_matrix[i]?=?embedding_vector
????else:
????????unk_vec?=?np.random.random(victor_size)?*?0.5
????????unk_vec?=?unk_vec?-?unk_vec.mean()
????????embedding_word2vec_matrix[i]?=?unk_vec



3. 模型構(gòu)建


本次開源一個(gè)比較簡單的模型,利用雙層的BiGRU模型來學(xué)習(xí)文本的上下文表征,然后通過池化操作,分別提取每一個(gè)時(shí)間戳的最大池化和平均池化。最后通過FC層的訓(xùn)練,構(gòu)建文本分類模型,實(shí)現(xiàn)精準(zhǔn)分類。


def?bi_gru_model(sent_length,?embeddings_weight,class_num):
????print("get_text_gru3")
????content?=?Input(shape=(sent_length,),?dtype='int32')
????embedding?=?Embedding(
????????name="word_embedding",
????????input_dim=embeddings_weight.shape[0],
????????weights=[embeddings_weight],
????????output_dim=embeddings_weight.shape[1],
????????trainable=False)
????????
????x?=?SpatialDropout1D(0.2)(embedding(content))
????x?=?Bidirectional(CuDNNGRU(200,?return_sequences=True))(x)
????x?=?Bidirectional(CuDNNGRU(200,?return_sequences=True))(x)

????avg_pool?=?GlobalAveragePooling1D()(x)
????max_pool?=?GlobalMaxPooling1D()(x)
????conc?=?concatenate([avg_pool,?max_pool])

????x?=?Dropout(0.2)(Activation(activation="relu")(BatchNormalization()(Dense(1000)(conc))))
????x?=?Activation(activation="relu")(BatchNormalization()(Dense(500)(x)))
????output?=?Dense(class_num,?activation="softmax")(x)

????model?=?Model(inputs=content,?outputs=output)
????model.compile(loss='categorical_crossentropy',?optimizer='adam',?metrics=['accuracy'])
????return?model


4. 模型訓(xùn)練


對(duì)于模型的訓(xùn)練,我們采用10折交叉進(jìn)行訓(xùn)練,為了減少時(shí)間,可以進(jìn)行5折交叉進(jìn)行訓(xùn)練。訓(xùn)練模型我們固定了100個(gè)epoch,然后使用早停的策略,根據(jù)驗(yàn)證集上的性能,選擇驗(yàn)證數(shù)據(jù)集上具有最佳準(zhǔn)確率分?jǐn)?shù)的模型作為最終模型,并評(píng)估其在測試數(shù)據(jù)集上的性能。


model?=?bi_gru_model(word_seq_len,?word_embedding,19)
early_stopping?=?EarlyStopping(monitor='val_acc',?patience=6)
plateau?=?ReduceLROnPlateau(monitor="val_acc",?verbose=1,?mode='max',?factor=0.5,?patience=3)
checkpoint?=?ModelCheckpoint('../cache/model.hdf5',?monitor='val_acc',?verbose=2,?save_best_only=True,?mode='max',save_weights_only=True)
model.fit(X_train,?y_train,
??????????epochs=100,
??????????batch_size=args.batch_size,
??????????validation_data=(X_valid,?y_valid),
??????????callbacks=[early_stopping,?plateau,?checkpoint],
??????????verbose=2)


寫在后面


本項(xiàng)目主要利用“達(dá)觀杯”文本比賽的數(shù)據(jù),介紹了長文本分類問題的解決方法。我們通過利用兩層的BiGRU捕捉長文本的上下文信息,然后通過池化層捕捉最關(guān)鍵的文本特征,接著兩層的全連接層對(duì)文本的關(guān)鍵特征進(jìn)行訓(xùn)練,從而構(gòu)建文本分類模型,實(shí)現(xiàn)精準(zhǔn)分類。另外,我們通過10折交叉的方式,測試集線上的分?jǐn)?shù)可以達(dá)到0.798,僅僅這個(gè)單模型可以達(dá)到線上前10的效果(在線上賽時(shí))。另外,為了節(jié)省運(yùn)行時(shí)間,可以將10折交叉變成5折交叉,減少運(yùn)行時(shí)間。同時(shí),也可以將BiGRU減少一層。



完整可運(yùn)行代碼以及PPT可以在作者的github找到:

https://github.com/yuquanle/2018-daguan-competition-rank4


你點(diǎn)的每個(gè)贊,我都認(rèn)真當(dāng)成了喜歡

總結(jié)

以上是生活随笔為你收集整理的“达观杯”文本智能处理挑战赛,季军带你飞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。