Skip to content

Latest commit

 

History

80 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

python_nlp

Python 自然語言處理講義與範例

提問

  • 通則
    • 「結業前」可提問、討論,要把多餘時間和資源,留給當前上課的學員。
  • 寫信
    • E-mail: darren@darreninfo.cc
    • 信件標題寫上你的班別和姓名,或是在哪裡參與我的課程,例如 [資展 BDSEXX / 臺大計中 / 聯成] 你的主旨 ○○○。
    • 提問的內容要與本專案有關,其它課程的部分,去請益原本授課的老師。
    • 不要把程式碼寄給我,可能沒時間看,討論儘量以解決問題的方向為主。
    • 不符合以上幾點,將直接刪除,敬請見諒。

作業

  • 僅限授課學員。
  • 同學之間可以互相討論,但千萬不要抄襲。
  • 作業有 3 個:
    • 微調 BERT,建立多元分類模型
      • 修改 bert_finetue 的範例,從二元分類,改成多元分類,使用的資料集如下:
      • Datasets:Johnson8187/Chinese_Multi-Emotion_Dialogue_Dataset
      • 下載資料集的方法:
        • 按下頁面右邊的 Use this dataset,然後選擇合適的 library,例如 pandas,然後複製官方提供的範例。
        • 按下 Files and versions,裡面有 data.csv,按下 Download file (一個下載的 icon),可以直接另存新檔到硬碟當中。
      • 訓練資料的 label 是文字,但微調時只能使用整數 0, 1, 2, 3, ... 等數值型態,需要進行轉換。
      • 預測以下文字,並且輸出預測的結果,以及 score (confidence,取得小數點後面第 4 位):
      texts = [
          "我每天都能跟她一起上學,我好開心!",
          "最好的朋友要離開臺灣了,以後可能不容易再見面...",
          "我覺得我快不行了...",
          "剛剛收到研究所錄取的通知書!",
          "今年的冬天好像比較晚來。"
      ]
      
      • 範例:
      他們兩個竟然牽手了! => 驚奇語調 (0.9168)
      有人在背後說我胖!幹! => 憤怒語調 (0.9527)
      我媽終於要讓我養狗了 => 開心語調 (0.8216)
      ...
      
      output/ (這裡放置你微調後的模型,不需要包括 checkpoint-* 資料夾,選擇 Best Model)
      其它 .py 程式
      README.md
      
      # 中文句子情緒分類
      
      ## 訓練資料來源
      - [Datasets:Johnson8187/Chinese_Multi-Emotion_Dialogue_Dataset](https://huggingface.co/datasets/Johnson8187/Chinese_Multi-Emotion_Dialogue_Dataset)
      
      ## 基礎模型
      - [google-bert/bert-base-chinese](https://huggingface.co/google-bert/bert-base-chinese)
      
      ## 安裝套件
      - torch (版本號)
      - torchvision (版本號)
      - torchaudio (版本號)
      - transformers (版本號)
      - datasets (版本號)
      - evaluate (版本號)
      - accelerate (版本號)
      - scikit-learn (版本號)
      (版本號可用 pip list,或是 conda list 來檢視)
      ...
      
      ## 說明
      (介紹你微調後的模型,主要用來做什麼的,例如你使用模型進行情緒分類,分成幾類…等等,再放上作業要求的 texts 預測結果,自由發揮)
      
      ## 執行方法
      python XXX.py
      python XXX.py
      python XXX.py
      ...
      
      ## 成果
      ![](執行過程的擷圖或說明圖片)
      ...
      [影片名稱或其它標題](你的影片連結)
      ...
      
      ## 其它你想要補充標題和內容
      ...
      ...
    • 微調從 Huggingface 下載的語言模型,建立可以多輪對話的「土味情話」或「幽默笑話」專家
      • system prompt 類似 你是一個情話高手,你會以親切、溫和的口吻來回答使用者的問題。,可依情境自訂。
      • 多輪對話的範例(至少 2 輪):
      你:教我如何透過長相來認識女性朋友。
      專家:你就跟他說「你長得很像我一個朋友」。
      你:長得像你朋友?
      專家:沒錯,跟她說「你長得像我下一任女朋友」。
      你:那如果她問「你上一任女朋友呢?」
      專家:你可以跟她說「前任從缺,下一任只正取一名」。
      你:那如果她問「所以很多人報名嗎?」
      專家:你就回答「目前採單獨招生,看到妳之後就停止收件」。
      你:那如果她說「我又沒說要報名?」
      專家:你就說「沒關係,我只是先把錄取通知準備好」。
      
      • 語料(corpus)可以跟 ChatGPT/Claude/Gemini/Grok 等 AI 平台不斷討論來取得,再整理成多輪對話的訓練語料,也可以上網查詢或是從 YouTube 影片中抽取
      • 要建立 github repository,同時 READMD.md 也要完整說明。
    • 透過 RAG 建立健康諮詢小幫手
      • 資料庫的資料表,至少要有 流水號、新聞標題、新聞連結、文章全文、文章摘要、文章新增時間,可自行決定內容的豐富程度。
      • 請使用網路爬蟲技術,取得 健康醫療網 的 新聞分類 資料。
      • 文章摘要 可以先將 新聞標題 跟 文章全文 字串合併,然後透過 地端模型 來產生 文章摘要,字數不限。
      • 將 文章摘要 轉換成 向量,儲存成 向量索引。
      • 整合 地端模型 來建立 問答系統,系統以網頁形式展示,可以有 checkbox 來決定多輪對話是否進行檢索。
      • 詢問 2 個不同的問題(與你取得的新聞資料有關),最後請系統將剛才詢問的問題,整理成重點後回答我們。
      • 每次 地端模型 回答完問題的時候,都要附上它檢索的 新聞標題、新聞連結、文章新增時間,放在回覆的後面,以條列的方式呈現。
      • 要建立 github repository,同時 READMD.md 也要完整說明。
  • 作業的 github repository 連結 要寄給我。
  • 繳交時間
    • 原則上最後一堂課結束後 3 週內,準確時間上課說明。

About

自然語言處理

Resources

Stars

20 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages