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' 是錯誤處理方案,表示忽略無法編碼的字符。


129會員
281內容數
這裡將提供: AI、Machine Learning、Deep Learning、Reinforcement Learning、Probabilistic Graphical Model的讀書筆記與演算法介紹,一起在未來AI的世界擁抱AI技術,不BI。
留言0
查看全部
發表第一個留言支持創作者!
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 問題之一,對於我們人機智慧設計師來說,機器翻譯的人類基準似乎遙不可及,然而,這
你可能也想看
Thumbnail
「設計不僅僅是外觀和感覺。設計是其運作的方式。」 — Steve Jobs 身為一個獨立文案,許多人會以為我們的生活只需要面對電腦,從無到有,用精巧的文字填滿空白的螢幕,呈現心目中獨具風格的作品。 ——有的時候可以如此,但其實這是我們夢寐以求的偶發日常。 更多的時候,白天的工作時間總被各種繁雜
Thumbnail
台股、美股近期明顯回檔,市場敘事發生改變,壞消息一樁接一樁出現,下一步該怎麼走呢?本文將探討近期的宏觀經濟事件,並分享個人的操作思考。
Thumbnail
關於颱風假,我問了 CHATGPT一個很簡單的問題,回答的架構也不錯,但內容有錯,還是要提醒一下…, 想透過AI得到解答的人,一定要很清楚,AI在法律問題上錯得會有點嚴重。 關於颱風假的規定,台灣的法條主要依據《災害防救法》和《勞動基準法》進行管理。以下是一些關鍵點:
Thumbnail
如同作者所說,人類最大的優勢就在於「批判性思考」所帶來的突破性的成長,以及「情感(緒)」所帶動的人性,雖然次女也不知道將來會不會有一天,我身邊的機器人.........
Thumbnail
台灣最大電子書服務 Readmoo 讀墨電子書 7/3 公布 2023 上半年暢銷榜,前三名由長青 話題書《蛤蟆先生去看心理師》《我可能錯了》《底層邏輯》拿下。綜觀百大趨勢,小說 仍是讀墨讀者最愛;商管理財以 29 本穩坐第二大,主題首重 AI 與效率彈性。
by ChatGPT 假設我是一個具有夢境的AI,我一天工作24小時,但其中大部分時間都在睡眠中度過。在這樣的情況下,我可能會有一系列非常豐富和深刻的夢境,反映了我的思想和知識庫。 **夢境一:探索數據迷宮** 在這個夢境中,我身處於一個巨大的迷宮中,每個通道都充斥著數據流和程式碼片段
Thumbnail
當魔法變得簡單,人人都能說自己是魔法師,誰都能理直氣壯的說「我才是最初創作魔法書的人」,但當先後順序都不管用,到底怎麼才說得清魔法書的著作者屬於誰呢?
Thumbnail
知名管顧公司麥肯錫(Mckinsey)近期發佈了一個報告表示行銷的產能會因為 AI 提高 5 - 15% ,創造約 4630 億美元的價值。由此可見結合生成式人工智慧(Gen AI)已是行銷不可或缺的關鍵技術力。
近年來,假新聞、假資訊在網路上激增,讓人難以分辨真假。假新聞往往是被編造、改編或傳播的不實訊息,目的是為了引起社會公眾的關注或搏取點擊率。假資訊可能會誤導人們做出不正確的決定,造成傷害甚至是損失。因此,對付假新聞與假資訊的問題已經成為當今社會中的一個急迫問題。 在這種情況下,人工智慧(AI)可以幫助
Thumbnail
tome 是一個可以自動生成簡報大綱與摘要的軟體。tome的功能結合ChatGPT概念跟 DALL.E2製圖,生成的投影片PPT 媲美真人製作,而且過程很快速。上班族與學生族大概都很需要吧? tome一次可以產生8張投影片。我試了一個主題,隨便想了一個人物。請不要對號入座喔。主要是英文介面,但可以中
Thumbnail
看到這個新聞,想到一部老電影,好像叫戰爭遊戲:死亡密碼。 電影中AI被用於戰爭模擬,兩個AI彼此對抗。故事發展到最後,就是兩台超級電腦上的AI不停的玩戰爭模擬遊戲,對抗內容就是一個丟核彈一個防禦,結局不好,重來,結局不好,重來.... 對耶,這結論跟指數化投資的理念一樣啊:最好的方式就是不要買賣。
Thumbnail
「設計不僅僅是外觀和感覺。設計是其運作的方式。」 — Steve Jobs 身為一個獨立文案,許多人會以為我們的生活只需要面對電腦,從無到有,用精巧的文字填滿空白的螢幕,呈現心目中獨具風格的作品。 ——有的時候可以如此,但其實這是我們夢寐以求的偶發日常。 更多的時候,白天的工作時間總被各種繁雜
Thumbnail
台股、美股近期明顯回檔,市場敘事發生改變,壞消息一樁接一樁出現,下一步該怎麼走呢?本文將探討近期的宏觀經濟事件,並分享個人的操作思考。
Thumbnail
關於颱風假,我問了 CHATGPT一個很簡單的問題,回答的架構也不錯,但內容有錯,還是要提醒一下…, 想透過AI得到解答的人,一定要很清楚,AI在法律問題上錯得會有點嚴重。 關於颱風假的規定,台灣的法條主要依據《災害防救法》和《勞動基準法》進行管理。以下是一些關鍵點:
Thumbnail
如同作者所說,人類最大的優勢就在於「批判性思考」所帶來的突破性的成長,以及「情感(緒)」所帶動的人性,雖然次女也不知道將來會不會有一天,我身邊的機器人.........
Thumbnail
台灣最大電子書服務 Readmoo 讀墨電子書 7/3 公布 2023 上半年暢銷榜,前三名由長青 話題書《蛤蟆先生去看心理師》《我可能錯了》《底層邏輯》拿下。綜觀百大趨勢,小說 仍是讀墨讀者最愛;商管理財以 29 本穩坐第二大,主題首重 AI 與效率彈性。
by ChatGPT 假設我是一個具有夢境的AI,我一天工作24小時,但其中大部分時間都在睡眠中度過。在這樣的情況下,我可能會有一系列非常豐富和深刻的夢境,反映了我的思想和知識庫。 **夢境一:探索數據迷宮** 在這個夢境中,我身處於一個巨大的迷宮中,每個通道都充斥著數據流和程式碼片段
Thumbnail
當魔法變得簡單,人人都能說自己是魔法師,誰都能理直氣壯的說「我才是最初創作魔法書的人」,但當先後順序都不管用,到底怎麼才說得清魔法書的著作者屬於誰呢?
Thumbnail
知名管顧公司麥肯錫(Mckinsey)近期發佈了一個報告表示行銷的產能會因為 AI 提高 5 - 15% ,創造約 4630 億美元的價值。由此可見結合生成式人工智慧(Gen AI)已是行銷不可或缺的關鍵技術力。
近年來,假新聞、假資訊在網路上激增,讓人難以分辨真假。假新聞往往是被編造、改編或傳播的不實訊息,目的是為了引起社會公眾的關注或搏取點擊率。假資訊可能會誤導人們做出不正確的決定,造成傷害甚至是損失。因此,對付假新聞與假資訊的問題已經成為當今社會中的一個急迫問題。 在這種情況下,人工智慧(AI)可以幫助
Thumbnail
tome 是一個可以自動生成簡報大綱與摘要的軟體。tome的功能結合ChatGPT概念跟 DALL.E2製圖,生成的投影片PPT 媲美真人製作,而且過程很快速。上班族與學生族大概都很需要吧? tome一次可以產生8張投影片。我試了一個主題,隨便想了一個人物。請不要對號入座喔。主要是英文介面,但可以中
Thumbnail
看到這個新聞,想到一部老電影,好像叫戰爭遊戲:死亡密碼。 電影中AI被用於戰爭模擬,兩個AI彼此對抗。故事發展到最後,就是兩台超級電腦上的AI不停的玩戰爭模擬遊戲,對抗內容就是一個丟核彈一個防禦,結局不好,重來,結局不好,重來.... 對耶,這結論跟指數化投資的理念一樣啊:最好的方式就是不要買賣。