顯示具有 自然語言處理 標籤的文章。 顯示所有文章
顯示具有 自然語言處理 標籤的文章。 顯示所有文章

2018年1月26日 星期五

歡迎加入機器智能實驗室_FB社團

大家好,我是資料科學實驗室作者Jerry,由於個人工作歷程的發展,目前正在從「數據科學」轉移到「機器智能」上發展,所以建立了「機器智能實驗室」,在這裡不同以往的,我們可以有更多的互動與交流,也歡迎大家一起進入我們的研究行列。

未來所有智能化的來源都是資料,而研究多年「資料應用」的Jerry,希望能夠將資料與智能化整合,就像阿里巴巴馬雲說的「以前的電器是插上了電以後就聽你話。未來電器不僅要通電,更要通數據。機器收到數據之後,機器比人變得越來越聰明」。

另外也有牛津大學的學者提到「機器智能將會是我們人類最後一個發明」,讓我更決定開始投入機器智能(Machine Intelligence)的相關研究。

在接下來幾年,資料將會是企業最重要的資產,為了能夠掌握未來發展,企業應該要能夠掌握資料,並開始投入研究資料,進而將資料用在各種智能應用上面。但是因為機器智能(Machine Intelligence)技術越來越複雜,門檻越來越高,因此希望成立機器智能實驗室,希望大家一同共襄盛舉。




======================= [工商服務] =======================
目前JerryWu老師是Google機器學習開發專家,同時擔任機器智能(人工智慧)訓練講師,目前在廣宣學堂、T客邦、資策會、工研院、中國生產力中心、文化大學進修推廣部......等知名訓練機構擔任講師,也同時是亞太智能機器的創辦人兼技術長。
教授課程包含:
機器學習、機器理解、機器視覺、Python基礎課程、Python資料分析課程、預測分析與管理。

有需要的朋友歡迎來信 jerry@ap-mic.com



2017年5月8日 星期一

透過雲端工具快速實作情緒分析(Sentiment Analysis)

最近實在是太忙,終於有一點時間可以發文,情緒分析一直是筆者的研究之一。自從兩年前「情緒分析(Sentiment Analysis)的作法與商業價值」獲得高度迴響之後,就一直要找時間分享相關的研究。而剛好這兩年Google推出的自然語言技術越來越成熟,筆者就把使用心得給記錄在這邊。

因此本次實作主要使用Google自然語言API (Cloud Natural Language API)來進行情緒辨識,目前支援簡體中文、繁體中文、英文、法文、德文、義大利文、日文、韓文、葡萄牙文、西班牙文。


如果您只是是玩玩,想看一下Demo,Google提供兩個地方給大家玩,第一個到官網。
可以自行輸入文字進行辨識情緒。

第二個
或是進到Google API進行API測試,網址請點這裡
透過上方的輸入之後,可以獲得情緒分數的回傳



第三個就是今天要說的,透過雲端工具來取得情緒分數,做之後的系統運用。

在基本教學前,我們自己的電腦必須準備的環境如下:

  1. Google Cloud Platform帳號
  2. Python 3以上的版本
  3. Virtualenv (pip install virtualenv)
  4. gcloud(依據自己的電腦做安裝,本次範例採用Mac OS X)
  5. 務必完成gcloud上面的登入設定
首先建立一個虛擬環境,筆者用gNLP為名稱,接著進入虛擬環境,指令如下圖所示:

接著我們要裝一下gcloud的Python套件,我們可以只裝Language的相關套件就行。
pip3 install --upgrade google-cloud-language


接著測試一下google cloud的套件是否正常,進入Python之後打以下指令:
from google.cloud import language

接著可以下載筆者從 範例加工過的程式碼,請點網址

這時候直接執行英文句子沒問題,但是輸入中文句子,就會出現問題,像是下面這張圖所示
大意是說他抓不到回傳的資訊,不過事實是目前中文正在測試,他不回傳您資料,但是有其他撇步可以使用。

接著我們要到套件本身做一下修改,從上面我們可以看到他是呼叫document這個函式,所以我們要到"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/google/cloud/language/document.py" 去修改 「document.py」這一個檔案。

打開之後 搜尋「null」看到下面的畫面

將裡面的null改成en,讓google自動偵測語言的機制有了預設值,改完之後存檔案。

再回來執行程式,就大功告成。
範例如下


Score是指情緒分數,Magnitude是指情緒的強度。

記錄一下Google自然語言API (Cloud Natural Language API)的API在一定的呼叫次數下是免費的,計費方式是採用每月1,000個字來做單位,以情緒分析為例,大概超過5,000個字之後就是1元美金,但是文字量越多越便宜,實際的計價方式可參考官方網址。

總結一下

優點:
  1. 透過Google CNL API來實作辨識情緒,方便又快速,可以讓大部分的工程師、分析師比較不會太忙(ㄅㄠˋ ㄍ ㄢ  )。
  2. 不用理基礎設施問題,過往透過辨識情緒要耗費的運算資源,這部分都不用考慮進去,直接以Serverless的概念運作。
  3. 可以在五分鐘之內,完成情緒辨識功能,並且在一小時之內上線相關的系統,不用再訓練模型、驗證模型。
缺點:
  1. 有些複雜的句子目前還不能有效地辨識,像是筆者輸入「這台車真好,可是我從來都不開」情緒辨識的結果居然是正面的,所以中文句子還是有辨識問題。
  2. 一些具有領域知識的名詞 或是特殊名詞 ,混雜在句子裡面的時候,辨識也不會太準,像是「這台車真的是瞎爆了」這樣的句子也無法正常辨識。
  3. 透過Google CNL API實作,超過一定的呼叫次數後,就要錢(廢話)。
所以結論還是要請資料科學家幫忙做調整跟修正囉:)