:::

Python中文自然語言處理動手玩 / Learning Natural Language Processing with Python

7月 05, 2023 , , , 0 Comments Edit Copy Download

2023-0705-100755.png

這是之前演講投影片「Python中文自然語言處理動手玩」,以及投影片內使用的軟體與實作的連結。這份投影片除了講述自然語言處理的基本概念之外,也可以在Colab上使用Python來實作自然語言處理。


介紹 / Introduction

-_22_blog.png

以往的自然語言處理(Natural Language Processing, NLP)通常必先基於大量的文本資料與冗長的處理過程,而現代最新技術則是結合預訓練模型來降低自然語言處理的技術門檻,並有效提升自然語言處理的正確率與應用範圍,使得文本分群(Text Corpus Clustering)、問答系統(Question Answering, QA)等應用更具實用價值。本演講將介紹在自然語言處理中運用Google最新的預訓練模型Universal Sentence Encoder的原理與流程,並安排在Python環境下的文本分群與問答系統兩種應用的實機操作,讓學生透過實際動手學習現代最新的自然語言處理技術。

投影片 / Slide


大綱 / Outline

  • 自然語言處理基本概念
  • 語義向量 (Embedding)
  • 語義向量實作
  • 分類應用:問答判斷
  • 實作:設計問答資料集
  • 分群應用
  • 實作:用Python實作分群
  • 結語

教材 / Materials

LibreOffice

image12.png

最自由的辦公室軟體。支援Linux、Mac與Windows。因為Excel預設編碼是Big5,資料科學專家都會選擇預設使用Unicode的LibreOffice Calc。

Sentence Encoder

image17.png

不用寫程式就能抽取語義向量。純前端的教學示範工具。

問答形式資料集:問水果店還是寵物店 / Q&A Dataset: Fruit shop or pet shop?

image13.png

自然語言處理監督式的例子。LibreOffice Calc格式。能夠讓人工智慧看懂問題,並回答合適答案嗎?

問答資料集設計:參考來源 / Reference to Q&A

-_22_nsysu-cropped.png

未知分類資料集:問水果店還是寵物店 / Unknown dataset: Fruit shop or pet shop?

image13.png

  • ODS格式下載:https://docs.google.com/spreadsheets/d/1yvmo1CmuIbYoEseuLlsoTcbxt7CUhj5cTY6O_dvPKrc/export?format=ods
  • Google試算表線上預覽:https://docs.google.com/spreadsheets/d/1yvmo1CmuIbYoEseuLlsoTcbxt7CUhj5cTY6O_dvPKrc/edit?usp=sharing

自然語言處理監督式的例子。LibreOffice Calc格式。能夠讓人工智慧看懂問題,並回答合適答案嗎?

Google Colab / Google Colab

image15.png

直接從瀏覽器就能執行。學習Python的最佳環境。使用Python實作自動分群。


參考文獻 / Reference

  • Barry, P.(2011)。深入淺出 Python(蔣大偉譯)。台灣:歐萊禮。(ISBN:978-986-276-348-3)
  • Bird, S.、Klein, E.、Loper, E.(2014)。Python自然语言处理(陈涛譯)。北京:人民邮电出版社。(ISBN:978-7-115-33368-1)
  • TensorFlow Hub. (2021). Retrieved March 21, 2021, from https://tensorflow.google.cn/hub?hl=zh-tw 

結語 / In closing

這份是我開始將Colab納入教學的開始。剛開始對Colab真的還有很多不瞭解的地方,到現在已經在Colab跑Docker了(?)。

https://github.com/tensorflow/tfjs-models/blob/master/universal-sentence-encoder/README.md

https://github.com/tensorflow/tfjs-models/blob/master/universal-sentence-encoder/README.md 

這份教學另一個目標是用Sentence Encoder完成純JavaScript跑深度學習Universal Sentence Encoder的功能。沒錯,不是Python、不是R,純粹用瀏覽器運作的JavaScript也能跑Universal Sentence Encoder。這是使用了TensorFlow.js的實作結果,大致上的思維來自於Universal Sentence Encoder lite這篇的說明。後來我也把Universal Sentence Encoder的功能結合到Simple Text Analyzer,我們可以用它學習斷詞和語義向量的差異。

不過話說回來,用瀏覽器跑深度學習,終究只是教學演示用而已。只要資料量一大,瀏覽器就會跑到當機。最終還是要使用其他更有效率程式語言來進行才行。這是使用上需要注意的問題。


最後要問大家的是:說到自然語言處理應用,你會想到什麼呢?

  • 1. 生成式AI:ChatGPT大老師教我寫論文。
  • 2. 問答分類。
  • 3. 分群整理。
  • 4. 其他。

歡迎在下面留言喔!