AI說書 - 從0開始 - 104 | 資料清洗一次教

閱讀時間約 7 分鐘

我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。


延續 AI說書 - 從0開始 - 103 所載入的資料集,現在要來進行資料前置處理,首先載入需要的依賴:

import pickle
from pickle import dump


接著定義一個載入文件的函數:

# load doc into memory
def load_doc(filename):
# open the file as read only
file = open(filename, mode = 'rt', encoding = 'utf-8')

# read all text
text = file.read()

# close the file
file.close()
return text


接著定義一個將文本分割為句子的函數:

# split a loaded document into sentences
def to_sentences(doc):
return doc.strip().split('\n')


再定義一個檢索句子長度的函數:

# shortest and longest sentence lengths
def sentence_lengths(sentences):
lengths = [len(s.split()) for s in sentences]
return min(lengths), max(lengths)


導入的句子必須進行清理,以避免訓練無用和噪音的標記,這些行將被正規化,在空白處進行標記化,並轉換為小寫,每個標記中的標點符號會被移除,不可顯示的字符會被去除,包含數字的標記會被排除,清理後的行將被存儲為字符串。

以下程式運行清理功能並返回清理後的附加字符串:

import re
import string
import unicodedata

def clean_lines(lines):
cleaned = list()

# prepare regex for char filtering
re_print = re.compile('[^%s]' % re.escape(string.printable))

# prepare translation table for removing punctuation
table = str.maketrans('', '', string.punctuation)

for line in lines:
# normalize unicode characters
line = unicodedata.normalize('NFD', line).encode('ascii', 'ignore')
line = line.decode('UTF-8')

# tokenize on white space
line = line.split()

# convert to lower case
line = [word.lower() for word in line]

# remove punctuation from each token
line = [word.translate(table) for word in line]

# remove non-printable chars from each token
line = [re_print.sub('', w) for w in line]

# remove tokens with numbers in them
line = [word for word in line if word.isalpha()]

# store as string
cleaned.append(' '.join(line))
return cleaned


註解說明為:

  1. re_print = re.compile('[^%s]' % re.escape(string.printable))
  • re:是 Python 中的正則表達式模組(re module)。
  • re.compile():這個函數用來編譯一個正則表達式模式,返回一個正則表達式對象,該對象可以用來匹配字符。
  • string.printable:這是Python標準庫string模組中的一個字符串,它包含所有的可打印字符(包括字母、數字、標點符號和空白字符)。
  • re.escape():這個函數會轉譯字符串中的所有非字母數字字符,這樣它們就可以在正則表達式中被安全地使用。
  • '[^%s]':這是一個正則表達式模式,表示匹配所有不在string.printable中的字符。[^...]是在正則表達式中表示“否定字符集”,即匹配任何不在方括號中的字符。


  1. table = str.maketrans('', '', string.punctuation)
  • str.maketrans(): 這是一個用於創建字符映射表的內建函數,這個映射表可以用來替換或刪除字符串中的字符。
  • str.maketrans()可以接受三個參數:

第一個參數是一個字符串,其中的每個字符將被替換為第二個參數中對應位置的字符。

第二個參數是一個字符串,包含將要替換第一個參數中字符的新字符。

第三個參數是一個字符串,包含要被刪除的字符。

  • 在這段代碼中,第一個參數和第二個參數都為空字符串,表示不進行替換操作,第三個參數為string.punctuation,它是一個包含所有標點符號的字符串,因此,str.maketrans('', '', string.punctuation)創建了一個映射表,用於刪除所有標點符號。


  1. line = unicodedata.normalize('NFD', line).encode('ascii', 'ignore')
  • unicodedata.normalize('NFD', line)unicodedata 是 Python 標準庫中的一個模組,用於處理Unicode字符數據,normalizeunicodedata 模組中的一個函數,用於將Unicode字符串正規化。'NFD' 是正規化形式之一,表示 "Normalization Form D"(分解正規化形式),將字符分解為基字符和組合字符。例如,將字符 "é" 分解為 "e" 和重音符。
  • .encode('ascii', 'ignore').encode('ascii', 'ignore') 將正規化後的字符串編碼為ASCII,並忽略所有非ASCII字符。'ascii' 表示將字符串轉換為ASCII編碼。'ignore' 是錯誤處理方案,表示忽略無法編碼的字符。


avatar-img
169會員
449內容數
這裡將提供: AI、Machine Learning、Deep Learning、Reinforcement Learning、Probabilistic Graphical Model的讀書筆記與演算法介紹,一起在未來AI的世界擁抱AI技術,不BI。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Learn AI 不 BI 的其他內容
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 施行 Universal Simulation Pattern (USP) 需要對角色、流程和場景結構
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 102 說要窺探 WMT 資料集,以下著手資料集下載程式: import urllib.request # Define the
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們把 AI說書 - Prompt Engineering - 55 和 AI說書 - Prompt E
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 原始 Transformer 架構的 Transduction Process 使用編碼器堆疊、解碼器堆疊而用所有模型參數來表示參考序列,我們將該輸出序列稱為參考。
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - Prompt Engineering - 55 中說:Universal Simul
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Vaswani 等人 2017 年解決了設計 Transformer 時最困難的 NLP 問題之一,對於我們人機智慧設計師來說,機器翻譯的人類基準似乎遙不可及,然而,這
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 施行 Universal Simulation Pattern (USP) 需要對角色、流程和場景結構
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 AI說書 - 從0開始 - 102 說要窺探 WMT 資料集,以下著手資料集下載程式: import urllib.request # Define the
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們把 AI說書 - Prompt Engineering - 55 和 AI說書 - Prompt E
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 原始 Transformer 架構的 Transduction Process 使用編碼器堆疊、解碼器堆疊而用所有模型參數來表示參考序列,我們將該輸出序列稱為參考。
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - Prompt Engineering - 55 中說:Universal Simul
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Vaswani 等人 2017 年解決了設計 Transformer 時最困難的 NLP 問題之一,對於我們人機智慧設計師來說,機器翻譯的人類基準似乎遙不可及,然而,這
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
序幕 又來到一年一度的年中的時刻了, 不免得要來復盤一下今年的軟體學習與開發上面有了哪些的進步與轉變, 很有意思的是今年加入了AI的元素, 其實早在去年我們就分享了一篇「【🔒 江湖一點訣】關於寫作,你不需要很厲害才開始,但你從現在開始就可以很厲害」, 裡面包含了我們長期累積的心得之外, 早就已經
Thumbnail
本文談及資料科學的領域與分工。首先是建造一個AI的研發流程,資料收集到 AI 模型訓練的過程,AI經歷這一切流程被創造出來並產生價值;再來本文也提及在這個領域中的各種腳色、資料工程師、數據庫工程師、資料科學家和資料分析師的各種介紹。並且強調跨領域合作的重要性。
https://www.youtube.com/watch?v=wjZofJX0v4M 這是我看過最好的AI科普影片了;現在流行的GPT使用的大語言模型 (large language model, LLM), 是把每一個單字都當作一個高維度向量 影片中GPT3共儲存50257個英文單字, 每
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
事前聲明: 我先說明我的筆記製作流程: 在YT下載 >> 生成逐字稿 >> 利用 AI 整理條列式筆記 >> 人工整理 我已經將逐字稿放上來分享在<<1+1罐罐 | 股癌筆記 + 股癌未校稿逐字稿>>,不過逐字稿多少會有錯,如果要使用請多注意。 <<1+1罐罐 | 股癌筆記 + 股癌未校稿逐
Thumbnail
AI 相關的內容每天都非常多,有聽過很多人因此感覺到焦慮,怕錯過了最新資訊就會趕不上,這篇內容會跟大家詳細的分享我自己的學習方法和經驗,並且會在最後分享一些我的學習資訊來源。
Thumbnail
本文介紹了作者如何將書籍章節中重要的知識進行條理化整理,並提出效率化閱讀的方法,適用於任何領域的知識學習。
Thumbnail
事前聲明: 我先說明我的筆記製作流程: 在YT下載 >> 生成逐字稿 >> 利用 AI 整理條列式筆記 >> 人工整理 之後我會考慮將逐字稿放上來分享,不過逐字稿多少會有錯,如果要使用請多注意。 ---------- 這是我固定每週會做的筆記,稍微紀錄有哪些投資事情可以紀錄,如果想要更清楚
Thumbnail
http://tinyurl.com/12000ai888 http://tinyurl.com/12000ai888 http://tinyurl.com/12000ai888
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
序幕 又來到一年一度的年中的時刻了, 不免得要來復盤一下今年的軟體學習與開發上面有了哪些的進步與轉變, 很有意思的是今年加入了AI的元素, 其實早在去年我們就分享了一篇「【🔒 江湖一點訣】關於寫作,你不需要很厲害才開始,但你從現在開始就可以很厲害」, 裡面包含了我們長期累積的心得之外, 早就已經
Thumbnail
本文談及資料科學的領域與分工。首先是建造一個AI的研發流程,資料收集到 AI 模型訓練的過程,AI經歷這一切流程被創造出來並產生價值;再來本文也提及在這個領域中的各種腳色、資料工程師、數據庫工程師、資料科學家和資料分析師的各種介紹。並且強調跨領域合作的重要性。
https://www.youtube.com/watch?v=wjZofJX0v4M 這是我看過最好的AI科普影片了;現在流行的GPT使用的大語言模型 (large language model, LLM), 是把每一個單字都當作一個高維度向量 影片中GPT3共儲存50257個英文單字, 每
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
事前聲明: 我先說明我的筆記製作流程: 在YT下載 >> 生成逐字稿 >> 利用 AI 整理條列式筆記 >> 人工整理 我已經將逐字稿放上來分享在<<1+1罐罐 | 股癌筆記 + 股癌未校稿逐字稿>>,不過逐字稿多少會有錯,如果要使用請多注意。 <<1+1罐罐 | 股癌筆記 + 股癌未校稿逐
Thumbnail
AI 相關的內容每天都非常多,有聽過很多人因此感覺到焦慮,怕錯過了最新資訊就會趕不上,這篇內容會跟大家詳細的分享我自己的學習方法和經驗,並且會在最後分享一些我的學習資訊來源。
Thumbnail
本文介紹了作者如何將書籍章節中重要的知識進行條理化整理,並提出效率化閱讀的方法,適用於任何領域的知識學習。
Thumbnail
事前聲明: 我先說明我的筆記製作流程: 在YT下載 >> 生成逐字稿 >> 利用 AI 整理條列式筆記 >> 人工整理 之後我會考慮將逐字稿放上來分享,不過逐字稿多少會有錯,如果要使用請多注意。 ---------- 這是我固定每週會做的筆記,稍微紀錄有哪些投資事情可以紀錄,如果想要更清楚
Thumbnail
http://tinyurl.com/12000ai888 http://tinyurl.com/12000ai888 http://tinyurl.com/12000ai888