機器學習與文本分析

jopen 9年前發布 | 27K 次閱讀 機器學習

本文首次發表于譯言網,翻譯自Technet.com,為[機器學習]系列文章之一。

發表地址: http://article.yeeyan.org/view/propiram/442378

下面這篇文章來自微軟研究院的杰出科學家Ashok Chandra博士和項目經理Dhyanesh Narayanan。

在上個世紀七十年代,我(Ashok)是一名在斯坦福大學人工智能實驗室的學生,那時大家樂觀地認為,達到人類水平的機器智能指日可待。好吧,它 現在仍然還只是指日可待的狀態。與此同時,計算機卻得益于運用機器學習技術(ML),能力愈發強大。正是這樣,現如今,幾乎在微軟創造的所有新產品都使用 了某種程度的機器學習技術來分析語音、數據或文本。本文我們將著眼于文本分析。

隨著計算機能夠更好地理解自然語言,開拓的新領域無處不在——優化的應用程序的用戶界面、更出色的搜索引擎、如Cortana和Siri這樣的私 人助理,以及推算給定文檔所含內容的工具。例如,如果一個新聞網站文章中的相關人物,可以基于算法被鏈接至維基百科(或其它合適的數據庫),從而便于讀者 獲取關于那些人的更多信息,那么這個新聞網站的使用體驗便能更為出色。此外,通過在文本中添加標記,人們還能確定文章所談及的具體實體(比如運動員、團隊 等),如圖1所示:

機器學習與文本分析

圖 1 文本分析激勵方案

文本分析一直是科學研究的活躍領域之一,并將繼續蓬勃發展。畢竟,創建一個人類所有知識(以文本形式)的語義模型絕非易事。追溯到上個世紀90年 代,Brill標記技術[1]雖能確定句子中的詞類,但[2]這樣的早期工作僅能給新工作起到一個提示作用。微軟研究院在這項科技領域,一直活躍于創造各 種新思路,但出于為了創造生產級技術這樣實用性的考慮,我們在更深入研究時對新興科學進行了取舍。

在這篇博客日志中,我們為你簡單介紹,通過使用NER(命名實體識別技術)作為一個參考點,機器學習技術是如何應用于文本分析的。作為一個提供交 鑰匙機器學習功能的平臺,微軟Azure ML(Azure機器學習)包括通用的文本分析功能,尤其支持NER技術——因此我們運用它將通用理念到特定的設計決策進行連接。

NER技術能夠對文本中所引用的人、場所、組織、球隊等內容進行確定。讓我們簡單看一下運用“監督式學習”(supervised learning)的方法,我們是如何解決這個問題的。

機器學習與文本分析

圖2 命名實體識別的工作流

在設計時期或“學習時期”,系統運用訓練數據來創建一個模型,確定學習內容。對系統而言,這個方案從一小組處理任意新文本的范本概括出來。

訓練數據由需學習的命名實體而經過人工標注的標簽所組成。它可能看起來像這樣:“當(球員)Chris Bosh勝過他人,(球隊)邁阿密熱火就會成為主宰。”值得期待之處在于,一個擁有學習其他范本功能的模型,將可以被訓練來識別新輸入文本中的“球員”實 體和“球隊”實體。

設計時期工作流的效果取決于特質提取(Feature Extraction)階段——設計的功能所耗費的努力越多,通常得到的模型便會越為強大。比如,局部上下文和一段文字[say, the previous k words and next k words]中的一個單詞相關聯,這個強大的功能便相當于我們人類使用它來用單詞關聯實體。例如,“San Francisco beat the Cardinals in an intense match yesterday”(San Francisco在昨日激烈的比賽中擊敗Cardinals)這句話中,顯然從上下文中可以知,這里的“San Francisco”是指一個球隊(即舊金山巨人隊),而不是指舊金山這座城市。大寫形式是另一個有用的功能,在識別如“People”(人)或 “Location”(地點)等被命名的實體方面很有幫助。

模型訓練,即生成好的模型,同樣是機器學習的內容。它通常是由選定的特色功能經過復雜組合而來。有一些機器學習技術是可利用的,包括感知器、條件 隨機域(CRF)等技術。技術的選擇取決于,在訓練數據、處理速度和需同時學習而互異的命名實體的數量都有限的條件下,這個模型能夠變得有多準確。例如 Azure ML NER(Azure機器學習命名實體識別技術)模塊便默認支持三種實體類型,即People(人)、Places(地點)和 Organizations(組織)。

運行時期工作流的目標是獲取未標記的輸入文本,和生成由設計時期創建的模型所識別的實體相對應的輸出文本。正如觀察所示,運行時期工作流反復使用設計時期 工作流的特征提取模塊——因此,如果一個應用程序需要高吞吐量的實體識別,便不得不在管道線中提供相對量輕且價值高的功能。若舉例說明的話,Azure ML NER模塊使用了一小組易于計算的功能,它主要基于局部上下文本,事實也證明這非常有效。處理過程中出現歧義之處,使用如Viterbi譯碼的技術為輸入 單詞序列分配實體標簽,問題常常便得以解決。

必須認識到NER技術只是一個開始,然而也是從原始文本中抓取“知識”的重要的第一步。這篇近期發布的博客文章描述了NER技術與一系列相關技術 結合后,在Bing的體育App中,是如何激發出用戶的興趣,提高用戶體驗的——并且你可以在Azure ML中使用一模一樣的NER堆棧功能。NER技術之外,一般自然語言的解析、鏈接和突出,情感分析,事實提取等等,都是附加步驟來增強基于內容的應用程序 用戶體驗,而這些附加的額外技術正可以在“活用”你的文本上助你一臂之力。

我們希望你能喜歡這篇文章,并期待著您的意見。

參考文獻

[1] Eric Brill, 1992, A simple rule-based part of speech tagger, Applied natural language processing (ANLC ’92)

[2] Li Deng, Dong Yu, 2014, Deep Learning: Methods and Applications

本文由微軟研究院提供,授權譯言進行翻譯,非商業轉載請注明譯者、來源,未經許可不得商業使用。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!