本文集僅為收錄自己感興趣砂蔽、感覺不錯的文章與資源洼怔,方便日后查找和閱讀,所以排版可能會讓人覺得亂左驾。內(nèi)容會不斷更新與調(diào)整镣隶。文中涉及公眾號的文章鏈接可以會失效,知道如何生成永久鏈接的小伙伴還望告知诡右。
此前更新的不頻繁安岂,盡量之后多更文。另外歡迎加群“Python交友娛樂會所”(QQ群:613176398)帆吻。
本文關(guān)鍵詞:Text-CNN域那、Word2Vec、Keras猜煮、RNN次员、NLP、fast.ai
- 利用一個暑假的時間王带,做了研究生生涯中的第一個正式比賽淑蔚,最終排名第二,有些小遺憾愕撰,但收獲更多的是成長和經(jīng)驗刹衫。我們之前沒有參加過機(jī)器學(xué)習(xí)和文本相關(guān)的比賽,只是學(xué)過一些理論基礎(chǔ)知識搞挣,沒有付諸過實踐带迟,看過的幾篇論文也多虧前輩的分享(一個是用深度學(xué)習(xí)(CNN RNN Attention)解決大規(guī)模文本分類問題 - 綜述和實踐,另一個是brightmart的 text_classification囱桨,里面用Keras實現(xiàn)了很多文本分類的模型)邮旷。
- 下面對在這次比賽中用到的方法和收獲的經(jīng)驗,做一個簡單的總結(jié)和分享蝇摸。
基于 word2vec 和 CNN 的文本分類 :綜述 & 實踐
- 傳統(tǒng)的向量空間模型(VSM)假設(shè)特征項之間相互獨立婶肩,這與實際情況是不相符的,為了解決這個問題貌夕,可以采用文本的分布式表示方式(例如 word embedding形式)律歼,通過文本的分布式表示,把文本表示成類似圖像和語音的連續(xù)啡专、稠密的數(shù)據(jù)险毁。
- 這樣我們就可以把深度學(xué)習(xí)方法遷移到文本分類領(lǐng)域了。基于詞向量和卷積神經(jīng)網(wǎng)絡(luò)的文本分類方法不僅考慮了詞語之間的相關(guān)性畔况,而且還考慮了詞語在文本中的相對位置鲸鹦,這無疑會提升在分類任務(wù)中的準(zhǔn)確率。 經(jīng)過實驗跷跪,該方法在驗證數(shù)據(jù)集上的F1-score值達(dá)到了0.9372馋嗜,相對于原來業(yè)務(wù)中所采用的分類方法,有20%的提升吵瞻。
Text-CNN
-
TextCNN 是利用卷積神經(jīng)網(wǎng)絡(luò)對文本進(jìn)行分類的算法葛菇,由 Yoon Kim 在 “Convolutional Neural Networks for Sentence Classification” 一文 (見參考[1]) 中提出. 是2014年的算法.
文本分類需要CNN?No橡羞!fastText完美解決你的需求(后篇)
- 想必通過前一篇的介紹眯停,各位小主已經(jīng)對word2vec以及CBOW和Skip-gram有了比較清晰的了解。在這一篇中卿泽,小編帶大家走進(jìn)業(yè)內(nèi)最新潮的文本分類算法莺债,也就是fastText分類器。fastText與word2vec的提出者之所以會想到用fastText取代CNN(卷積神經(jīng)網(wǎng)絡(luò))等深度學(xué)習(xí)模型签夭,目的是為了在大數(shù)據(jù)情況下提高運算速度九府。
使用Keras進(jìn)行深度學(xué)習(xí):(三)使用text-CNN處理自然語言(上)
- CNN模型首次使用在文本分類,是Yoon Kim發(fā)表的“Convolutional Neural Networks for Sentence Classification”論文中覆致。在講解text-CNN之前侄旬,先介紹自然語言處理和Keras對自然語言的預(yù)處理。
fastText煌妈、TextCNN儡羔、TextRNN……這里有一套NLP文本分類深度學(xué)習(xí)方法庫供你選擇
- brightmart的 text_classification
[站外圖片上傳中...(image-dd1d2e-1525483118820)]
Another Twitter sentiment analysis with Python?—?Part 11 (CNN + Word2Vec)
- This is the 11th and the last part of my Twitter sentiment analysis project.
挺不錯的系列
- Part 1: Data cleaning
- Part 2: EDA, Data visualisation
- Part 3: Zipf’s Law, Data visualisation
- Part 4: Feature extraction (count vectorizer), N-gram, confusion matrix
- Part 5: Feature extraction (Tfidf vectorizer), machine learning model comparison, lexical approach
- Part 6: Doc2Vec
- Part 7: Phrase modeling + Doc2Vec
- Part 8: Dimensionality reduction (Chi2, PCA)
- Part 9: Neural Networks with Tfidf vectors
- Part 10: Neural Networks with Doc2Vec/Word2Vec/GloVe
Dive Into NLTK, Part XI: From Word2Vec to WordNet
挺不錯的系列
Using pre-trained word embeddings in a Keras model
- In this tutorial, we will walk you through the process of solving a text classification problem using pre-trained word embeddings and a convolutional neural network.
- The full code for this tutorial is available on Github.
Keras-RNN
結(jié)合DL with python的書一起看
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)介紹2:keras代碼分析
目標(biāo):使用keras搭建RNN網(wǎng)路,使用推文數(shù)據(jù)訓(xùn)練模型
思路:準(zhǔn)備工作 -> 數(shù)據(jù)序列化 -> 得到詞嵌入矩陣 -> 訓(xùn)練網(wǎng)絡(luò)
- 準(zhǔn)備工作:讀取相關(guān)庫函數(shù)璧诵,讀入數(shù)據(jù)集汰蜘,劃分訓(xùn)練集和測試集,
- 數(shù)據(jù)序列化:將文本轉(zhuǎn)換為數(shù)字序列
- 得到詞嵌入矩陣:讀取glove模型之宿,得到詞嵌入矩陣
- 訓(xùn)練網(wǎng)絡(luò):劃分訓(xùn)練集和驗證集族操,搭建簡單的RNN網(wǎng)絡(luò),訓(xùn)練網(wǎng)絡(luò)
- 深度學(xué)習(xí)常用的文本分類網(wǎng)絡(luò)有LSTM和GRU,同時CNN在文本分類中也有一定的效果比被。 本文將簡單實現(xiàn)一個LSTM文本分類框架色难。
NLP文本分類實戰(zhàn): 傳統(tǒng)方法與深度學(xué)習(xí) - 文檔分類是指給定文檔p(可能含有標(biāo)題t),將文檔分類為n個類別中的一個或多個等缀,本文以人機(jī)寫作為例子枷莉,針對有監(jiān)督學(xué)習(xí)簡單介紹傳統(tǒng)機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法。
- 包含數(shù)據(jù)預(yù)處理:jieba尺迂、gensim特征提取笤妙,傳統(tǒng)ML方法Adaboost以及深度學(xué)習(xí)方法
- 本文嘗試了多層CNN冒掌、并行CNN、RNN與CNN的結(jié)合蹲盘、基于Hierarchical Attention的RNN股毫、遷移學(xué)習(xí)、多任務(wù)學(xué)習(xí)召衔、聯(lián)合模型學(xué)習(xí)铃诬。在單模型和聯(lián)合模型學(xué)習(xí)上,我們復(fù)現(xiàn)薄嫡、借鑒了2017知乎看山杯比賽第一名陳云的方案氧急,在此表示感謝颗胡。深度學(xué)習(xí)部分代碼都是使用Keras框架實現(xiàn)的毫深。
NLP
用深度學(xué)習(xí)(CNN RNN Attention)解決大規(guī)模文本分類問題 - 綜述和實踐
- 近來在同時做一個應(yīng)用深度學(xué)習(xí)解決淘寶商品的類目預(yù)測問題的項目,恰好碩士畢業(yè)時論文題目便是文本分類問題毒姨,趁此機(jī)會總結(jié)下文本分類領(lǐng)域特別是應(yīng)用深度學(xué)習(xí)解決文本分類的相關(guān)的思路哑蔫、做法和部分實踐的經(jīng)驗。
- 本文主要以CMU CS 11-747(Neural Networks for NLP)課程中Convolutional Networks for Text這一章節(jié)的內(nèi)容作為主線進(jìn)行講解弧呐。本文主要包括了對如下幾塊內(nèi)容的講解闸迷,第一部分是對于常見的語言模型在進(jìn)行文本表示時遇到的問題以及引入卷積神經(jīng)網(wǎng)絡(luò)的意義,第二部分是對于卷積神經(jīng)網(wǎng)絡(luò)模塊的介紹俘枫,第三部分主要是介紹一些卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于自然語言處理中的論文腥沽,第四部分主要是對這一篇綜述進(jìn)行總結(jié)。
- 本文總結(jié)了文本分類相關(guān)的深度學(xué)習(xí)模型鸠蚪、優(yōu)化思路以及今后可以進(jìn)行的一些工作今阳。
鵝廠優(yōu)文 | 小姐姐如何利用TextCNN識別臟話
DL4NLP —— 序列標(biāo)注:BiLSTM-CRF模型做基于字的中文命名實體識別
這個博客也可以看看
Determined22
NLP中自動生產(chǎn)文摘(auto text summarization)
用CNN分100,000類圖像
在這篇文章中我們嘗試了 用CNN分類113,287類圖像(MSCOCO)。
- 實際上我們將每張訓(xùn)練集中的圖像認(rèn)為成一類茅信。(當(dāng)然, 如果只用一張圖像一類盾舌,CNN肯定會過擬合)。同時蘸鲸,我們利用了5句圖像描述(文本)妖谴,加入了訓(xùn)練。所以每一類相當(dāng)于 有6個樣本 (1張圖像+5句描述)酌摇。
- 文章想解決的問題是instance-level的retrieval膝舅,也就是說 如果你在5000張圖的image pool中,要找“一個穿藍(lán)色衣服的金發(fā)女郎在打車窑多≈罚” 實際上你只有一個正確答案。不像class-level 或category-level的 要找“女性“可能有很多個正確答案怯伊。所以這個問題更細(xì)粒度琳轿,也更需要detail的視覺和文本特征判沟。
fast.ai
Fast.ai 最實戰(zhàn)深度學(xué)習(xí)在線課程 Lesson1
Fast.ai 最實戰(zhàn)深度學(xué)習(xí)在線課程 Lesson1-7-搜狗微信
Fast.ai 深度學(xué)習(xí)實戰(zhàn)課程-騰訊視頻
在 fast.ai 課堂上,我總結(jié)的 8 個深度學(xué)習(xí)最佳實踐
深度學(xué)習(xí)+自然語言處理(NLP)”專欄索引
CRF和LSTM 模型在序列標(biāo)注上的優(yōu)劣崭篡?
句法分析(使用NLTK+Stanford nlp挪哄、LTP)
劉兵《Entity and aspect extraction for opinion mining 》翻譯筆記
哈工大車萬翔:NLP中的深度學(xué)習(xí)模型是否依賴于樹結(jié)構(gòu)?
Word2vec
無痛理解word2vec
大白話講解word2vec到底在做些什么
Deep Learning in NLP (一)詞向量和語言模型-來博士
NLP 秒懂詞向量Word2vec的本質(zhì)
word2vec前世今生
word2vec 中的數(shù)學(xué)原理詳解(一)目錄和前言
詞向量-paddlepaddle
詞向量-paddlepaddle-極客學(xué)院
回望2017琉闪,基于深度學(xué)習(xí)的NLP研究大盤點
張鈸院士:AI科學(xué)突破的前夜迹炼,教授們應(yīng)當(dāng)看到什么?
NLP 解決方案是如何被深度學(xué)習(xí)改寫的颠毙?
Semantic Data Retrieval: Search, Ranking, and Summarization-講義網(wǎng)站
神經(jīng)機(jī)器翻譯綜述
SEE: Syntax-aware Entity Embedding for Neural Relation Extraction
https://arxiv.org/abs/1801.03603
Word embeddings in 2017: Trends and future directions
- 這個博客也是很多綜述斯入、NLP前沿、全面的涉獵
Deep Learning for NLP Best Practices
(Stanford CS224d) Deep Learning and NLP課程筆記(二):word2vec
- wordNet的缺點
- one-hot encoding所有詞相似度都是0蛀蜜,且存在數(shù)據(jù)稀疏性和維度災(zāi)難的問題刻两;
- Distributional Representation。從大量語料中構(gòu)建一個co-occurrence矩陣來定義word representation滴某。矩陣的構(gòu)造通常有兩種方式:基于document和基于windows磅摹。通過統(tǒng)計word與document共現(xiàn)的次數(shù)得到的矩陣被稱為word-document矩陣。這個矩陣一般被用于主題模型霎奢。相同主題的word之間往往有著較高的相似度户誓。但該矩陣很難描述word的語法信息(例如POS tag)。我們在課堂上主要講授的是第二類矩陣:word-context矩陣幕侠。通過統(tǒng)計一個事先指定大小的窗口內(nèi)的word共現(xiàn)次數(shù)帝美,不僅可以刻畫word的語義信息,還在一定程度上反應(yīng)了word的語法結(jié)構(gòu)信息晤硕。co-occurrence矩陣定義的詞向量在一定程度上緩解了one-hot向量相似度為0的問題悼潭,但沒有解決數(shù)據(jù)稀疏性和維度災(zāi)難的問題。
- SVD分解:低維詞向量的間接學(xué)習(xí)窗骑∨穑基于co-occurrence矩陣得到的離散詞向量存在著高維和稀疏性的問題,一個自然而然的解決思路是對原始詞向量進(jìn)行降維创译,從而得到一個稠密的連續(xù)詞向量抵知。然而,高昂的計算復(fù)雜度(O(mn**2))是SVD算法的性能瓶頸软族。每一個新詞的加入都需要在一個新的矩陣上重新運行一遍SVD分解刷喜。
- word2vec:低維詞向量的直接學(xué)習(xí)。word2vec模型背后的基本思想是對出現(xiàn)在上下文環(huán)境里的詞進(jìn)行預(yù)測(事實上立砸,后面會看到掖疮,這種對上下文環(huán)境的預(yù)測本質(zhì)上也是一種對co-occurrence統(tǒng)計特征的學(xué)習(xí))。梯度計算需要對每個上下文窗口都計算出訓(xùn)練集中所有單詞的條件概率颗祝。這對于動輒上百萬的詞典而言浊闪,幾乎是一件不可能完成的任務(wù)恼布。因此,Mikolov在他2013年發(fā)表的論文里提出了一些性能優(yōu)化的Hacks搁宾,包括近似歸一化的層次Softmax折汞,和避免歸一化的負(fù)采樣技術(shù)。
- 下一節(jié)課盖腿,學(xué)習(xí)結(jié)合二者優(yōu)勢的新的詞向量模型——Glove模型爽待。
(Stanford CS224d) Deep Learning and NLP課程筆記(三):GloVe與模型的評估
- 本節(jié)課繼續(xù)講授word2vec模型的算法細(xì)節(jié),并介紹一種新的基于共現(xiàn)矩陣的詞向量模型——GloVe模型翩腐。最后鸟款,重點介紹word2vec模型評估的兩種方式。
- 負(fù)采樣(Negative Sampling)的似然函數(shù)茂卦,避免了歸一化概率的計算何什。
- GloVe模型
上節(jié)課比較了基于統(tǒng)計的詞向量模型和基于預(yù)測的詞向量模型。前者以基于SVD分解技術(shù)的LSA模型為代表疙筹,通過構(gòu)建一個共現(xiàn)矩陣得到隱層的語義向量富俄,充分利用了全局的統(tǒng)計信息禁炒。然而這類模型得到的語義向量往往很難把握詞與詞之間的線性關(guān)系(例如著名的King而咆、Queen、Man幕袱、Woman等式)暴备。后者則以基于神經(jīng)網(wǎng)絡(luò)的Skip-gram模型為代表,通過預(yù)測一個詞出現(xiàn)在上下文里的概率得到embedding詞向量们豌。這類模型的缺陷在于其對統(tǒng)計信息的利用不充分涯捻,訓(xùn)練時間與語料大小息息相關(guān)。不過望迎,其得到的詞向量能夠較好地把握詞與詞之間的線性關(guān)系障癌,因此在很多任務(wù)上的表現(xiàn)都要略優(yōu)于SVD模型。既然兩種模型各有優(yōu)劣辩尊,那么能不能二者各取其長涛浙,構(gòu)造一個更強(qiáng)大的詞向量模型呢?這就是接下來要介紹的GloVe模型摄欲。在GloVe的原始論文里轿亮,作者首先分析了Skip-gram模型能夠挖掘出詞與詞之間線性關(guān)系的背后成因,然后通過在共現(xiàn)矩陣上構(gòu)造相似的條件胸墙,得到一個基于全局信息的詞向量模型——GloVe模型我注。 - 模型的評估:在NLP的研究領(lǐng)域里,一個模型的評估通常有兩種方式:Intrinsic 和 Extrinsic迟隅。
Kaggle
數(shù)據(jù)挖掘進(jìn)階:kaggle競賽top代碼分享