丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
人工智能 正文
發(fā)私信給AI研習社-譯站
發(fā)送

1

用深度學習從非結構化文本中提取特定信息

本文作者: AI研習社-譯站 2019-06-28 11:04
導語:在本文中,我們要解決的問題是從非結構化文本中提出某些特定信息。

用深度學習從非結構化文本中提取特定信息

本文為 AI 研習社編譯的技術博客,原標題 :

Deep learning for specific information extraction from unstructured texts

作者 | Intuition Engineering

翻譯 | AI小山      編輯 | 王立魚

原文鏈接:

https://towardsdatascience.com/deep-learning-for-specific-information-extraction-from-unstructured-texts-12c5b9dceada

用深度學習從非結構化文本中提取特定信息

這是我們在iki項目工作中的一系列技術文章中的第一篇,內(nèi)容涵蓋用機器學習和深度學習技術來解決自然語言處理與理解問題的一些應用案例。

在本文中,我們要解決的問題是從非結構化文本中提出某些特定信息。我們要從簡歷中提取出用戶的技能,簡歷可以以任意格式書寫,比如“曾經(jīng)在生產(chǎn)服務器上部署定量交易算法”。

本文有一個演示頁面,可以用你的簡歷試試我們的模型表現(xiàn)如何。

語言學模型

現(xiàn)代語言學模型(ULMfit,ELMo)使用無監(jiān)督學習技術,比如在大型文本語料中加入RNN嵌入層(embeddings)用來“認識”基本的語言結構,然后再進行特定的監(jiān)督訓練。在某些情況下,你反而需要一個在非常特定的、小的數(shù)據(jù)集上訓練出來的模型。這些模型對一般的語言結構幾乎一無所知,只對特定的文本特征有效。一個典型的例子是影評或新聞數(shù)據(jù)集的簡易情感分析工具,這些極簡單的分析模型只能識別“好”或“壞”等形容詞的同義詞,或者判別是否有強調(diào)性詞匯存在。在我們的研究中,這兩種方法我們都采用。

通常,當進行文本語料分析時,我們會考慮文本中的全部詞匯。一些流行的文本向量化算法,比如tfidf,word2vec或GloVe模型都使用整個文檔的詞匯表來生成向量,除了停用詞(例如冠詞、代詞,和其它十分基本的語言元素,在統(tǒng)計平均法中幾乎沒有語義上的意義)。如果有更明確的目標,并且有關于語料的更多的信息,你也許會判斷出哪些語料更有價值。比如說,要對菜譜的語料進行分析,把配料和菜品名稱的類別從文本中提取出來就很重要。另外一個例子是從簡歷語料中提取專業(yè)技能。如果我們能夠通過把每個簡歷與一個提取出來的技能的向量相關聯(lián),從而使之向量化,我們就可以對行業(yè)職位的分類做得好得多。

舉例說明:

簡歷:數(shù)據(jù)科學家,機器學習、大數(shù)據(jù)、開發(fā)、統(tǒng)計和分析方面的實際經(jīng)驗。帶領數(shù)據(jù)科學家團隊實現(xiàn)了Python機器學習模型的大融合、分層和特征工程,展現(xiàn)出預測性分析方面的極高的準確度。使用Doc2Vec詞匯嵌入和神經(jīng)網(wǎng)絡創(chuàng)立了一個推薦系統(tǒng)。

提取的專業(yè)技能:機器學習,大數(shù)據(jù),開發(fā),統(tǒng)計,分析,Python機器學習模型大融合,分層,特征工程,預測性分析,Doc2Vec,詞匯嵌入,神經(jīng)網(wǎng)絡。

步驟一:詞性標注

實體抽取是文本挖掘類問題的一部分,它從非結構化的文本中提取出某些結構化的信息。我們來仔細看看受到推崇的實體抽取方法的思路。如果技能主要都是通過所謂的名詞短語體現(xiàn)的,那么我們的抽取動作的第一步就是實體識別,用的是NLTK庫的內(nèi)置函數(shù)(參閱“從文本中提出信息”,《NLTK全書》第7部分)。詞性標注函數(shù)提取出名詞短語(NP),并用樹來表示名詞短語和句中其它部分的關系。NLTK庫有若干工具能進行這樣的詞語分解。

用深度學習從非結構化文本中提取特定信息

NLTK全書,第7章,圖2.2:基于簡單正則表達式的NP Chunker的一個示例

我們可以定義一個用正則表達式完成語句分解的模型(例如,我們可以把幾個形容詞加上一個名詞定義為一個短語),或者我們能用NLTK中的已經(jīng)提取出來的名詞短語范例訓練出一個關于本文標號的模型。這個步驟能讓我們得到許多實體,其中一些是我們要的技能,而另一些不是。此外,技能簡歷也可能包含其它實體,比如地點、人物、對象、組織,諸如此類。

  步驟二:候選詞分類的深度學習架構

下一步是實體分類。這里的目標非常簡單----把技能從“非技能”里區(qū)別開來。用于訓練的特征集是根據(jù)候選短語和上下文的結構來構建的。顯然,要訓練一個模型,我們先要創(chuàng)建一個標注好的訓練集,我們用1500個抽取出來的實體手工創(chuàng)建了訓練集,里面包含了技能和“非技能”。

我們從不打算把模型應用于那些硬編碼的有限的技能集合,模型的核心思想是從英文簡歷的技能中學習到語義,并用模型來提取出未見過的技能。

每個詞的向量由二進制特征組成,這些特征包括數(shù)字或其它特殊字符的出現(xiàn)與否(技能通常包含數(shù)字和符號:C#,Python3),首字母或全詞大寫(SQL)。我們也看某個詞是否在英語詞匯表里以及是否在一些主題列表里,比如人名、地名等等。最終使用了這些特征的模型在實體測試集中的準確率是74.4%。如果把候選詞中是否有英語里常見的前綴和后綴,做成二進制特征,放到模型里,則模型在測試集中的準確率高達77.3%。如果模型的特征集中再加上用單熱(one-hot)向量編碼的詞性標注,準確率就可以推到84.6%。

一個可靠的語義詞匯嵌入模型沒法用簡歷數(shù)據(jù)集訓練得來,這樣的數(shù)據(jù)集太小,也不全面。針對這個問題,你應該使用在其它真正大型的數(shù)據(jù)集上訓練出來的詞匯嵌入層。我們使用了有50個維度的GloVe模型向量,這把模型在測試集上的準確率提升至高達89.1%。你可以上傳一個簡歷文本到我們的最終模型的演示,試試效果。

用深度學習從非結構化文本中提取特定信息

流行的詞性標注程序(NLTK 詞性標注程序,Standford 詞性標注程序)經(jīng)常在做簡歷短語標注時犯錯誤。原因是簡歷文本為了突顯經(jīng)驗和照顧格式(人們在句子中以謂語開頭而不是主語,有時,短語沒有用正確的語法結構)就經(jīng)常忽略語法,以及有許多詞是專用術語和名稱。我們只得寫一個自己的詞性標注程序解決上述問題。

分類是通過Keras神經(jīng)網(wǎng)絡進行的,這個Keras神經(jīng)網(wǎng)絡有三個輸入層,每一層都被設計用來接收特定類別的數(shù)據(jù)。第一個輸入層接收一個可變長度的向量,構成這個向量的候選短語具有我們上面討論過的特征,它可以包含任意數(shù)目的單詞。這個特征向量由一個LSTM層進行處理。

用深度學習從非結構化文本中提取特定信息

第二個可變長度向量含有上下文結構信息。對于給定的窗口大小n,我們在候選短語左邊和右邊各取n個相鄰單詞,這些單詞的向量拼接成一個可變長度的向量,并傳到LSTM層。我們發(fā)現(xiàn)最優(yōu)的n=3。

第三個輸入層的長度固定,它使用候選短語的通用信息和上下文來處理向量——短語里的單詞向量在坐標軸上的最大最小值,以及它的上下文所代表的在整個短語中的眾多的二進制特征的存在與否以及其它信息。

我們把這個結構稱作SkillExtractor,如下圖所示:

用深度學習從非結構化文本中提取特定信息

Skills Extractor網(wǎng)絡架構

通過 Keras 實現(xiàn):

用深度學習從非結構化文本中提取特定信息

查看完整代碼,點擊此處

把學習率降到0.0001之后,用Adam優(yōu)化法取得了最好的模型訓練效果。我們選擇binary_crossentropy作為損失函數(shù),因為模型的設計是對兩個類別進行分類的。

為了使用更方便,我們加入擬合函數(shù)來進行神經(jīng)網(wǎng)絡的訓練并使用交叉檢查和預測函數(shù)實現(xiàn)自動停止,從而實現(xiàn)對候選短語的未知的向量的預測。

用深度學習從非結構化文本中提取特定信息

查看完整代碼,點擊此處

pad_sequences函數(shù)把一系列特征序列轉換成2維數(shù)組,這個數(shù)組的寬度等于這些序列中的最長者。這樣做是為了讓可變長度的數(shù)據(jù)傳到LSTM層中,并轉換成適合模型訓練的格式。

onehot_transform函數(shù)把目標值0和1轉換成單熱(one-hot)向量[1, 0]和[0, 1]

用深度學習從非結構化文本中提取特定信息

只要實體及其上下文中的單詞數(shù)是不確定的,那么,使用稀疏的固定長度的向量就會讓人覺得不合理。因此,使用可以處理任意長度向量的循環(huán)神經(jīng)網(wǎng)絡就自然顯得很方便了。我們的許多試驗都證明了使用稠密層處理固定長度向量、使用LSTM層處理可變長度向量的架構是最合理的。

我們試驗過不同的稠密層與LSTM層相組合而形成的多個架構。最后得到的架構配置(層的大小和數(shù)量)在交叉驗證測試中取得了最優(yōu)效果,同時訓練數(shù)據(jù)的使用效果也達到最佳。以后的模型要做調(diào)優(yōu),可以增加訓練數(shù)據(jù)集的大小并且適當增加層的數(shù)量和大小,如果在相同的數(shù)據(jù)集上只是單純增加層的數(shù)量和大小,會導致模型過擬合。

 結果

用深度學習從非結構化文本中提取特定信息

抽取的技能舉例

用于模型訓練的所有簡歷都是來自IT行業(yè)。我們很高興看到我們的模型在其它行業(yè)(比如,設計和金融)的簡歷數(shù)據(jù)集上也有不錯的表現(xiàn)。顯然,處理完全不同結構和風格的簡歷會讓模型的效果打折扣。我們也想指出,我們對技能這個概念的理解可能跟別人有所不同。我們的模型所遇到的難點之一是把技能跟新的公司的名稱相區(qū)別開來,這是因為技能往往跟軟件框架的名字一樣,有時候,你區(qū)分不了一個名詞到底是指所提到的初創(chuàng)公司還是指新的JS框架或Python庫。但不管怎樣,在大多數(shù)情況下,我們的模型都可以作為一個有效的簡歷自動化分析工具,而且借助一些統(tǒng)計方法,我們的模型可以大范圍用于任意簡歷語料的數(shù)據(jù)科學課題中。雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

想要繼續(xù)查看該篇文章相關鏈接和參考文獻?

點擊【用深度學習從非結構化文本中提取特定信息】即可訪問!

今日資源推薦:AI入門、大數(shù)據(jù)、機器學習免費教程

35本世界頂級原本教程限時開放,這類書單由知名數(shù)據(jù)科學網(wǎng)站 KDnuggets 的副主編,同時也是資深的數(shù)據(jù)科學家、深度學習技術愛好者的Matthew Mayo推薦,他在機器學習和數(shù)據(jù)科學領域具有豐富的科研和從業(yè)經(jīng)驗。

點擊鏈接即可獲取:https://ai.yanxishe.com/page/resourceDetail/417


雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。

用深度學習從非結構化文本中提取特定信息

分享:
相關文章

知情人士

AI研習社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學習知識的門檻。(原雷鋒字幕組)
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說