明明整個網路中有成千上萬的資料,為什麼Google能在一秒內告訴我答案?搜尋引擎以及各網站的搜尋功能到底是怎麼運作的?為什麼我在搜尋列輸入一大串字之後,搜尋引擎能夠抽絲剝繭幫我找到我真正需要的東西?30天之後,當我知道世界上存在著這些技術,我可以怎麼將它們應用在我的生活中呢?
自然語言處理(Natural Language Processing)是一門結合了人工智慧及語言學的學科。過去幾年曾有許多前輩探討過此學門,玩轉資料與機器學習-以自然語言處理為例、大數據的世代需學會的幾件事等。
在墨爾本大學攻讀碩士的第一年,我接觸到了自然語言處理這個學門,從此愛上了它,之後的研究也因此朝這方向走下去。這一次系列文的主要對象是給不熟悉人工智慧、機器學習等領域,卻抱有一探究竟之念頭的朋友們。希望能藉著接下來三十天的文章,帶你們了解我是如何透過有趣的題材開發和應用,愛上自然語言處理的。不過,也因為我是在英語環境下接觸及研究這個學門,接下來的系列文中我也會以英文範例為主體來書寫。所幸在這篇中文自然語言處理基礎的文中,有提到如何以Python的Jieba Library來處理中文,盼大家能夠參考!
在這次系列文主題的前方,我悄悄加入了「深入淺出」幾個字,意思是我不打算在文中鑽進機器學習、神經網路之應用,畢竟過去就曾有許多作者寫過像Hidden Markov Model, RNN, LSTM, …等眾多可以應用在自然語言處理的技術,若有需要我會在文中提到或引用這些文章讓大家參考,盡量以不重複的主題來書寫這個系列文。說在前頭,學習NLP不一定需要了解深度學習,但不了解深度學習就沒有辦法真正了解NLP的強大,所以總有一天還是要學的,只是我不希望一開始就打擊樂於學習的朋友們的信心~
在維基百科的人工智慧頁面中,針對自然語言處理他們寫道:「自然語言處理探討如何處理及運用自然語言,自然語言認知則是指讓電腦『懂』人類的語言。自然語言生成系統把電腦資料轉化為自然語言。自然語言理解系統把自然語言轉化為電腦程式更易於處理的形式。」
自然語言處理有以下幾個主要研究課題:
在接下來的文章中,我會介紹這些課題在做什麼。了解這些課題之後,本文集將會進入兩大主題:資訊檢索(Information Retrieval)和自然語言生成(Natural Language Generation)。在資訊檢索這個主題中,我會以一個搜尋引擎開發的背景、概念、演算法及實作,帶大家認識我們常用的搜尋引擎背後的運作方式。在自然語言生成主題中,我則會以一個英文猜字遊戲為例,帶大家寫一個猜字AI,並通過平滑(smoothing)帶大家逐步改良這個AI。末了幾篇文章,我會在這兩大主題的基礎下,帶大家再深入一些了解自然語言處理主要課題的奇妙之處。
這一個九月,讓我們一起探索NLP吧:)
我現在也在做NLP的研究,非常期待你的文章,希望能有更多人感興趣而投入中文自然語言處理工作
謝謝你的支持!