自然語言處理簡稱NLP是計算機科學領域與人工智能領域中的一個重要方向,從字面意思來看,Natural language應該是可以只語音和文本語言,但現在大家主流的看法,都把語言數據歸類為語音處理的范疇,因此大多數情況下,人們認為自然語言處理,是指對文字或文本的處理,我們可以認為,自然語言處理就是讓計算機讀懂人類語言,將文字轉化為可以被計算的物體,可以是數字向量,也可以是矩陣,再根據實際任務進一步處理。
NLP任務大體可以分成兩大類,一種是文本序列到文本序列及輸入文本并輸出文本,比如常見的機器翻譯和文本風格遷移,當機器翻譯指將一種語言翻譯為另一種語言文本風格遷移,只可以將負面的文本轉為正面的句子,或者對現代文與文言文的風格進行轉化;
而另一種是指序列到類別,比如情感分類、實體命名、識別等,情感分類指對文本進行分析,推理的過程,將輸入的文本劃分為正面或負面的兩種或幾種類型;
實體命名識別是指識別文本中具有特定意義的食品,比如人名、地名、機構名、專有名詞等,是一項十分重要的基礎任務,它以文本序列為輸入輸出序列上每個位置的標簽。
我們再來看一個機器人的例子,對話機器人可以分成兩種,閑聊型和任務導向型,閑聊機器人并不能給人一種在于正常人溝通的感覺,還有很多問題待解決,比如角色一致性、多輪會話、對上下文保有記憶等;未來的發展上,針對不同的人群,閑聊機器人可能還需要有一致的人格,懂常識和領域知識,有同理心任務導向的對話,機器人能夠協助人完成某件事,比如訂機票、小鬧鐘、問天氣等,我們需要一個模型,把過去已經有的歷史對話筒都輸入到一個模型中,這個模型可以輸出一個序列當作現在機器的回復,一般而言,我們會把這個模型在細分成很多模塊兒,不會是端對端的,這些模塊通常就包括自然語言理解。
NLP行動策略管理以及自然語言生成,NLP自然語言理解負責根據上下文去理解當前用戶的。一圖方便選出下一步候選的行為,如執行系統操作、澄清還是補全信息,確定好行動之后,自然語言生成模塊會生成出對其行動的回復,具體的說,會用來根據上下文來理解哪些信息是對當前任務重要的,比如訂房任務中的聯系人、入住人數、入住日期等,理解出的信息就變成一個類別,作為狀態,交給策略管理模塊,去判斷當前還有哪些信息缺失,是否需要繼續詢問,還是說信息已經全部,姑且可以執行命令,如果需要補充信息,則要根據缺失的信息去讓自然語言生成模塊生成問題。