<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給AI研習社-譯站
      發送

      0

      如何解決自然語言處理中90%的問題

      本文作者: AI研習社-譯站 2018-03-05 10:45
      導語:從零開始NLP!

      本文為雷鋒字幕組編譯的技術博客,原標題How to solve 90% of NLP problems: a step-by-step guide,作者Emmanuel Ameisen。

      翻譯 | 于澤平    整理 |  凡江   編輯 |  吳璇

      如何解決自然語言處理中90%的問題

      如何將這五個W和H開頭的詞應用在文本數據中?

      想要了解更多類似的內容,請在Twitter上關注InsightEmmanuel

      文本數據無處不在

      無論你是已成立的公司還是致力于推出新服務,你都可以使用文本數據驗證、提升和擴展產品的性能與功能。學習并提取文本數據中的意義,這一科學是自然語言處理(NLP)中的一個活躍的研究課題。

      NLP是一個非常龐大的領域,每天都會產生令人興奮的結果。然而,Insight團隊與數百家公司合作之后,發現一下幾個關鍵的實用的應用,在實際中使用的頻率比其它應用高得多。

      • 識別不同的用戶/客戶群體(例如預測客戶流失,生命周期,產品偏好)

      • 準確地檢測并提取不同類別的反饋(正面或負面的評論/意見,特定屬性的評論,例如衣服尺寸/合身)

      • 根據意圖對文本進行分類(例如請求基本幫助,緊急的問題)

      盡管網上有許多NLP的論文和教程,但我們發現很難找到,如何從頭開始學習高效處理這些問題的指導與技巧。

      本文如何提供幫助

      我們每年領導數百個項目,從美國的頂尖團隊獲得建議后,我們寫下這篇文章來解釋如何構建機器學習的方案解決上述問題。我們將從最簡單的方法開始,然后轉向更細致的解決方案,比如特征工程,詞向量和深度學習。

      讀完這篇文章,你將學會如何:

      • 收集、準備并檢查數據

      • 建立簡單的模型,并在必要時轉化為深度學習

      • 解釋并理解你的模型,確保你獲取到的是信息而不是噪聲

      我們寫這篇文章是作為一個逐步的指南,它也可以作為高效的標準方法的一個高級概述。

      這篇文章中包含一個交互式的notebook,用來演示和應用這些所有的技術。

      隨意運行代碼,并一步一步跟上吧!

      第一步:收集你的數據

      數據源樣例

      每一個機器學習問題都始于數據,例如電子郵件,帖子或推文。文本信息的常見來源包括:

      • 產品評論(來自于亞馬遜,Yelp和各種應用商店)

      • 用戶生成的內容(Tweet和Facebook的帖子, StackOverflow 的問題 )

      • 疑難解答(客戶的請求,服務記錄,聊天記錄)

      “社交媒體上的災難”數據集

      在這篇文章中,我們將使用CrowdFlower提供的數據集,叫作“社交媒體上的災難”。

      貢獻者查看了超過10000條tweet內容,做了各種各樣的搜索,如“著火”,“隔離”和“混亂”,然后標記這些tweet是否對應到一個災難事件(而不是一個玩笑或是影評等無災難性的語句)

      我們的任務是檢測哪些tweet是關于災難事件的,而不是像電影這樣的無關的話題。為什么要這樣做呢?一個潛在的應用是只把關于緊急事件的tweet通知給執法人員,而忽略掉最近的電影Adam Sandler的評論。這個任務一個特殊挑戰是這兩類推文都包含同樣的搜索關鍵詞,因此我們需要使用更細致的差異來區分它們。

      在本文此后的敘述中,我們將關于災難的tweet稱為“災難”,把其它的tweet成為“無關”。

      標簽

      我們對數據作了標記,因此我們知道哪些tweet屬于哪種類別。正如Richard Socher在下面概述的一樣: 與試圖優化復雜的無監督方法相比,找到并標記足夠數據從而把模型訓練起來通常更快,更簡單也更便宜。

      如何解決自然語言處理中90%的問題

      第二步:清理數據

      我們遵從的首要規則是:你的模型優劣取決于你的數據。

      數據科學家的關鍵技能之一就是知道下一步應該專注于提升模型效果還是處理數據。一個好的經驗法則是先查看數據然后清理一個干凈的數據集將使模型學習到有意義的特征,而不是在無關的噪音上過擬合

      下面是一個清單,用來清理你的數據(更多細節見代碼):

      1. 刪除所有不相關的字符,如不是字母和數字的字符

      2. 將文本切分成獨立的單詞進行標記

      3. 移除不相關的詞,例如twitter中的“@”或者是網址

      4. 將所有字母轉為小寫,以便于將“hello”,“Hello”和“HELLO”統一對待

      5. 考慮將拼寫錯誤或是有多種拼寫方法的單詞用同一中表示方法表示(例如“cool”/"kewl"/“cooool”)

      6. 考慮詞形還原(例如將類似"am","are","is"的詞語統一縮寫為“be”)

      在按照這個清單逐步檢查之后,我們就可以開始使用清潔之后的,已經標注好的數據開始訓練模型了!

      第三步:找到一個好的表示數據的方式

      機器學習模型將數值作為輸入。例如,用于圖像處理的模型將每個顏色通道中每個像素的強度矩陣作為輸入。

      如何解決自然語言處理中90%的問題一個數字矩陣,它表現出一副笑臉的樣子

      我們的數據集是句子的列表,為了讓我們的算法從數據中提取特征,我們首先需要找到一種表達方法,使我們的算法可以理解,即用數字列表來表示。

      one-hot編碼(詞袋)

      為了讓計算機理解,一種自然的文本表達方式是將每個字符編碼成一個單獨的數字(例如ASCII碼)。如果我們把這種表達方式喂給分類器的話,它就需要從頭開始,僅僅根據我們的數據學習出單詞的結構,這對大多數數據集都是不可能的。我們需要使用更高級的方法。

      例如,我們可以根據我們的數據集創建一個包含所有單詞的詞匯表,并使用唯一的索引與詞匯表中的每個單詞相連。每個句子都被表示成一個與詞匯表中單詞數量一樣長的列表。在這個列表中的每個索引出,我們標記對應單詞在句子中出現的次數。這種方法被稱為詞袋模型,因為這種表示方法完全忽視了句子中的詞語順序。如下所示。

      如何解決自然語言處理中90%的問題


      使用詞袋表示句子。句子在左邊,右邊是句子的表示向量。向量中的每個索引代表一個特定的詞。

      向量可視化

      在“社交媒體的災難”這個例子中,我們詞匯表中有大約20000個詞匯,這意味著每個句子都被表示成長度為20000的向量。這個向量包含的大部分都是0,因為每個句子只包含詞匯表中很少的單詞子集。

      為了了解我們的表示向量是否捕獲到與我們的問題相關的信息(即tweet與災難是否相關),將它們可視化并是一種好方法,可以查看這些類是否看起來可以很好地分離。因為詞匯表通常很大,將20000維的數據可視化是不可能的,PCA等技術可以幫助我們把數據降至2維。如下圖所示。

      如何解決自然語言處理中90%的問題詞袋向量可視化

      這兩類看起來沒有被很好地分開,可能是向量的特征就是如此,也可能只是因為降維。為了看看詞袋特征有沒有用,我們可以根據它們訓練一個分類器。

      第四步:分類

      第一次遇到問題時,通常最好的做法是從最簡單的工具開始解決問題。每當遇到分類問題時,一個大家普遍喜歡用的方法是邏輯回歸,因為它功能多,可解釋。訓練非常簡單,而且結果可以解釋,因為你可以很容易地提取模型中最重要的系數。

      我們將數據分成訓練集和測試集。訓練集用來訓練我們的模型,測試集用來看看模型在看不見的數據上表現如何。訓練后,我們得到了75.4%的準確率,不是太爛!猜測頻率最高的類別(無關)只會達到57%的準確率。然而,即使75%的準確率已經足夠滿足我們的需求,我們也不應該不試圖理解這個模型就使用它。

      第五步:檢查

      混淆矩陣  

      第一步是了解模型的錯誤種類,以及哪些錯誤是我們無法接受的。在我們的例子中,誤報將無關的tweet分類為災難,而錯報將災難的tweet分類為無關。如果我們想要優先應對每一個潛在的災難事件,我們可能想要減少錯報率。如果受資源的限制,我們可能優先想要低的誤報率以減少錯誤警報。一個將這些信息可視化的好方法是使用混淆矩陣,將我們的模型預測的標簽與真實標簽比較。理想情況下,這個矩陣是從左上角到右下角的對角線(當我們的預測完美預測真實標簽時)。

      如何解決自然語言處理中90%的問題

      混淆矩陣(綠色比例高,藍色比例低)

      我們的分類器產生的錯報比誤報(比例)多。換句話說,我們的模型更普遍的錯誤是將災難標記為無關。如果誤報的執法成本很高,這對于我們分類器來說可能是一個好的偏差。

      解釋我們的模型

      為了驗證我們的模型并解釋它的預測,很重要的是看看模型使用哪些單詞做預測。如果我們的數據有偏差,我們的分類器將在訓練集中做出準確預測,但可能在現實世界中無法很好地推廣。這里我們將災難與無關兩類中最重要的單詞做成圖表。當使用詞袋模型和邏輯回歸時,將詞語重要性繪成圖表很簡單,因為我們只需要將模型用于預測的系數提取出來并將其排序。

      如何解決自然語言處理中90%的問題

      詞袋的重要性

      我們的分類器正確提取了一些詞語(如廣島,屠殺),但很明顯,在一些無意義的詞語中過擬合(如heyoo,x1392)。現在,我們的詞袋模型處理不同詞語的詞匯表,并將所有單詞同等對待。然而,其中某些詞語出現的頻率很高,對于我們的預測只是起到噪聲的作用。接下來,我們將嘗試一種考慮詞語頻率表示句子的方式,看看能否從我們的數據中提取更多的意義。

      第六步:考慮詞語結構

      TF-IDF
      為了讓我們的模型專注于更有意義的單詞,我們可以在詞袋模型的基礎上使用TF-IDF分數(詞頻-逆文檔頻率)。TF-IDF通過詞語在數據集中出現的稀少程度決定詞語權重,減少出現頻率太多的詞語權重,因為它們可能只會帶來噪聲。這里是使用PCA獲得的新向量。

      如何解決自然語言處理中90%的問題TF-IDF向量可視化

      我們從上圖中可以看到,兩種顏色間有一個更清晰的區別。這可以讓我們的分類器更容易地將兩類分開。讓我們看看它是否帶來了更好的表現。使用另一個邏輯回歸模型訓練我們的新向量,我們得到了76.2%的準確率。

      只改進了一點點。我們的模型是否開始獲得更重要的單詞?如果我們在防止模型“作弊”的同時得到了一個更好的結果,我們可以考慮升級這個模型。

      如何解決自然語言處理中90%的問題

      TF-IDF:詞語重要性

      它獲得的詞語看起來相關性更強!即使我們在測試集的評價指標只是略微增加了一些,但我們對我們模型使用的詞語有了更多的自信,因此我們將其部署在與客戶的交互系統中會感覺更加舒服。

      第七步:利用語義

      Word2Vec

      我們剛剛的模型嘗試獲取詞語的意義。然而,如果我們使用這個模型,我們很可能會遇到在訓練集中沒有看見過的詞語。即使在訓練過程中遇到很多相似的詞匯,之前的模型也無法將這些tweet準確分類。

      為了解決這個問題,我們需要捕捉單詞的語義,意思是我們需要理解像“好”和“積極”的距離比“杏”和“大陸”的距離更近。我們使用的幫助我們捕捉語義的工具叫作Word2Vec。

      使用預訓練的詞語

      Word2Vec是為詞語尋找連續向量的工具。它通過閱讀大量的文本來學習,并記憶哪些詞語傾向于在相似的上下文中出現。在足夠數據中訓練后,它為詞匯表中的每一個單詞生成一個300維的向量,其中語義相似的詞語向量間的距離更近。

      這篇論文的作者開源了一個使用巨大語料集預訓練的模型,我們可以利用它將語義知識納入我們的模型中。預訓練詞向量可以在這篇博客的相關存儲庫中找到。

      句子層級向量表示

      為我們的分類器快速獲得句向量的方法是對句子中的所有詞使用平均詞向量分數。這與以一樣,是一個詞袋的方法,但這一次我們只丟失了句子的語法信息,而保存了一些語義信息。

      如何解決自然語言處理中90%的問題

      Word2Vec句向量

      這是我們對用之前的技術獲得的新向量的可視化:

      如何解決自然語言處理中90%的問題Word2Vec 向量可視化

      這兩種顏色看起來更容易分離,我們的新向量應該可以幫助我們的分類器將兩類分開。在第三次用同樣的模型(邏輯回歸)訓練后,我們得到了一個77.7%的準確率,這是我們目前最好的結果!是時候檢查我們的模型了。

      困惑度/可解釋的權衡

      我們的向量不像之前的模型那樣將每一個單詞表示成一個一維的向量,因此更難看出哪些詞語對分類的相關性最強。雖然我們仍然可以使用邏輯回歸的系數,它們對應的是我們向量的300個維度,而不是詞語的索引。

      對于如此低的準確率提升,失去所有的可解釋性看起來是一個不太好的權衡。然而,對于更復雜的模型,我們可以利用LIME等黑盒解釋器來解釋分類器的工作原理。

      LIME

      LIME可以通過Github上面開源的包得到。一個黑盒解釋器允許用戶擾動輸入(我們這種情況是移除句子中的詞語)并查看在預測中如何改變,通過這種方法在一個特例中解釋分類器的決定。

      我們來看看我們的數據集中幾個句子的解釋。

      如何解決自然語言處理中90%的問題

      正確的災難詞匯被分類為“相關”。

      如何解決自然語言處理中90%的問題這里,詞語對分類的貢獻看起來不太明顯。

      但是我們沒有時間查看數據集中的數千個例子。我們能做的是在測試集中的代表樣例中運行LIME,并查看哪些單詞持續做很多的貢獻。使用這種方法我們可以得到像之前模型一樣的單詞重要性分數,并驗證模型的預測結果。

      如何解決自然語言處理中90%的問題Word2Vec:詞語重要性

      看起來模型可以獲取高度相關的詞匯,暗示它做出可以理解的決定。這些看起來是在之前的所有模型中最相關的詞匯,我們將它應用在產品中時感覺更舒服。

      第八步:使用端到端方法利用語法

      我們已經介紹了快速高效的獲得句向量的方法。然而,通過省略單詞的順序,我們放棄了句子所有的語法信息。如果這些方法無法提供足夠好的結果,你可以利用更多復雜的模型,將整個句子作為輸入并預測模型,而不需要建立中間的表示向量。一個普遍的方法是將句子作為詞向量的序列,可以通過Word2Vec或者最近的GloVe與CoVe等方法獲得詞向量。這是我們接下來要做的。

      如何解決自然語言處理中90%的問題

      一個搞笑的端到端結構(源)

      用于句子分類的卷積神經網絡訓練十分迅速,并且作為入門級深度學習結構表現出色。雖然卷積神經網絡(CNN)主要因其圖像處理中的表現而聞名,它們在文本相關人物中也取得了很好的結果,而且它們通常比大多數復雜的NLP方法(如LSTM和編碼器/解碼器結構)速度快得多。這個模型保留了單詞的順序,并學習到哪些詞語序列可以預測目標類別這些有價值的信息。與之前的模型相反,它可以分別“Alex吃植物”和“植物吃Alex”的區別。

      訓練這個模型不需要比以前方法更多的工作(詳見代碼),并讓我們得到了比以前更好的模型,達到了79.5%的準確率!與上面的模型一樣,下一步我們應該使用我們講過的方法探索并解釋預測,以此驗證它的確是部署給用戶的最佳模型。現在,你應該可以自己處理這個問題。

      最后的筆記

      以下是對我們成功使用的方法的快速回顧

      • 從一個簡單快速的模型開始

      • 解釋它的預測

      • 了解它正在犯的是哪種錯誤

      • 使用這些知識決定下一步應該處理數據還是使用一個更復雜的模型

      我們將這些方法應用在一個特例中,使用模型理解并利用諸如tweet的短文本。但這些思想在許多問題中都適用。我希望這對你有幫助,我們很樂意聽到你的意見和問題!你可以通過在下面評論或是在Twitter上@EmmanuelAmeisen 聯系我們!

      博客原址

      https://blog.insightdatascience.com/how-to-solve-90-of-nlp-problems-a-step-by-step-guide-fda605278e4e


      更多文章,關注雷鋒網

      添加雷鋒字幕組微信號(leiphonefansub)為好友

      備注「我要加入」,To be a  AI  Volunteer !

      如何解決自然語言處理中90%的問題

      如何解決自然語言處理中90%的問題雷鋒網雷鋒網

      雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知

      如何解決自然語言處理中90%的問題

      分享:
      相關文章

      知情人士

      AI研習社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學習知識的門檻。(原雷鋒字幕組)
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 女人和拘做爰正片视频| 亚洲国产黄色| 亚洲国产精品久久一线不卡| 日韩无码一区二区三区| 国产午夜精品福利91| 91福利国产午夜亚洲精品| 欧美日韩精品一区二区三区高清视频 | 午夜精品久久久久久毛片| 黄陵县| 色婷婷五月综合亚洲小说| 亚洲美女视频在线| 欧洲亚洲av| 亚洲一区二区偷拍精品| 99精品国产高清一区二区| 青青青青青手机视频在线观看视频| 亚洲AV无码电影在线播放| 久久久久久毛片免费播放| 国产97视频| 国产av剧情md精品麻豆| 熟女丝袜国产| 亚洲欧美另类小说| 玩弄丰满少妇一二三区| 成在线人午夜剧场免费无码| 亚洲国产成人久久77| 久热爱精品视频在线◇| 亚洲国产成人无码av在线影院 | 成人精品无码成人亚洲| 久久综合激情网| 男女超爽视频免费播放| 人与禽交av在线播放| 久久久噜久噜久久gif动图| 精品国产熟女一区二区三区| 日韩精品毛片人妻AV不卡| 国产午夜精品av一区二区麻豆| 东京热大乱系列无码| 国产精品a无线| 盐津县| 巨胸不知火舞露双奶头无遮挡 | 女人张开让男人桶出水视频免费版| 亚洲成年av天堂动漫网站| 大陆极品少妇内射aaaaa|