全棧 - 16 NLP 走近天然語言處理

這是全棧數據工程師養成攻略系列教程的第十六期:16 NLP 走近天然語言處理。算法

文本是一種極其重要的數據類型,讓咱們來了解下文本數據中有哪些研究問題和挖掘價值。網絡

概念

咱們在處理數據時常常會接觸到文本,例如電影簡介、新聞報道等,以及互聯網上天天大量積累的用戶產生內容(User Generated Content ),例如新浪微博、用戶評論等,所以文本是一種十分常見和重要的數據類型。這些文本大多以天然語言的形式存在,即經過人類語言組織和產生,普遍應用於咱們的平常對話、辦公寫做、閱讀瀏覽等行爲中。天然語言處理,即Natural Language Processing,但願讓機器可以像人同樣去理解,以人類天然語言爲載體的文本所包含的信息,並完成一些語言領域的特定任務。less

內容

語言是人類智慧長期沉澱的成果,對於看似簡單的文本,從詞彙級別、語法級別、語義級別、應用級別等不一樣角度出發,都包含大量研究問題和工做內容。機器學習

中文NLP中最基礎的一塊內容即是中文分詞。英文等外文語言的單詞之間以空格分開,所以顯式提供了詞和詞之間的邊界。而中文僅使用標點符號進行斷句,字和字彼此相連,例如「上海自來水來自海上」。雖然相似N-grams等語言模型並不須要進行中文分詞,但畢竟中文的基本語義單元是詞而不是字,因此在大多數應用場景下,爲了正確理解一句話所包含的語義,進行準確的中文分詞還是必不可少的預處理步驟。ide

詞性標註是指在中文分詞的基礎上,結合上下文對分好的每一個詞標註最合適的詞性。常見的詞性有名詞、動詞、形容詞、副詞等,同一詞語在不一樣的語境下能夠表現爲不一樣的詞性,進而在語句中充當不一樣的語義角色。所以,詞性標註主要是依據詞自己的詞性分佈,以及上下文的實際語境來判斷的。工具

命名實體識別是指識別出語句中的人名、地名、機構名、數字、日期、貨幣、地址等以名稱爲標識的實體,大多屬於實詞。而關係抽取則是指完成命名實體識別以後,抽取實體之間存在的關係。例如「喬布斯出任蘋果公司CEO」,其中喬布斯和蘋果公司分別屬於人名和機構名,而CEO則是兩個命名實體之間的關係。學習

關鍵詞提取是指從大量文本中提取出最爲核心的關鍵內容。經常使用的實現算法有TF-IDFTextRank兩種,在提取以前須要對給定文本進行中文分詞並移除停用詞,即例如「你」、「我」、「着」、「了」等十分經常使用但不包含具體語義的詞。TF-IDF選出那些通常並不經常使用(Inverse Document Frequency低),可是在給定文本中頻繁出現(Term Frequency高)的詞做爲關鍵詞;而TextRank則基於詞之間的上下文關係構建共現網絡,將處於網絡核心位置的詞做爲關鍵詞。測試

信息抽取則是從非結構化文本中抽取出有意義或者感興趣的字段,例如對於一篇法律判決文書,從中提取出原告、被告、案件類型、判決結果等信息字段,從而將非結構化文本轉化爲結構化數據,便於信息管理和數據分析。目前大多數信息抽取都是經過人工制定規則,使用整理好的模式去目標文本中匹配出相應的字段,或者使用半監督學習,結合人工標註樣本和機器學習模型,在不斷的迭代和反饋中提升信息抽取的準確率。搜索引擎

依存分析主要包括句法依存分析和語義依存分析,其過程都是將原始語句解析爲依存樹,樹中的每一個節點都表明一個詞,節點之間的鏈接則反應了詞之間的句法關係或語義關係。經過依存分析,本來以順序排列的詞語之間產生了更加複雜和層次化的關係,便於機器更好地理解語句的語法和語義,每每可以爲後續天然語言處理任務帶來幫助。翻譯

詞嵌入(Word Embedding)是指將詞映射成低維(low-dimension)、實值(real-value)、稠密(dense)的詞向量,從而賦予詞語更加豐富的語義涵義,同時更加適合做爲機器學習模型的輸入。詞嵌入的概念很是有用,在天然語言處理任務中應用也十分普遍,咱們下一節中將詳細進行討論並實現。

應用

若是以上內容是從理論角度出發,探討NLP所涉及的內容,那麼從實際應用角度出發,NLP又能夠用來實現哪些任務呢?

篇章理解是指對於給定的文章集合,經過處理後可以把握文章的主要內容並完成一些分類任務,例如對文章進行主題分類。篇章理解的實現大多基於有監督學習,即提供標註好的訓練集和待分類的測試集,基於訓練集獲得一個可以準確提取信息、全面把握內容的分類模型,從而應用於測試集的分類任務。

文本摘要是指對於給定的大量文本,提取出核心思想和主要內容,快速生成篇幅更小、便於閱讀和理解的摘要。文本摘要主要分爲提取式和生成式兩種,前者從原始文本中直接提取出已有的表明性語句,通過處理和組合後輸出爲摘要,後者在理解和融合原始文本的基礎上,自動生成原始文本中沒有的語句並組合爲摘要。相較而言,生成式比抽取式更加困難,而人類的習慣也是先閱讀並理解,選出重要的語句,再用本身的語言進行復述、總結和融合。

情感分析是指根據語句中蘊含的情感成分判斷整個語句所表達的情感傾向,例如判斷用戶評論是否爲積極或消極。情感分析的實現每每是簡單地使用一些情感詞典,對語句中出現的情感詞進行加權組合,從而輸出整個語句的情感得分,或者使用有監督學習,基於人工標註數據訓練情感分類或迴歸模型。

知識圖譜是一種表示知識的方法,使用節點表示實體,使用有向邊表示實體之間的關係,實體和邊均可以具有豐富的屬性,從而將海量知識表示成一個龐大的網絡。知識圖譜模擬了人腦管理和檢索知識的過程,當咱們看到喬布斯和蘋果公司這兩個實體時,會很天然地去聯想二者之間的關係。若是可以將某一領域所涉及的知識都以知識圖譜的形式進行整理和組織,那麼對於領域知識的管理、推理和檢索等都能起到很大的便利。

文本翻譯是一項十分經常使用的NLP應用,你們或多或少都使用過Google翻譯等工具將文本從一種語言翻譯成另外一種語言。從本質上來看,文本翻譯是一種序列到序列(Sequence to Sequence)的映射,其實現大可能是基於人工標註數據集,即大量源語言文本以及對應的目標語言文本,使用循環神經網絡等訓練映射模型。固然,並不能簡單地將源語言文本中的每一個字翻譯成目標語言並直接拼接,每每須要結合兩種語言的語法特色以及具體的上下文語境進行調整,而這也正是文本翻譯所面臨的最大困難和挑戰。

問答系統是對傳統搜索引擎的一種改進。傳統搜索引擎接受用戶的關鍵詞做爲輸入,以列表形式輸出按相關性遞減排序的搜索結果,用戶仍然須要依次瀏覽直到找到最符合本身要求的內容。問答系統則直接根據用戶問題返回最準確的答案,其實現涉及NLP的諸多領域,例如對用戶輸入內容進行理解和處理、以龐大的知識圖譜做爲知識存儲、快速高效的知識檢索和推理技術等。

聊天機器人很早便獲得了應用,完成一些自動信息採集和回覆的功能,但那時的聊天機器人主要基於關鍵詞和模版等人工制定規則,智能程度不高。近年來隨着深度學習等相關技術的發展,以及海量聊天語料的積累,聊天機器人逐漸能夠接受任意文本輸入並輸出較爲合理的回覆。從本質上來看,聊天機器人也屬於序列到序列的映射,但其涉及對用戶輸入文本的理解、知識圖譜、文本生成等多個領域,而且須要解決多輪對話一致性等挑戰。智能聊天機器人主要包括平常調侃的聊天機器人,例如微軟小冰等,以及垂直領域的功能機器人,例如法律、購車、醫療等領域的專業諮詢機器人。它們做爲用戶需求的萬能入口,吸引了大量研究機構和創業公司的密切關注。

視頻連接:走近天然語言處理

若是以爲文章不錯,不妨點一下左下方的喜歡~

相關文章
相關標籤/搜索