跳到主要內容

發表文章

目前顯示的是有「NLP」標籤的文章

快速了解 Tensorflow Text

為了"讓機器聽的懂人話", 我們可以透過神經網路讓程式去學習人類說話的方式, 進而理解對話中的意圖, 而整個學習的過程, 可以簡化成文字前處理 > 學習 > 驗證 以往在前處理階段, 通常都是使用NLTK作分詞, 算N-Gram, Normalize 等等... 現在 Tensorflow.Text(TF.Text) 出來後, 除了NLTK之外我們也可以使用 TF.Text  來處理文字 分詞 tokenizer = text.WhitespaceTokenizer() tokens = tokenizer.tokenize([ 'The cat sat on the mat.' , 'i like cats' ]) print(tokens.to_list()) [[b'The', b'cat', b'sat', b'on', b'the', b'mat.'], [b'i', b'like', b'cats']] N-grams tokenizer = text.WhitespaceTokenizer() tokens = tokenizer.tokenize([ 'The cat sat on the mat.' , 'i like cats' ]) # Ngrams, in this case bi-gram (n = 2) bigrams = text.ngrams(tokens, 2, reduction_type=text.Reduction.STRING_JOIN) print(bigrams.to_list()) [[b'The cat', b'cat sat', b'sat on', b'on the', b'the mat.'], [b'i like', b'like cats']] 結論 大家若想嘗鮮的話, 可以使用以下指令來安...

[NLP] 聊天機器人之語意識別自己來, 實作Named Entity Recognition 專名辨別

前言 這一兩年來Chat Bot變得非常的火紅, 許多科技大廠也紛紛釋出SDK讓開發者們可以很快速地開發bot, 並且自由地將bot部屬在他們的平台上, 如Google DialogFlow, Microsoft Azure Bot service + Luis, Amazon Alexa Skill, Facebook Wit,... 尤其是使用DialogFlow或是Azure Bot Service的開發者們, 還可以省去串接社群頻道的細節, 專心在商務邏輯的開發 這些Chat Bot背後都運用到Natural Language Understanding的技術, 將使用者輸入的句子解析成最有可能的意圖(Intent)以及句子當中我們感興趣的字詞(Entity) 有了Intent與Entity之後, Bot 就能夠根據這些資訊來回答使用者的問題 相關技術:   Intent Classification: 預測目前的輸入句是屬於哪一種意圖   Named Entity Recognition, NER (專名辨別) :  從句子中挖出感興趣的字詞 基於這些技術, 開發者不需要在後端建立一大堆的條件判斷式, 以及Regular Expression 雖然這功能很好用, 但是天下沒有白吃的午餐, 這些服務的收費也是貴的很誇張, 如果想要省錢的話, 其實也可以透過開放資源自己去兜一個出來, 以下內容就教各位如何使用現成的開放資源來做NER Step 1. 安裝相關python模組  nltk / sklearn_crfsuite / sklearn $ pip install python-crfsuite nltk 下載NLTK上的套件 $ python -m nltk.downloader all Step 2. 將相關模組匯入 import nltk import pycrfsuite Step 3. 選擇語料庫 NLTK download 做完之後, 本機上會出現許多語料庫可以讓我們直接使用 這次的示範使用conll2000的語料庫, 基本上裡面的句子都已經以 IOB(Inside–outside–beginning)的形式 被...