當前位置:
首頁 > 最新 > 如何使用深度學習執行文本實體提取

如何使用深度學習執行文本實體提取

選自TowardsDataScience

作者:Dhanoop Karunakaran等

機器之心編譯

參與:Tianci LIU、路

本文介紹了如何使用深度學習執行文本實體提取。作者嘗試了分別使用深度學習和傳統方法來提取文章信息,結果深度學習的準確率達到了 85%,遠遠領先於傳統演算法的 65%。

項目地址:https://github.com/dkarunakaran/entity_recoginition_deep_learning

引言

文本實體提取是自然語言處理(NLP)的主要任務之一。隨著近期深度學習領域快速發展,我們可以將這些演算法應用到 NLP 任務中,並得到準確率遠超傳統方法的結果。我嘗試過分別使用深度學習和傳統方法來提取文章信息,結果非常驚人:深度學習的準確率達到了 85%,遠遠領先於傳統演算法的 65%。

本項目的目標是把文章中的每個單詞標註為以下四種類別之一:組織、個人、雜項以及其他;然後找到文中最突出的組織和名稱。深度學習模型對每個單詞完成上述標註,隨後,我們使用基於規則的方法來過濾掉我們不想要的標註,並確定最突出的名稱和組織。

在這裡要感謝 Guillaume Genthial 這篇關於序列標註的文章(https://guillaumegenthial.github.io/),本項目建立在這篇文章的基礎之上。

模型的高級架構

架構

上圖是對每個單詞進行分類標註的模型高級架構。在建模過程中,最耗時間的部分是單詞分類。我將解釋模型的每個組成部分,幫助讀者對模型組件有一個全面的、更高層次的理解。通常,模型組件可分為三部分:

單詞表徵:在建模第一步,我們需要做的是載入一些預訓練詞嵌入(GloVe)。同時,我們需要從字元中提取出一些含義。

語境單詞表徵:我們需要利用 LSTM,對語境中的每一個單詞得到一個有意義的表徵。

解碼:當我們得到表示單詞的向量後,我們就可以用它進行預測。

hot encoding(用數值表示單詞)

深度學習演算法只接受數值型數據作為輸入,而無法處理文本數據。如果想要在大量的非數值場景下使用深度神經網路,就需要將輸入數據轉變數值形式。這個過程就是 hot encoding。

下面是一小段實現 hot encoding 的代碼示例:

同樣地,我們必須獲取輸入數據中的所有字元,然後將其轉化為向量,作為字元嵌入。

單詞嵌入 & 字元嵌入

單詞嵌入是處理文本問題時使用的一種通過學習得到的表徵方式,其中含義相同的單詞表徵相近。通常,我們利用神經網路來實現單詞嵌入,其中使用的單詞或短語來自於詞庫,並需要轉變為實數構成的向量形式。

但是,在數據集上生成詞向量計算成本很高,我們可以使用一些預訓練的單詞嵌入來避免這個問題:比如使用斯坦福大學的 NLP 研究者提供的 GloVe 向量。

字元嵌入是字元的向量表徵,可用於推導詞向量。之所以會使用字元嵌入,是因為許多實體並沒有對應的預訓練詞向量,所以我們需要用字元向量來計算詞向量。這裡有一個詳細介紹字元嵌入的在線資源:http://minimaxir.com/2017/04/char-embeddings/。

LSTM

傳統神經網路 VS 循環神經網路(RNN)

循環神經網路(RNN)是人工神經網路的一種,用於序列數據中的模式識別,例如文本、基因組、手寫筆跡、口語辭彙,或者來自感測器、股市和政府機構的數值型時間序列數據。它可以「理解」文本的語境含義。

RNN 神經元

LSTM 是一種特殊的循環神經網路,相比於簡單的循環神經網路,它可以存儲更多的語境信息。簡單的 RNN 和 LSTM 之間的主要區別在於它們各自神經元的結構不同。

對於語境中的每一個單詞,我們都需要利用 LSTM 得到它在所處語境中的有意義表徵。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

入門 | 我們常聽說的置信區間與置信度到底是什麼?
機器學習模型的衡量不止準確率:還有精度和召回率

TAG:機器之心 |