C006|如何編寫一個完整的Python符元化類 Tokenizer Class?

閱讀時間約 4 分鐘

在Python中,


要寫一個完整的「符元化類 Tokenizer Class」,


這個Class需要的功能有:


1.「編碼 Encode」:將「文本 Text」分割成「符元 Token」。

2.「詞彙 Vocabulary」:將「符元 Token」映射到「符元ID TokenID」的「文本對整數映射 String-to-Integer Mapping」

3.「解碼 Decode」:將「符元ID TokenID」轉換為「文本 Text」的「整數對文本映射 Integer-to-String Mapping」


如此,


就完成了「文本 Text」--> 「符元 Token」--> 「符元ID TokenID」--> 「文本 Text」的循環,


這就是為什麼訓練資料中的文本,


可以透過GPT的結構,轉回AI生成的文本的整個循環。


具體的Python code如:

```python

class SimpleTokenizerV1:

def __init__(self, vocab):

self.str_to_int = vocab

self.int_to_str = {i:s for s,i in vocab.items()}

def encode(self, text):

preprocessed = re.split(r'([,.?_!"()\']|--|\s)', text)

preprocessed = [

item.strip() for item in preprocessed if item.strip()

]

ids = [self.str_to_int[s] for s in preprocessed]

return ids

def decode(self, ids):

text = " ".join([self.int_to_str[i] for i in ids])

# Replace spaces before the specified punctuations

text = re.sub(r'\s+([,.?!"()\'])', r'\1', text)

return text

```


可以看到,在`SimpleTokenizerV1`這個類的「構建子 Constructor」,


設置了「文本到整數」的映射,是輸入的「詞彙 Vocabulary」,


也設置了「整數到文本」的映射,是透過查詢「詞彙 Vocabulary」來轉回文本。


而「編碼函數 def encode」將輸入的文本先切成一個一個的「符元 Token」,


接著透過詞彙來查這些Token的ID。


而「解碼函數 def decode」將給定的一串「符元 ID Token ID」,


也是透過詞彙來轉回文本。


實際使用的例子,看起來會像是


```python

tokenizer = SimpleTokenizerV1(vocab)

text = """"It's the last he painted, you know,"

Mrs. Gisburn said with pardonable pride."""

ids = tokenizer.encode(text)

print(ids)

```

則會得到一串Token ID

```

[1, 56, 2, 850, 988, 602, 533, 746, 5, 1126, 596, 5, 1, 67, 7, 38, 851, 1108, 754, 793, 7]

```

而這串Token ID 可以透過Decoder再轉回文本

```

tokenizer.decode(ids)

```

得到結果

```

'" It\' s the last he painted, you know," Mrs. Gisburn said with pardonable pride.'

```


如此,有足夠豐富的Vocabulary,就能各種文本都能學習與產生。

avatar-img
443會員
1.6K內容數
Outline as Content
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
王啟樺的沙龍 的其他內容
2024年6月9日星期日, 這個週末我調整了一個GPTs, 幫助我將500-1000字的英文文章, 逐句翻譯, 並根據內文結構標記副標題。 這大大的改變我閱讀原文書的方式。 雖然來美國已經要滿七年, 但對於那種300頁, 美國作者寫的nonfictio
在洛杉磯這座繁忙的城市裡,通勤往往需要花費不少時間。即便是從家裡到UCLA這短短的40-50分鐘,也可以充分利用起來,提高一天的效率。以下是一些具體的方法,幫助你充分利用這段時間。 ▋利用零碎時間 在等待公車的3-10分鐘,我會用Day One Journal App錄音,記錄當下的想法
到了美國這個多元文化的社會後, 我深深的感覺到1990-2000出生的, 我這一代的台灣人, 其文化累積非常日本。 我這一代的台灣男生成長的過程裡, 國小看的是日本動畫, 如海賊王,神奇寶貝,數碼寶貝, 玩的是神奇寶貝紅寶石藍寶石版。 國中看的還是日本
對於像我這樣在職涯過程中沒花太多時間找工作的人來說, 這篇文章可能會讓你受益。 你將學到如何在每個職涯轉折點上, 利用正確的心態, 實現順利過渡和成功。 以下是我在職涯中不斷重生的3個關鍵心態。 ▋心態1 - 接受挑戰並勇於歸零 回顧我的學習和工作經歷,
為了將輸入文本轉換成深度學習模型可以使用的嵌入向量, 我們需要先將「輸入文本 Input Text」轉為「符元化文本 Tokenized Text」。 而實際上「符元化文本 Tokenized Text」與「嵌入向量 Embedding Vector」之間, 還有一個步驟稱為「符元
記得我在碩二的時候看Paper, 都會想說這些Paper好強, 怎麼都有這麼「新穎的點子」! 後來我發現,點子是不是真的新, 你需要去問一個很關鍵的問題: 「這個點子,是對你的知識面很新, 還是說對整個領域來說很新?」 如果是對你的知識面很新, 那你要
2024年6月9日星期日, 這個週末我調整了一個GPTs, 幫助我將500-1000字的英文文章, 逐句翻譯, 並根據內文結構標記副標題。 這大大的改變我閱讀原文書的方式。 雖然來美國已經要滿七年, 但對於那種300頁, 美國作者寫的nonfictio
在洛杉磯這座繁忙的城市裡,通勤往往需要花費不少時間。即便是從家裡到UCLA這短短的40-50分鐘,也可以充分利用起來,提高一天的效率。以下是一些具體的方法,幫助你充分利用這段時間。 ▋利用零碎時間 在等待公車的3-10分鐘,我會用Day One Journal App錄音,記錄當下的想法
到了美國這個多元文化的社會後, 我深深的感覺到1990-2000出生的, 我這一代的台灣人, 其文化累積非常日本。 我這一代的台灣男生成長的過程裡, 國小看的是日本動畫, 如海賊王,神奇寶貝,數碼寶貝, 玩的是神奇寶貝紅寶石藍寶石版。 國中看的還是日本
對於像我這樣在職涯過程中沒花太多時間找工作的人來說, 這篇文章可能會讓你受益。 你將學到如何在每個職涯轉折點上, 利用正確的心態, 實現順利過渡和成功。 以下是我在職涯中不斷重生的3個關鍵心態。 ▋心態1 - 接受挑戰並勇於歸零 回顧我的學習和工作經歷,
為了將輸入文本轉換成深度學習模型可以使用的嵌入向量, 我們需要先將「輸入文本 Input Text」轉為「符元化文本 Tokenized Text」。 而實際上「符元化文本 Tokenized Text」與「嵌入向量 Embedding Vector」之間, 還有一個步驟稱為「符元
記得我在碩二的時候看Paper, 都會想說這些Paper好強, 怎麼都有這麼「新穎的點子」! 後來我發現,點子是不是真的新, 你需要去問一個很關鍵的問題: 「這個點子,是對你的知識面很新, 還是說對整個領域來說很新?」 如果是對你的知識面很新, 那你要
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
照夜白/圖 貓落/文 一場廢盡千辛萬苦的圖文集 --《漠視錄》 《C.A.G.E》 別看了 是嗎.. 像是牢籠嗎? 如何向內擁抱都有個極限 最後會停在 自身 一個 單位 太多了已經
C 台灣的新創團隊 如果想要使用以太坊技術 來營利同時做公益慈善 可以發展那些專案 #VitalikButerin #ETHTaipei2024 #ETHTaipeiHackathon2024 ... (好的顧問導師教練 協助妳提早得到幸福 更快實現夢想 幸福課程
C如何找到和確認誰是真正該被幫助的善良弱勢? 如何找到和確認真正在做對的事的公益慈善? 如何查核公益慈善的正職和志工 避免有用善心的人做的很累 混水摸魚的卻可以領到薪水拿到時數證明? 幸福教練黃老師 潮資訊媒體 找到和確認真正需要幫助的善良弱勢 以及評估公益慈善的正確性和透明
Thumbnail
c女生在高中 高職 大學 如果想參加各種科技新創 社會創新 永續設計等等相關比賽 應該主動學習和培養 哪些知識和技能 幸福教練黃老師 潮資訊媒體 參加科技新創、社會創新以及永續設計等相關比賽, 女生在高中或高職階段 可以主動學習和培養以下知識和技能: 程式設計和編程
Thumbnail
C型肝炎是由C型肝炎病毒感染引起的疾病,常見症狀包括疲倦、食慾不振、噁心、腹部不適等。文章介紹了C型肝炎的傳染方式、感染風險族群以及預防方法。此外,也提供了西醫和中醫對C型肝炎的治療方法和常用中藥的介紹。
Thumbnail
C怎麼填詞 才能夠 更有畫面感 更有故事性 更能夠引起共鳴 更能朗朗上口 更有機會得金曲獎 更有機會得金馬獎 更有機會得葛萊美獎 幸福課程 幸福教練黃老師 潮資訊媒體 社群編輯 填詞是一門藝術, 需要結合文學、音樂感和表達力。 以下是一些建議, 讓妳的歌詞作更有
Thumbnail
當我的自營工作室客源開始穩定時,C就這樣悄悄走進我的生命裡,至今為止,我和C從來沒有吵架過,連一點點的不愉快、疙瘩甚至懷疑都沒有,對我而言,C的意義只有美好。她總是希望我過得好,我也祝福她永遠快樂。     我的租屋處是一棟由五樓透天隔間的大套房,而我就住在頂樓,旁邊還有一間空房一直沒人承租
Thumbnail
發洩完情緒之後,內心裡,總會有一種抒坦。是那種放下的感覺,是那種,什麼都好,都可以不重要,只有自己的那種,唯我獨尊的快感。可以不必再在意些什麼,不必再掙扎著去要求些什麼。唯有放寛心了,才能更真實去體驗自己正在經歷的過程。放下些什麼,才能獲得些什麼。 昨晚,C因為工作無法前來陪伴休假的我。經前症候群嚴
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
照夜白/圖 貓落/文 一場廢盡千辛萬苦的圖文集 --《漠視錄》 《C.A.G.E》 別看了 是嗎.. 像是牢籠嗎? 如何向內擁抱都有個極限 最後會停在 自身 一個 單位 太多了已經
C 台灣的新創團隊 如果想要使用以太坊技術 來營利同時做公益慈善 可以發展那些專案 #VitalikButerin #ETHTaipei2024 #ETHTaipeiHackathon2024 ... (好的顧問導師教練 協助妳提早得到幸福 更快實現夢想 幸福課程
C如何找到和確認誰是真正該被幫助的善良弱勢? 如何找到和確認真正在做對的事的公益慈善? 如何查核公益慈善的正職和志工 避免有用善心的人做的很累 混水摸魚的卻可以領到薪水拿到時數證明? 幸福教練黃老師 潮資訊媒體 找到和確認真正需要幫助的善良弱勢 以及評估公益慈善的正確性和透明
Thumbnail
c女生在高中 高職 大學 如果想參加各種科技新創 社會創新 永續設計等等相關比賽 應該主動學習和培養 哪些知識和技能 幸福教練黃老師 潮資訊媒體 參加科技新創、社會創新以及永續設計等相關比賽, 女生在高中或高職階段 可以主動學習和培養以下知識和技能: 程式設計和編程
Thumbnail
C型肝炎是由C型肝炎病毒感染引起的疾病,常見症狀包括疲倦、食慾不振、噁心、腹部不適等。文章介紹了C型肝炎的傳染方式、感染風險族群以及預防方法。此外,也提供了西醫和中醫對C型肝炎的治療方法和常用中藥的介紹。
Thumbnail
C怎麼填詞 才能夠 更有畫面感 更有故事性 更能夠引起共鳴 更能朗朗上口 更有機會得金曲獎 更有機會得金馬獎 更有機會得葛萊美獎 幸福課程 幸福教練黃老師 潮資訊媒體 社群編輯 填詞是一門藝術, 需要結合文學、音樂感和表達力。 以下是一些建議, 讓妳的歌詞作更有
Thumbnail
當我的自營工作室客源開始穩定時,C就這樣悄悄走進我的生命裡,至今為止,我和C從來沒有吵架過,連一點點的不愉快、疙瘩甚至懷疑都沒有,對我而言,C的意義只有美好。她總是希望我過得好,我也祝福她永遠快樂。     我的租屋處是一棟由五樓透天隔間的大套房,而我就住在頂樓,旁邊還有一間空房一直沒人承租
Thumbnail
發洩完情緒之後,內心裡,總會有一種抒坦。是那種放下的感覺,是那種,什麼都好,都可以不重要,只有自己的那種,唯我獨尊的快感。可以不必再在意些什麼,不必再掙扎著去要求些什麼。唯有放寛心了,才能更真實去體驗自己正在經歷的過程。放下些什麼,才能獲得些什麼。 昨晚,C因為工作無法前來陪伴休假的我。經前症候群嚴