專欄| 中文NLP難於英文?從語言學角度看中文NLP、NLU難在哪裡

2021-01-11 機器之心Pro

作者:竹間智能自然語言與深度學習小組

長期以來,中文自然語言處理(NLP)的研究遭遇瓶頸,其中一個重要原因就是中文的語言學基本無法遷移到已有的成熟的深度學習模型中,這也是中文 NLP 難於英文的重要原因之一。而竹間智能在自然語言處理的研究中,結合深度學習、語言學和心理學等,通過 NLU 來彌補傳統中文 NLP 在語言理解上的不足,取得了不錯的成果。在此和大家分享一些竹間智能在中文自然語言交互研究中的經驗和思考。

本文結合語言學和 NLP 的幾個基本任務,從理論上對中文 NLP 的特點進行說明,同時展望 NLU 在中文自然語言交互上的一些方向。

1.中文分詞

詞是最小的能夠獨立運用的語言單位。「詞」這個概念,是從西方引入的,在 1898 年《馬氏文通》出版之前,傳統的語言學研究對象是「字」,而不是「詞」。漢語和英語最直觀、最明顯的不同,就是英語的詞是天然的,由空格分開,而漢語的字緊密排列,從形式上看,其實沒有「詞」這個單位。

現代漢語的典型特徵之一是雙音節詞佔優勢。古漢語常常是一字即一詞,而現代漢語都把它們雙音節化了,比如「目-->眼睛」「悅-->高興、喜歡」。如果單單把「睛」、「興」等字拿出來,它們承載的意義與原詞是有差異的。加之考慮到實際應用的需求,以詞為索引可以減小搜索空間、加快搜索速度、提高準確率,所以做分詞是有必要的。

由於漢語的特殊性,在分詞任務中,會碰到兩種歧義現象:交叉歧義 (Cross Ambiguity) 和組合歧義 (Combination Ambiguity)。

(1) 老闆有意見他。

(2) 老闆對他有意見。

和 (2) 的正確切分是:

(1) 老闆/有意/見/他/。

(2) 老闆/對/他/有/意見/。

這種屬於交叉歧義。abc 三個成分,ab 可以分成一個詞,bc 也可以分成一個詞。

(3) 其他語言學起來很難。

(4) 語言學是以人類語言為研究對象的學科。

和 (4) 的正確切分是:

(3) 其他/語言/學/起來/很/難/。

(4) 語言學/是/以/人類/語言/為/研究/對象/的/學科/。

這種就是組合歧義。ab 兩個成分,組合在一起的時候是一個詞,分開以後可以各自成詞。

解決分詞歧義的技術方法主要有三大類,分別是基於規則的方法,基於統計的方法(例如 CRF、HMM、Deep Learning 等),以及規則和統計結合。網上,也能查到一些相關的分詞器實現。

在技術需求方面,有的需要細粒度的分詞,有的需要粗粒度的,這都是實際應用會面對的矛盾。這也是由於漢語本身語素、詞和短語的界限不明造成的。

臣妾做不到啊。

(5) 中的「做不到」,屬於動補結構 (動詞+補語),從語言學的角度看,是個短語。實際應用時,可以分成「做/不/到」,也可以「做不到」合在一起,看成一個詞。

中文分詞也是英文和中文 NLP 的一個基本不同,英文不需要分詞,而中文需要進行分詞,以便能夠更好地進行後續 NLP 任務。當然,目前也有一些中文 NLP 技術,可以避開中文分詞任務。

2. 詞性標註 (Part-of-speech Tagging, POS)

漢語詞性的獨特之處在於,漢語作為孤立語/分析語,沒有明顯的形態變化,與英語等屈折語不同。比如:

(6) 我感覺他喜歡我。(動詞)

(7) 我的感覺很準。(名詞)

如果用英語說這兩句話,應該是:

(8)I feel he loves me. (動詞)

(9)My feeling is reliable.(名詞)

同樣一個「感覺」,其實是同形異義詞。我們必須準確識別兩種詞性。

上面說的這種情況名詞和動詞的區別是比較明顯的。但漢語的複雜之處還不止這個。比如:

(10) 他喜歡你。(動詞)

(11) 我很珍惜她的喜歡。(動詞用作名詞)

「喜歡」從絕大多數情況來看,都被人們看成一個動詞,但例 (11) 就把動詞當作名詞用了,而且沒有詞形變化。這種情況在漢語裡大量存在,這也就是沈家煊先生提出的漢語「名動包含」的觀點。

漢語的這一特點會造成句子裡的核心謂語動詞難以識別的問題。還是拿例 (11) 來說,句子裡有兩個動詞「珍惜」和「喜歡」,但核心謂語動詞是「珍惜」。「喜歡」最好不要被判斷為動詞,否則會影響後續的句法、語義分析。

中科院計算所漢語詞性標記集提供了 vn、an 等詞性標籤,v 代表動詞,a 代表形容詞,後面加上 n,其實有一種「動名詞」「形名詞」的意思,也是對英語的一種借鑑。vn 等標籤可以幫我們解決掉一些非謂動詞幹擾的問題,但不能解決全部。

在實際應用中,我們以「依句辨品,離句無品」的原則去做詞性標註,關注詞在句子裡的位置和作用,雖然這未必是黎錦熙先生說這句話時的本意。

3. 句法分析

目前在做的句法分析包括句法樹 (Parse Tree) 和依存句法分析 (Dependency Parsing, DP),談到這兩點不得不放出下面這兩張圖:

圖 (1)

圖 (2)

不同的詞類在句子中行使的功能是不一樣的。圖 (1) 基本可以代表英語詞類的功能,這張圖比較符合我們的一般認識,即名詞作主語賓語,動詞作謂語,形容詞作定語,副詞作狀語。

但是漢語的情況,如圖 (2),要複雜得多。名詞也可以作謂語,動詞也可以作主賓語。比如:

我永遠十八歲。

例 (12) 就是一個典型的名詞性短語作謂語的例子,這個句子不需要動詞也成立。「我」是代詞,「永遠」是副詞,「十八歲」是數量短語。

句法樹分析結果如下:

圖 (3)

圖 (3) 借用 CTB(美國賓州大學的漢語樹庫)的標註體系,NP 代表名詞性短語,VP 代表動詞性短語,雖然這句話中沒有動詞,但仍需要 VP 作為謂語的框架。

依存句法分析結果如下:

圖 (4)

圖 (4) 借用 LTP(哈工大社會計算與信息檢索研究中心研發的「語言技術平臺」)的標註體系,SBV 代表主語,root 是「歲」,即使沒有動詞,也能正確分析句子結構。

漢語還有一些特殊句型,比如主謂謂語句、存現句、連謂句、兼語句等,在句法分析層面上都有自己獨特的結構,也是需要特殊處理的。

4. 其他方面

漢語還有一個特點是重意合而不重形式,句子結構比較鬆散,多分句;英語則多從句,多引導詞,句子結構比較容易判斷。如果要判斷句子裡的因果關係、讓步關係、目的關係、假設關係等,目前來說還比較難。況且我們說話的時候,常常會省略「因為」「即使」「如果」等明顯的關聯詞,這也樣也就使得特徵變得不明顯。比如:

(13) 人勤地不懶。

(14) 如果人勤地就不懶。

例 (13) 和 (14) 表達了一樣的意思,但它們的表現形式是不一樣的。

漢語結構鬆散還表現為:

(15) 一斤蘋果多少錢?

(16) 蘋果一斤多少錢?

(17) 多少錢一斤蘋果?

例 (15)(16)(17) 都說得通,而且還很常用。

在語義分析層面,如語義角色標註 (Semantic Role Labeling, SRL) 和語義依存分析 (Semantic Dependency Parsing, SDP),漢語這個特點著實加大了實現的難度。

5. 從 NLP 到 NLU,從處理到理解

再來談談 NLU,傳統的 NLP 基本上都是在做「處理」的工作,是把人類的語言掰開揉碎,而 NLU 則解決更深層的「理解」問題,即如何消化 NLP 已經處理好的東西,真正讓機器明白人類語言的語義(semantic)。NLU 的出現也對中文 NLP 起到了重要的補足作用。

NLP 和傳統語言學已經可以幫助人工智慧解決一部分初級問題,但卻還遠遠不能 cover 千變萬化的語言形式,比如機器可以理解「我心情不好」,卻難以理解「我的心淅淅瀝瀝下著小雨」這樣的轉喻;機器可以理解「我要吃飯」,卻難以體會同樣是吃飯,「上飯店」和「下館子」,這一「上」一「下」間表達的心理上的微妙差異。

人機自然語言交互涉及到語法、語義、語用三個層面,越往後越難。為了推動人機自然語言交互的發展,需要在 NLP 的基礎上,引入 NLU、認知語言學、心理語言學、社會語言學等學科的綜合參與。甚至如竹間智能正在探索的,為了理解「寒暄」、「安撫」甚至是「諷刺」、「幽默」這樣的言語修辭行為,需要在深度學習方法中結合對心理學的研究,在語義理解的基礎上增加意圖識別和情感判斷,以彌補傳統中文 NLP 在語言理解上的不足,讓機器真正讀懂人類語言的複雜語義,以及背後的意圖和情感。在此基礎上給予對話者擬人的反饋,從而達到更好的人機自然語言交互效果。

同樣,人工智慧也必將改變語言學研究的發展方向。傳統的重理論分析而輕實例,坐著想句子的研究方法將逐漸退出舞臺;真實語料、口語和書面語並重,側重對語言形態進行統計分析的研究將大量湧現。另外,傳統語言學將進一步向計算語言學靠攏,未來將會有新的、更容易被計算機接受的語法提出。

竹間智能往期專欄文章

專欄 | 自然語言處理在2017年有哪些值得期待的發展?

相關焦點

  • 國內自然語言處理(NLP)研究組
    中國大陸地區:微軟亞研自然語言計算組 Natural Language Computing (NLC) Grouphttps://www.microsoft.com/en-us/research/group/natural-language-computing/www.microsoft.com百度自然語言處理百度自然語言處理 - 理解語言,擁有智能,改變世界nlp.baidu.com
  • 資源| 史丹福大學NLP組開放神經機器翻譯代碼庫(附論文)
    Manning(史丹福大學計算機科學和語言學教授)Minh-Thang Luong(斯坦福博士,Google Brain 研究科學家)Abigail See(史丹福大學計算機科學在讀博士)Hieu Pham代碼庫對於混合 NMT(hybrid NMT),請使用這個代碼庫並且引用:代碼庫:https://github.com/lmthang/nmt.hybrid
  • 復旦邱錫鵬教授:2020最新NLP預訓練模型綜述
    nlp領域的發展比cv領域相對緩慢的原因是什麼呢?相比於cv領域,「nlp領域的劣勢在於有監督數據集大小非常小」(除了機器翻譯),導致深度學習模型容易過擬合,不能很好地泛化。但是相反,nlp領域的優勢在於,存在大量的無監督數據集,如果能夠充分利用這類數據進行訓練,那麼勢必能夠提升模型的能力以及在下遊任務中的表現。
  • 深度學習的NLP工具
    他的實驗室裡充滿了快樂的尖叫;他應該可以在下午就復現出來結果,並且享受一個放鬆的晚上來和朋友在酒吧看世界盃!他還想。。。然後,我們的朋友發現官方實現用的超參數和論文中提到的很不一樣。他的導師建議:稍微調整一下參數,跑一下看看,結果應該還好--真的嗎?
  • 中文為何比英文美麗?美在哪裡?雅在哪裡?動聽在哪裡?
    如果對中文和英文都深入研究,你會發現中文遠比英文更美!如果說中文是精心錘鍊的高級文字,那英文就顯得粗糙簡陋:幾千年的錘鍊讓中文詞彙典雅、凝練、雋永、回味悠長、意境深遠,而英文詞彙則簡單、直白,內外通透,缺乏意境;如果說中文是美妝盛宴,那英文就是素麵朝天;中文是身穿華麗晚禮服、風情萬種的貴婦,那英文就是T恤、牛仔褲的鄰家女孩。
  • 想快速入門NLP?我們測評了15門最火課程,幫你找到最適合的
    代碼至上的網課們A Code-First Introduction to NLP course課程連結:https://github.com/fastai/course-nlp授課人:Fast AI專業評分:8/10工具和庫:IPython notebooks, PyTorch, Fast.AI, spacy
  • 怎麼把中文轉英文?中文轉換成英文的超簡單方法
    對於會說英語的小夥伴來說,將中文轉換成英文非常簡單,但是如果你英語不好又需要將中文翻譯成英文該怎麼辦呢?別著急,中文轉英文實用又簡單的方法就在下面。今日主題:中文轉英文簡單方法使用工具:語音翻譯器(手機APP)操作方法:①打開軟體;②選擇翻譯模式;③設置翻譯語言;④開始翻譯操作方法雖然很簡單,但我們還是來看一遍具體的操作的流程吧:
  • vicword 1.4 發布,PHP 中文分詞庫
    getShortWord('北京大學生喝進口紅酒,在北京大學生活區喝進口紅酒');    //北京|大學|生喝|進口|紅酒|,|在|北京|大學|生活|區喝|進口|紅酒    $arr = $fc->getAutoWord('北京大學生喝進口紅酒,在北京大學生活區喝進口紅酒');    //北京|大學生|喝|進口|紅酒|,|在|北京大學|生活區|喝|進口|紅酒    //對比    //qq的分詞 http://nlp.qq.com
  • 看完這些搞笑的中文翻譯,你就不覺得英文很難了
    以前學英語的時候,老師經常說,中文是最難學的一項語言,你們都天生自會,還怕學什麼英文,世界上沒有哪一種語言比中文難學。那時候我不信,直到我看到了這些:英文大概意思是,不要一下子抽那麼多紙巾我覺得可能他們覺得我們抽紙回去是要寫論文的,起碼這個解釋還是通的。山藥驕傲不驕傲我不知道,反正我是驕傲的。看到這個我懷疑了自己的中文水平,雖然我試著猜了了一下但是我還是不明白。
  • 乾貨| 請收下這份2018學習清單:150個最好的機器學習,NLP和Python...
    本文英文出處:Robbie Allen翻譯/雷鋒網字幕組 吳楚校對/ 雷鋒網 田晉陽機器學習的發展可以追溯到1959年,有著豐富的歷史。這個領域也正在以前所未有的速度進化。理解LSTM網絡(colah.github.io)http://colah.github.io/posts/2015-08-Understanding-LSTMs/漫談LSTM模型(echen.me)http://blog.echen.me/2017/05/30/exploring-lstms/小學生看完這教程都可以用
  • 中文在亞洲地位如何?緬甸人表示:學中文和學英文一樣重要!
    比如唱歌KTV,平時都去哪裡玩?他:以前年輕的時候有,現在沒有。現在要賺錢,省錢我:那你們會去旅遊嗎?一般去哪裡旅遊?他:有啊,我們去海邊啊,去那個曼德勒那邊拜佛啊。我:你女兒談戀愛了嗎?我:你中文跟誰學的他:我媽媽,我同學。我:你覺得穿隆基好看嗎?(隆基就是男人穿的裙子)他:好看。我:你為什麼認為它好看。
  • 這套1600贊的NLP課程已開放,面向實戰,視頻代碼都有丨資源
    服用指南直接看課程裡面有什麼乾貨。1、概覽什麼是NLP2、傳統NLP方法佔整個課程三分之一的篇幅,介紹了使用SVD進行主題建模,通過樸素貝葉斯和邏輯回歸、以及正則表達式進行情感分類。傳送門課程首頁:https://www.fast.ai/2019/07/08/fastai-nlp/GitHub上有課程所需的所有代碼:https://github.com/fastai/course-nlpFast.ai庫:https://docs.fast.ai/
  • NLP的文本分析與特徵工程
    nlp = gensim_api.load("glove-wiki-gigaword-300")我們可以使用此對象將單詞映射到向量:word = "love"nlp[word]nlp[word].shape現在讓我們來看看什麼是最接近的詞向量,換句話說,就是大多數出現在相似上下文中的詞。為了在二維空間中繪製向量圖,我需要將維數從300降到2。
  • 中文論文翻譯成英文論文再投英文期刊算不算一稿多投?
    很多問題都是我始料未及的,比如這條:「中文論文翻譯成英文論文再投英文期刊算不算一稿多投?」這個問題問的人非常多,很多人都有疑惑或者是內心有不安。因為近年來爆出的很多學術不端的事情讓大家都人心惶惶。我原來在《論文寫作發表全攻略》這本書裡講過這個問題。中文論文已經在國內發表,可又想改為英文論文去投國際會議或者國際期刊。
  • NLP中的文本分析和特徵工程
    nlp = gensim_api.load("glove-wiki-gigaword-300")我們可以使用這個對象將單詞映射到矢量:word = "love" nlp[word]nlp[word].shape現在讓我們看看最接近的單詞向量是什麼,或者換句話說,是那些經常出現在相似上下文中的單詞。
  • windows10中文系統更改為英文系統後,部分選項還是中文
    ,部分選項還是中文怎麼辦?   windows10中文系統更改為英文系統方法如下:  1、打開開始菜單,選擇設置     正常顯示英文,不會出現部分中文或者部分英文。  案例二、  1、windows10版本是專業版 ,18362。
  • 超殺行屍走肉中文包下載地址 超殺行屍走肉中文版哪裡下載
    鬥玩網(douwan.com)報導:超殺行屍走肉是一款非常不錯的打殭屍射擊遊戲,不過全是英文選項,很多網友想知道超殺行屍走肉中文版哪裡下載?超殺行屍走肉中文包下載地址。其中超殺行屍走肉本身是帶有中文的,需要玩家設置一下就即可。
  • 漢語學習者:請叫我中文名字
    於國寧攝   近日,新浪微博「@北美新浪」提到了一個現象讓人們關注:一方面,兩岸三地的白領中流行取英文名字,有的人共事數年,只知同事英文名字而不知其中文名字;另一方面,越來越多的外國漢語學習者熱衷於取中文名字,還有專門幫人起中文名字的網站,名叫「Get Your Chinese Name」。
  • 這些英文單詞居然是從中文來的!?
    「brainwash」是由中文「洗腦」演變過去的? 「ketchup」(番茄醬)竟是中國人發明的? 之前揭露日本APA酒店放置右翼書籍、科普外國人對中國人的侮辱性言辭和動作的微博博主@KatAndSid,22日又更新了一段視頻,介紹了一些由中文演變過去的英文單詞,有些詞可以說非常意外了。
  • 怎麼把ins的英文翻譯成中文的方法
    把ins上的英文翻譯成中文的方法打開ins89選擇一個ins貼文並打開,如下圖3.滑鼠移到到圖片右側的貼文內容尾部飄藍「翻譯」按下就可以把ins貼文中的英文翻譯成中文了,如下圖把英文內容「We still have another 90 minutes to set it straight」 virgilvandijk on remaining confident #LFC #LiverpoolFC #UCL翻譯為中文內容「我們還有90分鐘來糾正它」virgilvandijk談到保持自信的