Kaggleword2vecNLP教程描述

apachecn_飛龍發表於2018-09-28

原文:Bag of Words Meets Bags of Popcorn

譯者:飛龍

協議:CC BY-NC-SA 4.0

自豪地採用谷歌翻譯

描述

在本教程競賽中,我們對情感分析進行了一些“深入”研究。谷歌的 Word2Vec 是一種受深度學習啟發的方法,專注於單詞的含義。 Word2Vec 試圖理解單詞之間的意義和語義關係。它的工作方式類似於深度方法,例如迴圈神經網路或深度神經網路,但計算效率更高。本教程重點介紹用於情感分析的 Word2Vec。

情感分析是機器學習中的一個挑戰性課題。人們用語言來表達自己的情感,這種語言經常被諷刺,二義性和文字遊戲所掩蓋,所有這些都會對人類和計算機產生誤導。還有另一個 Kaggle 電影評論情緒分析競賽。在本教程中,我們將探討如何將 Word2Vec 應用於類似的問題。

在過去的幾年裡,深度學習在新聞中大量出現,甚至進入紐約時報的頭版。這些機器學習技術受到人類大腦架構的啟發,並且由於計算能力的最新進展而實現,由於影像識別,語音處理和自然語言任務的突破性結果,已經成為浪潮。最近,深度學習方法贏得了幾項 Kaggle 比賽,包括藥物發現任務和貓狗影像識別。

教程概覽

本教程將幫助你開始使用 Word2Vec 進行自然語言處理。 它有兩個目標:

基本自然語言處理:本教程的第 1 部分適用於初學者,涵蓋了本教程後續部分所需的基本自然語言處理技術。

文字理解的深度學習:在第 2 部分和第 3 部分中,我們深入研究如何使用 Word2Vec 訓練模型以及如何使用生成的單詞向量進行情感分析。

由於深度學習是一個快速發展的領域,大量的工作尚未發表,或僅作為學術論文存在。 本教程的第 3 部分比說明性更具探索性 – 我們嘗試了幾種使用 Word2Vec 的方法,而不是為你提供使用輸出的方法。

為了實現這些目標,我們依靠 IMDB 情緒分析資料集,其中包含 100,000 個多段電影評論,包括正面和負面。

致謝

此資料集是與以下出版物一起收集的:

Andrew L. Maas, Raymond E. Daly, Peter T. Pham, Dan Huang, Andrew Y. Ng, and Christopher Potts. (2011). “Learning Word Vectors for Sentiment Analysis.” The 49th Annual Meeting of the Association for Computational Linguistics (ACL 2011).

如果你將資料用於任何研究應用,請傳送電子郵件給該論文的作者。 該教程由 Angela Chapman 在 2014 年夏天在 Kaggle 實習期間開發。

什麼是深度學習

術語“深度學習”是在2006年創造的,指的是具有多個非線性層並且可以學習特徵層次結構的機器學習演算法[1]。

大多數現代機器學習依賴於特徵工程或某種級別的領域知識來獲得良好的結果。 在深度學習系統中,情況並非如此 – 相反,演算法可以自動學習特徵層次結構,這些層次結構表示抽象級別增加的物件。 雖然許多深度學習演算法的基本要素已存在多年,但由於計算能力的提高,計算硬體成本的下降以及機器學習研究的進步,它們目前正日益受到歡迎。

深度學習演算法可以按其架構(前饋,反饋或雙向)和訓練協議(監督,混合或無監督)進行分類[2]。

一些好的背景材料包括:

[1] “Deep Learning for Signal and Information Processing”, by Li Deng and Dong Yu (out of Microsoft)

[2] “Deep Learning Tutorial” (2013 Presentation by Yann LeCun and Marc’Aurelio Ranzato)

Word2Vec 適合哪裡?

Word2Vec的工作方式類似於深度方法,如迴圈神經網路或深度神經網路,但它實現了某些演算法,例如分層 softmax,使計算效率更高。

對於 Word2Vec 以及本文的更多資訊,請參閱本教程的第 2 部分,以及這篇論文:Efficient Estimation of Word Representations in Vector Space

在本教程中,我們使用混合方法進行訓練 – 由無監督的片段(Word2Vec)和監督學習(隨機森林)組成。

庫和包

以下列表並不是詳盡無遺的。

Python 中:

Theano 提供非常底層的基本功能,用於構建深度學習系統。 你還可以在他們的網站上找到一些很好的教程。
Caffe 是 Berkeley 視覺和學習中心的深度學習框架。
Pylearn2 包裝了 Theano,似乎更加使用者友好。
OverFeat 用於贏得 Kaggle 貓和狗的比賽。

Lua 中:

Torch 是一個受歡迎的包,並附帶一個教程。

R 中:

截至 2014 年 8 月,有一些軟體包剛剛開始開發,但沒有可以在教程中使用的,非常成熟的包。

其他語言也可能有很好的包,但我們還沒有對它們進行過研究。

更多教程

O’Reilly 部落格有一系列深度學習文章和教程:

什麼是深度學習,為什麼要關心?
如何構建和執行你的第一個深度學習網路
網路廣播:如何起步深入學習計算機視覺

還有幾個使用 Theano 的教程

如果你想從零開始建立神經網路,請檢視 Geoffrey Hinton 的 Coursera 課程

對於 NLP,請檢視史丹佛大學最近的這個講座:沒有魔法的 NLP 的深度學習

這本免費的線上書籍還介紹了用於深度學習的神經網路:神經網路和深度學習

配置你的系統

如果你之前沒有安裝過 Python 模組,請檢視此教程,提供了從終端(在 Mac / Linux 中)或命令提示符(在 Windows 中)安裝模組的指南。

執行本教程需要安裝以下軟體包。 在大多數(或所有)情況下,我們建議你使用pip來安裝軟體包。

Word2Vec 可以在gensim包中找到。 請注意,到目前為止,我們只在 Mac OS X 上成功執行了本教程,而不是 Windows。

如果你在 Mac Mavericks(10.9)上安裝軟體包時遇到問題,本教程包含正確配置系統的說明。

本教程中的程式碼是為 Python 2.7 開發的。


相關文章