自然語言處理 要方法,還是要資料?

2021-09-12 14:47:51 字數 1035 閱讀 4928

自然語言的處理,在很長一段時間內都處於爭執和迷茫中。人類在最初的交流中構建起最基本和最簡單的交流方式,並逐漸將這個方式複雜化和豐富化,直至形成乙個足夠大的集合,以及這個集合元素之間的關係,也就是語法。看起來,機器似乎可以通過了解語法來了解語言,畢竟從某種程度上來說,語法不過是乙個類似函式的東西,而詞彙雖然變化多端,但總的來講數量並不多,即使是對於數十年前的計算機來說,訪問某種語言的常用字詞也是毫不費力的事情。因此在自然語言處理的初期,主流的觀點是使計算機盡可能多和熟練地掌握人類語言的文法。

這個觀點看起來並沒有什麼問題,但它的實際效果是慘不忍睹的。十多年來,精英們所做的努力幾乎全部打了水漂。即使文法處理的方式又堅持了十餘年,它也無法阻止自己走向不可避免的失敗:基於文法分析的自然語言處理還是被時代拋棄了。

事實上,計算機科學家們的預判是過於樂觀的。詞彙的集合雖然並不大,但它在文法約束下的組合複雜度卻是驚人的。句子可以劃分為成分,成分再變成短語,短語又分解為型別各異的詞彙,最後形成乙個無比龐大的體系。隨著詞彙的增加,文法規則也要不斷的更新,乃至根本不能處理,這種取巧的方法反而變成了笨辦法。

在這種情況下,越來越多的人開始尋求其他的方法,而基於統計的自然語言處理方法就此登上歷史舞台。相比文法,統計處理的原則簡單的可怕:選取出現概率最大的含義就可以了。統計原理不關心詞與詞之間是否遵守了文法規則,它只是粗暴地假設某個詞的出現概率只與前面少數的詞彙(一般最多也就四個)是相關的,然後收集大量的語料並得出令人信服的概率統計。最後直接利用概率計算求出不同含義的概率,就可以做出哪個含義更有可能出現的判斷。

這種方法一度被認為是野蠻而無用的,而且、語料庫的建立嚴格受限於過去的技術水平。然而,這種困局不可能持續多久。隨著計算機計算和儲存能力的發展,收集大量語料並不是那麼困難了。雲計算的出現將這種設想徹底變成了可能:在現在,較為成熟的技術可以輕鬆地對自然語言進行處理,並得出高準確度的結果。看起來不可一世的文法理論就這樣被暴力演算法擊敗了。

乙個事實是:大資料的出現才是文法與統計之爭的終結者。隨著計算能力的大量提高,繁重的計算似乎不是那麼不可接受了,邏輯簡潔的方法在實現上也變得簡潔了。資料規模的極速擴大,在根本上影響了電腦科學乃至其他行業和領域的發展程序,而這個變化還會繼續下去。

自然語言處理

自然語言處理主要步驟包括 2.詞法分析 對於英文,有詞頭 詞根 詞尾的拆分,名詞 動詞 形容詞 副詞 介詞的定性,多種詞意的選擇。比如diamond,有菱形 棒球場 鑽石3個含義,要根據應用選擇正確的意思。3.語法分析 通過語法樹或其他演算法,分析主語 謂語 賓語 定語 狀語 補語等句子元素。4.語...

自然語言處理

前言 自然語言處理 natural language processing 是計算科學領域與人工智慧領域中的乙個重要方向。它研究能實現人與計算機之間用自然語言進行有效通訊的各種理論和方法。自然語言處理是一門融語言學 電腦科學 數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言...

自然語言處理

一 字串操作 去空格及特殊符號 s hello,world 預設把左右空格去掉 print s.strip print s.lstrip hello,print s.rstrip 查詢字元 0 為未找到 sstr1 strchr sstr2 tr 找到返回目標子串開始下標 npos sstr1.in...