色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

運用多種機器學習方法比較短文本分類處理過程與結果差別

深度學習自然語言處理 ? 來源:深度學習自然語言處理 ? 作者:深度學習自然語言 ? 2020-11-02 15:37 ? 次閱讀

目標

從頭開始實踐中文短文本分類,記錄一下實驗流程與遇到的坑運用多種機器學習深度學習 + 傳統機器學習)方法比較短文本分類處理過程與結果差別

工具

深度學習:keras

傳統機器學習:sklearn

參與比較的機器學習方法

CNN 、 CNN + word2vec

LSTM 、 LSTM + word2vec

MLP(多層感知機)

樸素貝葉斯

KNN

SVM

SVM + word2vec 、SVM + doc2vec

第 1-3 組屬于深度學習方法,第 4-6 組屬于傳統機器學習方法,第 7 組算是種深度與傳統合作的方法,畫風清奇,拿來試試看看效果

源代碼、數據、word2vec模型下載

github:https://github.com/wavewangyue/text-classification

word2vec模型文件(使用百度百科文本預訓練)下載:https://pan.baidu.com/s/13QWrN-9aayTTo0KKuAHMhw;提取碼 biwh

數據集:搜狗實驗室 搜狐新聞數據 下載地址:http://www.sogou.com/labs/resource/cs.php

先上結果

實驗結論

引入預訓練的 word2vec 模型會給訓練帶來好處,具體來說:(1)間接引入外部訓練數據,防止過擬合;(2)減少需要訓練的參數個數,提高訓練效率

LSTM 需要訓練的參數個數遠小于 CNN,但訓練時間大于 CNN。CNN 在分類問題的表現上一直很好,無論是圖像還是文本;而想讓 LSTM 優勢得到發揮,首先讓訓練數據量得到保證

將單詞在 word2vec 中的詞向量加和求平均獲得整個句子的語義向量的方法看似 naive 有時真挺奏效,當然僅限于短句子,長度 100 以內應該問題不大

機器學習方法萬千,具體選擇用什么樣的方法還是要取決于數據集的規模以及問題本身的復雜度,對于復雜程度一般的問題,看似簡單的方法有可能是墜吼地

干貨上完了,下面是實驗的具體流程

0 數據預處理

將下載的原始數據進行轉碼,然后給文本標類別的標簽,然后制作訓練與測試數據,然后控制文本長度,分詞,去標點符號

哎,坑多,費事,比較麻煩

首先,搜狗實驗室提供的數據下載下來是 xml 格式,并且是 GBK (萬惡之源)編碼,需要轉成 UTF8,并整理成 json 方便處理。原始數據長這個樣:

這么大的數據量,怎么轉碼呢?先嘗試利用 python 先讀入數據然后轉碼再保存,可傲嬌 python 并不喜歡執行這種語句。。。再嘗試利用 vim 的 :set fileencoding=utf-8,亂碼從███變成錕斤拷。。。

經過幾次嘗試,菜雞的我只能通過文本編輯器打開,然后利用文本編輯器轉換編碼。這樣問題來了,文件大小1.6G,記事本就不提了,Notepad 和 Editplus 也都紛紛陣亡。。。

還好最后發現了 UltraEdit,不但可以打開,速度簡直飛起來,轉碼后再整理成的 json 長這個樣子:

UltraEdit 就是好就是秒就是呱呱叫

搜狗新聞的數據沒有直接提供分類,而是得通過新聞來源網址的 url 來查其對應得分類,比如 http://gongyi.sohu.com 的 url 前綴對應的新聞類型就是“公益類”。對著他提供的對照表查,1410000+的總數據,成功標出來的有510000+,標不出來的新聞基本都來自 http://roll.sohu.com,這是搜狐的滾動新聞,亂七八糟大雜燴,難以確定是什么類

對成功標出來的15個類的新聞,統計一下類別的分布,結果如下:

分布比較不均,第 14 類和第 15 類的新聞很少,另外第 8 類和第 11 類一個新聞也沒有

所以最后選了剩下的11個類,每個類抽2000個新聞,按4:1分成訓練與測試,如圖

11個類分別是

對這些新聞的長度進行統計結果如下:

橫軸是新聞的長度,縱軸是擁有此長度的新聞數量。在長度為500字和1600字時突然兩個峰,猜測是搜狐新聞的一些長度限制???

長度0-100的放大觀察,分布還可以,說明如果基于這套數據做短文本分類,需要對原始文本進行固定長度的截取,長度 100 可能是個不錯的選擇

上一步選出來的訓練新聞長這樣,因為考慮到新聞標題的意義重大,這里就將新聞標題和新聞內容接到一起,用空格隔開,然后截取每條新聞的前 100 個字

一行是一條新聞,訓練數據17600行,測試數據4324行。然后用jieba分詞,分詞后利用詞性標注結果,把詞性為‘x’(字符串)的去掉,就完成了去標點符號

jieba真是好真是秒真是呱呱叫

最后得到以下結果文件:(1)新聞文本數據,每行 1 條新聞,每條新聞由若干個詞組成,詞之間以空格隔開,訓練文本 17600 行,測試文本 4324 行;(2)新聞標簽數據,每行 1 個數字,對應這條新聞所屬的類別編號,訓練標簽 17600行,測試標簽 4324 行

1 CNN

深度學習用的 keras 工具,操作簡單易懂,模型上手飛快,居家旅行必備。keras 后端用的 Tensorflow,雖然用什么都一樣

不使用預訓練 word2vec 模型的 CNN:

首先一些先設定一些會用到的參數

MAX_SEQUENCE_LENGTH=100#每條新聞最大長度 EMBEDDING_DIM=200#詞向量空間維度 VALIDATION_SPLIT=0.16#驗證集比例 TEST_SPLIT=0.2#測試集比例

第一步先把訓練與測試數據放在一起提取特征,使用 keras 的 Tokenizer 來實現,將新聞文檔處理成單詞索引序列,單詞與序號之間的對應關系靠單詞的索引表 word_index 來記錄,這里從所有新聞中提取到 65604 個單詞,比如 [茍,國家,生死] 就變成了 [1024, 666, 233] ;然后將長度不足 100 的新聞用 0 填充(在前端填充),用 keras 的 pad_sequences 實現;最后將標簽處理成 one-hot 向量,比如 6 變成了 [0,0,0,0,0,0,1,0,0,0,0,0,0],用 keras 的 to_categorical 實現

fromkeras.preprocessing.textimportTokenizer fromkeras.preprocessing.sequenceimportpad_sequences fromkeras.utilsimportto_categorical importnumpyasnp tokenizer=Tokenizer() tokenizer.fit_on_texts(all_texts) sequences=tokenizer.texts_to_sequences(all_texts) word_index=tokenizer.word_index print('Found%suniquetokens.'%len(word_index)) data=pad_sequences(sequences,maxlen=MAX_SEQUENCE_LENGTH) labels=to_categorical(np.asarray(all_labels)) print('Shapeofdatatensor:',data.shape) print('Shapeoflabeltensor:',labels.shape)

再將處理后的新聞數據按 6.4:1.6:2 分為訓練集,驗證集,測試集

p1=int(len(data)*(1-VALIDATION_SPLIT-TEST_SPLIT)) p2=int(len(data)*(1-TEST_SPLIT)) x_train=data[:p1] y_train=labels[:p1] x_val=data[p1:p2] y_val=labels[p1:p2] x_test=data[p2:] y_test=labels[p2:] print'traindocs:'+str(len(x_train)) print'valdocs:'+str(len(x_val)) print'testdocs:'+str(len(x_test))

然后就是搭建模型,首先是一個將文本處理成向量的 embedding 層,這樣每個新聞文檔被處理成一個 100 x 200 的二維向量,100 是每條新聞的固定長度,每一行的長度為 200 的行向量代表這個單詞在空間中的詞向量。下面通過 1 層卷積層與池化層來縮小向量長度,再加一層 Flatten 層將 2 維向量壓縮到 1 維,最后通過兩層 Dense(全連接層)將向量長度收縮到 12 上,對應新聞分類的 12 個類(其實只有 11 個類,標簽 0 沒有用到)。搭完收工,最后,訓練模型,測試模型,一鼓作氣,攻下高地。

fromkeras.layersimportDense,Input,Flatten,Dropout fromkeras.layersimportConv1D,MaxPooling1D,Embedding fromkeras.modelsimportSequential model=Sequential() model.add(Embedding(len(word_index)+1,EMBEDDING_DIM,input_length=MAX_SEQUENCE_LENGTH)) model.add(Dropout(0.2)) model.add(Conv1D(250,3,padding='valid',activation='relu',strides=1)) model.add(MaxPooling1D(3)) model.add(Flatten()) model.add(Dense(EMBEDDING_DIM,activation='relu')) model.add(Dense(labels.shape[1],activation='softmax')) model.summary()

模型長這個樣子

問:這里只使用了 1 層卷積層,為什么不多加幾層?

答:新聞長度只有100個單詞,即特征只有100維,1 層卷積加池化后特征已經縮減為 32 維,再加卷積可能就卷沒了。2 層 3 層也做過,效果都不好

問:為什么只訓練 2 輪

答:問題比較簡單,1 輪訓練已經收斂,實驗表明第 2 輪訓練基本沒什么提升

問:為什么卷積核為什么選擇 250 個?

答:因為開心

實驗結果如下

準確度 0.81459521

擁有11個分類的問題達到這個準確度,應該也不錯(易滿足)。并且搜狗給的數據本來也不是很好(甩鍋)。可以看到在訓練集上的準確度達到了 0.88,但是測試集上的準確度只有 0.81,說明還是有些過擬合。另外,整個模型需要訓練的參數接近 1500 萬,其中 1300 萬都是 embedding 層的參數,說明如果利用 word2vec 模型替換 embedding 層,解放這 1300 萬參數,肯定會讓訓練效率得到提高

基于預訓練的 word2vec 的 CNN :

參考資料

keras示例程序 pretrained_word_embeddings.py 代碼地址https://github.com/fchollet/keras/blob/master/examples/pretrained_word_embeddings.py

中文講解地址(在Keras模型中使用預訓練的詞向量)http://keras-cn.readthedocs.io/en/latest/blog/word_embedding/

既然提到了 word2vec 可能會提高訓練效率,那就用實驗驗證一下。(重點)(重點)(重點)正常的深度學習訓練,比如上面的 CNN 模型,第一層(除去 Input 層)是一個將文本處理成向量的 embedding 層。這里為了使用預訓練的 word2vec 來代替這個 embedding 層,就需要將 embedding 層的 1312 萬個參數用 word2vec 模型中的詞向量替換。替換后的 embedding 矩陣形狀為 65604 x 200,65604 行代表 65604 個單詞,每一行的這長度 200 的行向量對應這個詞在 word2vec 空間中的 200 維向量。最后,設定 embedding 層的參數固定,不參加訓練,這樣就把預訓練的 word2vec 嵌入到了深度學習的模型之中

VECTOR_DIR='wiki.zh.vector.bin'#詞向量模型文件 fromkeras.utilsimportplot_model fromkeras.layersimportEmbedding importgensim w2v_model=gensim.models.KeyedVectors.load_word2vec_format(VECTOR_DIR,binary=True) embedding_matrix=np.zeros((len(word_index)+1,EMBEDDING_DIM)) forword,iinword_index.items(): ifunicode(word)inw2v_model: embedding_matrix[i]=np.asarray(w2v_model[unicode(word)], dtype='float32') embedding_layer=Embedding(len(word_index)+1, EMBEDDING_DIM, weights=[embedding_matrix], input_length=MAX_SEQUENCE_LENGTH, trainable=False)

模型搭建與剛才類似,就是用嵌入了 word2vec 的 embedding_layer 替換原來的 embedding 層

fromkeras.layersimportDense,Input,Flatten,Dropout fromkeras.layersimportConv1D,MaxPooling1D,Embedding fromkeras.modelsimportSequential model=Sequential() model.add(embedding_layer) model.add(Dropout(0.2)) model.add(Conv1D(250,3,padding='valid',activation='relu',strides=1)) model.add(MaxPooling1D(3)) model.add(Flatten()) model.add(Dense(EMBEDDING_DIM,activation='relu')) model.add(Dense(labels.shape[1],activation='softmax')) model.summary() #plot_model(model,to_file='model.png',show_shapes=True) model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['acc']) model.fit(x_train,y_train,validation_data=(x_val,y_val),epochs=2,batch_size=128) model.save('word_vector_cnn.h5') printmodel.evaluate(x_test,y_test)

模型長相跟之前一致,實驗輸出與測試結果如下

準確度 0.85336374

相比不使用 word2vec 的 cnn,過擬合的現象明顯減輕,使準確度得到了提高。并且需要訓練的參數大大減少了,使訓練時間平均每輪減少 20s 左右

2 LSTM

終于到了自然語言處理界的大哥 LSTM 登場,還有點小期待

fromkeras.layersimportDense,Input,Flatten,Dropout fromkeras.layersimportLSTM,Embedding fromkeras.modelsimportSequential model=Sequential() model.add(Embedding(len(word_index)+1,EMBEDDING_DIM, input_length=MAX_SEQUENCE_LENGTH)) model.add(LSTM(200,dropout=0.2,recurrent_dropout=0.2)) model.add(Dropout(0.2)) model.add(Dense(labels.shape[1],activation='softmax')) model.summary()

模型長這樣

大哥開動!

準確度 0.70627138

并沒有期待中那么美好。。。原因是這點小數據量,并沒有讓 LSTM 發揮出它的優勢。并不能給大哥一個奔馳的草原。。。并不能讓大哥飛起來。。。另外使用 LSTM 需要訓練的參數要比使用 CNN 少很多,但是訓練時間是 CNN 的 2 倍。大哥表示不但飛不動,還飛的很累。。。

基于預訓練的 word2vec 模型:

流程跟上面使用 word2vec 的 CNN 的基本一致,同樣也是用嵌入了 word2vec 的 embedding_layer 替換原始的 embedding 層

fromkeras.layersimportDense,Input,Flatten,Dropout fromkeras.layersimportLSTM,Embedding fromkeras.modelsimportSequential model=Sequential() model.add(embedding_layer) model.add(LSTM(200,dropout=0.2,recurrent_dropout=0.2)) model.add(Dropout(0.2)) model.add(Dense(labels.shape[1],activation='softmax')) model.summary()

準確度 0.82736602

效果好了不少,依然存在過擬合現象,再一次說明了數據量對 LSTM 的重要性,使用預訓練的 word2vec 模型等于間接增加了訓練語料,所以在這次實驗中崩壞的不是很嚴重

LP(多層感知機)

參考資料

keras 示例程序:reuters_mlp.py

代碼地址:https://github.com/fchollet/keras/blob/master/examples/reuters_mlp.py

MLP 是一個結構上很簡單很 naive 的神經網絡。數據的處理流程也跟上面兩個實驗差不多,不過不再將每條新聞處理成 100 x 200 的 2 維向量,而是成為長度 65604 的 1 維向量。65604 代表數據集中所有出現的 65604 個單詞,數據的值用 tf-idf 值填充,整個文檔集成為一個用 17600 x 65604 個 tf-idf 值填充的矩陣,第 i 行 j 列的值表征了第 j 個單詞在第 i 個文檔中的的 tf-idf值(當然這里也可以不用 tf-idf 值,而只是使用 0/1 值填充, 0/1 代表第 j 個單詞在第 i 個文檔中是否出現,但是實驗顯示用 tf-idf 的效果更好)

tokenizer=Tokenizer() tokenizer.fit_on_texts(all_texts) sequences=tokenizer.texts_to_sequences(all_texts) word_index=tokenizer.word_index print('Found%suniquetokens.'%len(word_index)) data=tokenizer.sequences_to_matrix(sequences,mode='tfidf') labels=to_categorical(np.asarray(all_labels))

模型很簡單,僅有兩個全連接層組成,將長度 65604 的 1 維向量經過 2 次壓縮成為長度 12 的 1 維向量

fromkeras.layersimportDense,Dropout fromkeras.modelsimportSequential model=Sequential() model.add(Dense(512,input_shape=(len(word_index)+1,),activation='relu')) model.add(Dropout(0.2)) model.add(Dense(labels.shape[1],activation='softmax')) model.summary()

準確度 0.86066135

相比 CNN 與 LSTM 的最好成績,雖然簡單,但是依然 NB

只是不能像 CNN 與 LSTM 那樣借助預訓練 word2vec 的幫助,加上數據量不大,所以稍微有些過擬合,不過結果依舊很不錯。沒有復雜的 embedding,清新脫俗的傳統感知機模型在這種小數據集的簡單問題上表現非常好(雖然訓練參數已經達到了 3300 萬個,單輪耗時也將近 200s 了)

4 樸素貝葉斯

非深度學習方法這里使用 sklearn 來實踐

首先登場的是樸素貝葉斯。數據處理的過程跟上述的 MLP 是一致的,也是將整個文檔集用 tf-idf 值填充,讓整個文檔集成為一個 17600 x 65604 的 tf-idf 矩陣。這里需要使用 sklearn 的 CountVectorizer 與 TfidfTransformer 函數實現。代碼如下

fromsklearn.feature_extraction.textimportCountVectorizer,TfidfTransformer count_v0=CountVectorizer(); counts_all=count_v0.fit_transform(all_text); count_v1=CountVectorizer(vocabulary=count_v0.vocabulary_); counts_train=count_v1.fit_transform(train_texts); print"theshapeoftrainis"+repr(counts_train.shape) count_v2=CountVectorizer(vocabulary=count_v0.vocabulary_); counts_test=count_v2.fit_transform(test_texts); print"theshapeoftestis"+repr(counts_test.shape) tfidftransformer=TfidfTransformer(); train_data=tfidftransformer.fit(counts_train).transform(counts_train); test_data=tfidftransformer.fit(counts_test).transform(counts_test);

這里有一個需要注意的地方,由于訓練集和測試集分開提取特征會導致兩者的特征空間不同,比如訓練集里 “茍” 這個單詞的序號是 1024,但是在測試集里序號就不同了,或者根本就不存在在測試集里。所以這里先用所有文檔共同提取特征(counts_v0),然后利用得到的詞典(counts_v0.vocabulary_)再分別給訓練集和測試集提取特征。然后開始訓練與測試

fromsklearn.naive_bayesimportMultinomialNB fromsklearnimportmetrics clf=MultinomialNB(alpha=0.01) clf.fit(x_train,y_train); preds=clf.predict(x_test); num=0 preds=preds.tolist() fori,predinenumerate(preds): ifint(pred)==int(y_test[i]): num+=1 print'precision_score:'+str(float(num)/len(preds))

準確度 0.85430157

這只是一個簡單的樸素貝葉斯方法,準確度高到驚人,果然最簡單的有時候就是最有效的

5 KNN

跟上面基本一致,只是將 MultinomialNB 函數變成 KNeighborsClassifier 函數,直接上結果

fromsklearn.neighborsimportKNeighborsClassifier forxinrange(1,15): knnclf=KNeighborsClassifier(n_neighbors=x) knnclf.fit(x_train,y_train) preds=knnclf.predict(x_test); num=0 preds=preds.tolist() fori,predinenumerate(preds): ifint(pred)==int(y_test[i]): num+=1 print'K='+str(x)+',precision_score:'+str(float(num)/len(preds))

K=11時,準確度 0.31961147,非常低,說明 KNN 方法不太適合做此類問題

6 SVM

這里 svm 的 kernel 選用了線性核,其他的比如多項式核和高斯核也都試過,效果極差,直接上結果

fromsklearn.svmimportSVC svclf=SVC(kernel='linear') svclf.fit(x_train,y_train) preds=svclf.predict(x_test); num=0 preds=preds.tolist() fori,predinenumerate(preds): ifint(pred)==int(y_test[i]): num+=1 print'precision_score:'+str(float(num)/len(preds))

準確度 0.84435708,還是不錯的,超過 LSTM ,不及 CNN 與 MLP

7 SVM + word2vec 與 doc2vec

這兩個實驗是后期新加入的,畫風比較清奇,是騾是馬溜一圈,就決定拿過來做個實驗一起比較一下

svm + word2vec:

這個實驗的主要思想是這樣:原本每條新聞由若干個詞組成,每個詞在 word2vec 中都有由一個長度 200 的詞向量表示,且這個詞向量的位置是與詞的語義相關聯的。那么對于每一條新聞,將這條新聞中所有的詞的詞向量加和取平均,既能保留句子中所有單詞的語義,又能生成一個蘊含著這句話的綜合語義的“句向量”,再基于這個長度 200 的句向量使用 svm 分類。這個思想看起來很 naive,但是又說不出什么不合理的地方。嘗試一下,代碼與結果如下:

importgensim importnumpyasnp w2v_model=gensim.models.KeyedVectors.load_word2vec_format(VECTOR_DIR,binary=True) x_train=[] x_test=[] fortrain_docintrain_docs: words=train_doc.split('') vector=np.zeros(EMBEDDING_DIM) word_num=0 forwordinwords: ifunicode(word)inw2v_model: vector+=w2v_model[unicode(word)] word_num+=1 ifword_num>0: vector=vector/word_num x_train.append(vector) fortest_docintest_docs: words=test_doc.split('') vector=np.zeros(EMBEDDING_DIM) word_num=0 forwordinwords: ifunicode(word)inw2v_model: vector+=w2v_model[unicode(word)] word_num+=1 ifword_num>0: vector=vector/word_num x_test.append(vector)

準確度 0.85175763,驚了,這種看似很 naive 的方法竟然取得了非常好的效果。相比于之前所有包括 CNN、LSTM、MLP、SVM 等方法,這種方法有很強的優勢。它不需要特征提取的過程,也不需固定新聞的長度,一個模型訓練好,跨著數據集都能跑。但是也有其缺陷一面,比如忽略詞語的前后關系,并且當句子長度較長時,求和取平均已經無法準確保留語義信息了。但是在短文本分類上的表現還是很亮

svm + doc2vec:

上面 svm + word2vec 的實驗提到當句子很長時,簡單求和取平均已經不能保證原來的語義信息了。偶然發現了 gensim 提供了一個 doc2vec 的模型,直接為文檔量身訓練“句向量”,神奇。具體原理不講了(也不是很懂),直接給出使用方法

importgensim sentences=gensim.models.doc2vec.TaggedLineDocument('all_contents.txt') model=gensim.models.Doc2Vec(sentences,size=200,window=5,min_count=5) model.save('doc2vec.model') print'numofdocs:'+str(len(model.docvecs))

all_contents.txt 里是包括訓練文檔與測試文檔在內的所有數據,同樣每行 1 條新聞,由若干個詞組成,詞之間用空格隔開,先使用 gensim 的 TaggedLineDocument 函數預處理下,然后直接使用 Doc2Vec 函數開始訓練,訓練過程很快(可能因為數據少)。然后這所有 21924 篇新聞就變成了 21924 個長度 200 的向量,取出前 17600 個給 SVM 做分類訓練,后 4324 個測試,代碼和結果如下:

importgensim model=gensim.models.Doc2Vec.load('doc2vec.model') x_train=[] x_test=[] y_train=train_labels y_test=test_labels foridx,docvecinenumerate(model.docvecs): ifidx

準確度 0.48126734,慘不忍睹。原因可能就是文檔太短,每個文檔只有不超過 100 個詞,導致對“句向量”的學習不準確,word2vec 模型訓練需要 1G 以上的數據量,這里訓練 doc2vec 模型20000個文檔卻只有 5M 的大小,所以崩壞

另外!這里對 doc2vec 的應用場景有一些疑問,如果我新加入一條新聞想要分類,那么我必須先要把這個新聞加到文檔集里,然后重新對文檔集進行 doc2vec 的訓練,得到這個新新聞的文檔向量,然后由于文檔向量模型變了, svm 分類模型應該也需要重新訓練了。所以需要自底向上把所有模型打破重建才能讓為新文檔分類?那實用性很差啊。也可能我理解有誤,希望是這樣

總結

總結放在開頭了

打完收工

責任編輯:xj

原文標題:新聞上的文本分類:機器學習大亂斗

文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8460

    瀏覽量

    133414
  • 深度學習
    +關注

    關注

    73

    文章

    5527

    瀏覽量

    121879
  • cnn
    cnn
    +關注

    關注

    3

    文章

    353

    瀏覽量

    22441

原文標題:新聞上的文本分類:機器學習大亂斗

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    傳統機器學習方法和應用指導

    用于開發生物學數據的機器學習方法。盡管深度學習(一般指神經網絡算法)是一個強大的工具,目前也非常流行,但它的應用領域仍然有限。與深度學習相比,傳統
    的頭像 發表于 12-30 09:16 ?566次閱讀
    傳統<b class='flag-5'>機器</b><b class='flag-5'>學習方法</b>和應用指導

    如何使用自然語言處理分析文本數據

    使用自然語言處理(NLP)分析文本數據是一個復雜但系統的過程,涉及多個步驟和技術。以下是一個基本的流程,幫助你理解如何使用NLP來分析文本數據: 1. 數據收集 收集
    的頭像 發表于 12-05 15:27 ?674次閱讀

    自然語言處理機器學習的關系 自然語言處理的基本概念及步驟

    Learning,簡稱ML)是人工智能的一個核心領域,它使計算機能夠從數據中學習并做出預測或決策。自然語言處理機器學習之間有著密切的關系,因為
    的頭像 發表于 12-05 15:21 ?1107次閱讀

    什么是機器學習?通過機器學習方法能解決哪些問題?

    來源:Master編程樹“機器學習”最初的研究動機是讓計算機系統具有人的學習能力以便實現人工智能。因為沒有學習能力的系統很難被認為是具有智能的。目前被廣泛采用的
    的頭像 發表于 11-16 01:07 ?617次閱讀
    什么是<b class='flag-5'>機器</b><b class='flag-5'>學習</b>?通過<b class='flag-5'>機器</b><b class='flag-5'>學習方法</b>能解決哪些問題?

    使用LLM進行自然語言處理的優缺點

    語言任務,如文本分類、情感分析、機器翻譯等。以下是使用LLM進行NLP的一些優缺點: 優點 強大的語言理解能力 : LLM通過訓練學習了大量的語言模式和結構,能夠理解和生成自然語言文本
    的頭像 發表于 11-08 09:27 ?861次閱讀

    雷達的基本分類方法

    電子發燒友網站提供《雷達的基本分類方法.pdf》資料免費下載
    發表于 09-11 09:09 ?6次下載

    【《時間序列與機器學習》閱讀體驗】+ 了解時間序列

    學習方法對該序列數據進行分析,可以得到結論或預測估計,因此時間序列分析的用途是非常多的,比如: 可以反映社會經濟現象的發展變化過程,描述現象的發展狀態和結果。 可以研究社會經濟現象的發展趨勢和發展速度
    發表于 08-11 17:55

    【《大語言模型應用指南》閱讀體驗】+ 基礎篇

    講解,包括偏置、權重、激活函數;三要素包括網絡結構、損失函數和優化方法。章節最后總結了神經網絡參數學習的關鍵步驟。 1.4章節描述了自然語言處理的相關知識點,包括什么是自然語言處理
    發表于 07-25 14:33

    利用TensorFlow實現基于深度神經網絡的文本分類模型

    要利用TensorFlow實現一個基于深度神經網絡(DNN)的文本分類模型,我們首先需要明確幾個關鍵步驟:數據預處理、模型構建、模型訓練、模型評估與調優,以及最終的模型部署(盡管在本文中,我們將重點放在前四個步驟上)。下面,我將詳細闡述這些步驟,并給出一個具體的示例。
    的頭像 發表于 07-12 16:39 ?1070次閱讀

    深度學習中的時間序列分類方法

    時間序列分類(Time Series Classification, TSC)是機器學習和深度學習領域的重要任務之一,廣泛應用于人體活動識別、系統監測、金融預測、醫療診斷等多個領域。隨
    的頭像 發表于 07-09 15:54 ?1376次閱讀

    深度學習中的無監督學習方法綜述

    深度學習作為機器學習領域的一個重要分支,近年來在多個領域取得了顯著的成果,特別是在圖像識別、語音識別、自然語言處理等領域。然而,深度學習模型
    的頭像 發表于 07-09 10:50 ?1128次閱讀

    自然語言處理過程的五個層次

    自然語言處理(NLP)的五個層次: 詞法分析(Lexical Analysis): 詞法分析是NLP的第一步,它涉及將文本分解為基本單位,通常是單詞或標記。 詞法分析的目的是識別文本中的詞匯
    的頭像 發表于 07-03 14:27 ?970次閱讀

    卷積神經網絡在文本分類領域的應用

    在自然語言處理(NLP)領域,文本分類一直是一個重要的研究方向。隨著深度學習技術的飛速發展,卷積神經網絡(Convolutional Neural Network,簡稱CNN)在圖像識別領域取得了
    的頭像 發表于 07-01 16:25 ?892次閱讀

    基于神經網絡的呼吸音分類算法

    出的方法與其他機器學習模型在不同情況下的性能和魯棒性進行比較。1.用于初始模型檢查的簡單噪聲二值分類實驗。2.使用個體呼吸周期作為輸入的4類
    發表于 05-31 12:05

    一種利用光電容積描記(PPG)信號和深度學習模型對高血壓分類的新方法

    學習方法來對高血壓的四個階段進行分類。這里采用的分類方法是:Alexnet、Resnet -50、VGG-16和新的模型:AvgPool_VGG-16。使用這些算法時要考慮到數據集的數
    發表于 05-11 20:01
    主站蜘蛛池模板: 99久久精品费精品国产 | 一个人的视频在线观看免费观看 | 朝鲜美女bbwbbw撒尿 | 色综合五月激情综合色一区 | yin乱教师系列合集 yin荡体育课羞耻play双性 | 中文字幕亚洲乱码熟女在线 | 嫩草国产福利视频一区二区 | 久久不射网 | 免费在线a| 国产三区在线成人AV | www.欧美与曽交性video | 57PAO强力打造高清免费 | 芳草地在线观看免费视频 | 91精品一区二区综合在线 | 草莓视频在线看免费高清观看 | 中文字幕中文字幕永久免费 | 欧美free嫩交hd | 国产高清视频a在线大全 | 91精品专区 | 亚洲欧美日韩高清专区 | 日本漫画母亲口工子全彩 | 色www精品视频在线观看 | 白白操在线视频 | 女同志videos最新另 | 偷拍 拍自 欧美色区 | 老师扒开尿口男生摸尿口 | 欧美 日韩 无码 有码 在线 | 2017欧美狠狠色 | 亚洲人成人77777在线播放 | 97亚洲狠狠色综合久久位 | 美女乱草鲍高清照片 | 久久观看视频 | 99视频在线精品免费观看18 | 亚洲永久精品ww47 | 忘忧草在线影院WWW日本动漫 | 国产伦精品一区二区三区精品 | 色宅男看片午夜大片免费看 | 亚洲AV无码一区二区三区乱子伦 | 青青青国产依人精品视频 | 超碰人人澡人人胔 | 日韩成人性视频 |