自然語言處理

[自然語言] Google Cloud Platform (2) Natural Language API 介紹與應用

上一篇講完 Speech API,這週來提一下 Google Cloud Platform 另一個 API —— Natural Language API。這個 API 屬於 Computer Science Natural Language Process (NLP) 的範疇。有了這個API,我們就能快速的把一個句子的 tagging 和 parsing tree 以及情感(sentiment) 給抓出來。如果不熟悉 NLP 的同學,可以透過這篇,快速的把 NLP 的精神給抓住,並了解 Natural Language API 的威力。

快速測試

首先,我們先連到 Natural Language API 的連結。一如 Google 的風格,網頁非常的平易近人,馬上就給了個 API 快速測試的按鈕。廢話不多說,我們就趕緊來試試。

quick test

很快的,我們便取下了這段句子的所有單字內容和相關資料。例如,Google 是一個 organization,而 Android 是一個 consuming good,而相關的 wikipedia 資料也都被列在旁邊。此外,這個 API 也會估計各個字的情感強烈程度 (Sentiment) 和相對於整個句字的重要性(Salience)。以下看一個更明顯的例子,可以看到閉嘴 (mouth) 是整個句字的核心,而情感的分數也是負分 (negative) 的。

quick test 2

回到 Google 的例子,我們點選 Syntax,會看到以下的樹狀圖,NLP  的專業名稱叫做 parsing tree。這個 Parsing tree 看似複雜,用處可多的呢。例如透過 POS (Parse of Speech) ,我們便能看出各個字的詞性,而 lemma 則能幫助軟體處理單複數和時態的部分。

parsing tree

而 Dependency 也能幫助我們了解各個字的距離。例如以第二句為例,root 是 said,那們我們試著只取和 root 兩個距離的所有字。那麼原本的句子

Sundar Pichai said in his keynote that users love their new Android phones.

就會變成

Sundar Pichai said in keynote that users love phones.

句子也就變得更精煉了。當然,如果夠了解這些 parsing 和 tagging 所代表的意義的話,團隊或公司也就能更輕易的設計出一個較為活潑的 chatbot 來服務客人和收集資訊,而非呆版的一問一答或者選項機器人。

如此看來,我們可以發現,Natural Language API 其實很類似 Stanford 團隊出的 CoreNLP 工具。畢竟 sentimental analysis、parsing、tagging 都是 NLP 處理的經典問題。但依照我個人對兩者的使用經驗,我不會說這個是富人版(意即功能更多)的 CoreNLP ,畢竟 CoreNLP 提供了更多的細項功能,我反而會認為它是平民版(意即更平易近人)的 CoreNLP。

多國語言

除了這些功能之外,Natural Language API 也支援多國語言,左圖是它所支援的語言,而右圖則是 CoreNLP 支援的語言。

 

我認為整個 API 裡頭,最吸引我或一般團隊的,應當屬於這個部分。畢竟僅處理一個 model,就 NLP 的 task 而言,便是一件相當困難的事。但 Natural Language API 比起 CoreNLP 又提供了更多語言別。話不多說,趕緊試個中文的 parsing 先呵呵。

學姐妳好可愛,我很喜歡妳,請問妳可以和我交往嗎?

不行,因為你冗辭贅字太多了。

Chinese parsing tree

那麼經過 NLP parse 過並精煉後,就會長這個樣子。

學姐,我很喜歡妳,請問妳可以和交往嗎?

說不定成功機率會高一些,我是說⋯⋯說不定⋯⋯,因為你好像沒發現,原句中的「我」字不小心被演算法拿掉啦 XD。

計價方式

以下是 Natural Language API 的計價。每一單位是一個 text record,而每一個 text record 包含 1000 個 Unicode 字元。從剛剛寫到這裡,我以這個網址估算,大約是 1300 個 Unicode,也就是約 1.3 個 text record。如果採用實體分析 (Entity analysis),大概是 0.039 NTD (以 5K – 1M 計價)。

price

結語

關於字數的部分,我想還是小聲講好了,免得被編輯說騙稿費 XD。 總之,如果要架一個 chatbot 的話,我會認為 Natural Language API 會是一個不錯用的工具。比起開源版的 CoreNLP 而言,它支持了更多的語言。此外,他的 API 也相當人性化,只要發個簡單的 REST request 即可。

附錄

  1. Natural Language API for 各程式語言的範例程式碼

更多GCP加值服務歡迎隨時聯繫GCP專門家,也可以至GCP技術部落格查看更多GCP 最新消息與技術內容!

[自然語言] Google Cloud Platform (2) Natural Language API 介紹與應用 有 “ 2 則迴響 ”

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com 標誌

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

Google photo

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

Twitter picture

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

Facebook照片

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

連結到 %s