Natural Language Processing(NLP)簡介

“Natural language processing (NLP) is a field of computer science, artificial intelligence, and computational linguistics concerned with the interactions between computers and human (natural) languages." — Wiki

實作上,NLP就是"使機器(電腦)理解人類語言,並了解其中的意涵",和人工智慧領域有其相關性。[1]

1970年代,一些chatterbot(以聲音或文字和人類溝通,企圖通過圖靈測試的程式)被開發(e.g. PARRY, Racter, Jabberwacky, ),其實作方式大致有三種:(1)採用較複雜的NLP技術、(2)分析句子的關鍵字並選擇最符合者、(3)選擇最符合的字串類型( wording pattern)。[1]

直到1980年代後期,NLP有了重大的演進:引進machine learning的機制,從早期採用的decision trees到後來的 probabilistic decisions (包含了statical model與權重的概念),使得機器遇到不熟悉的句子時,有較高的理解正確率。[1]

近期的研究(今年為2015年)比較專注於 unsupervised and semi-supervised learning algorithms,使機器在人類未介入或半介入驗證資料預期意涵的狀況下,根據提供的資料進行學習。大多的NLP演算法都是立基於statical machine learning,利用大量的語句資料庫自動分析其中的語法(屬於語言學的範疇),而非採用人類自行訂立的語法分析規則,有以下三個優點:(1)了解不同 語句的使用頻率,作為是否需要特別強化辨識率的依據、(2)對於未知的句子有較高的理解正確率、(3)當Traninig data增加時,辨識率的準確率得以提高(如果採用人類訂定的語法規則進行分析,辨識率完全取決於語法規則的複雜度,且複雜度有其極限,否則分析系統將極 難維護、正常運作、分析費時較多)。[1]

NLP包含了許多研究主題,例如Named entity recognition (NER)、Part-of-speech tagging等。[1]

目前搜尋到可以提供NLP技術的部份服務列舉如下:

(1) Wit.ai: 屬於Facebook提供的服務,免費,猜測其採用 semi-supervised learning algorithms、statical machine learning的方式進行NLP。

(2) Cleverscript : Cleverbot即採用此技術,收費,猜測採用關鍵字分析的方式進行NLP。

(3) 100 Best NLP Tools in GitHub

(4) spaCy

(5)Stanford NLP software distributions:開源版本採用GNU General Public License。此外也可連絡該研究團隊取得商業版本。

(6) mojombo/chronic : 使用Ruby解析不同型式的時間表達文字。(註解:解析的時間範圍不可以超出Ruby的Time類別所定義者,否則回傳值為nil)。

(7)/natural

Google即採用 unsupervised learning algorithms搭配極多的網路數據進行NLP。

參考資料:

  1. Natural language processing
  2. Google Natural language processing
廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s