一文搞懂Tokenization!
語言模型是對文字進行推理的,文字通常是字串形式,但模型的輸入只能是數字,因此需要將文字轉換成數字形式。
Tokenization是自然語言處理的基本任務,根據特定需求能夠把一段連續的文字序列(如句子、段落等)切分為一個字元序列(如單字、片語、字元、標點等多個單元),其中的單元稱為token或詞語。
根據下圖所示的具體流程,先將文字句子切分成一個個單元,然後將單元素數值化(映射為向量),再將這些向量輸入到模型進行編碼,最後輸出到下游任務進一步得到最終的結果。
文字切分
依照文字切分的粒度可以將Tokenization分為詞粒度Tokenization、字元粒度Tokenization、subword粒度Tokenization三類。
1.詞粒度Tokenization
詞粒度Tokenization是最直觀的分詞方式,即是指將文本依照詞彙words進行切分。例如:
The quick brown fox jumps over the lazy dog.词粒度Tokenized结果:['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog', '.']
在這個例子中,文字被切分為一個個獨立的單詞,每個單字作為一個token,標點符號'.'也被視為獨立的token 。
中文文本通常會根據照搬字典收錄的標準詞彙彙編或是透過分詞演算法辨識出的片語、成語、專有名詞等進行切分。
我喜欢吃苹果。词粒度Tokenized结果:['我', '喜欢', '吃', '苹果', '。']
這段中文文本被切分成五個詞語:“我”、“喜歡”、“吃”、“蘋果”和句號“。”,每個詞語作為一個token。
2.字元粒度Tokenization
字元粒度Tokenization將文字分割成最小的字元單元,即每個字元被視為單獨的token。例如:
Hello, world!字符粒度Tokenized结果:['H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!']
字元粒度Tokenization在中文中是將文字依照每個獨立的漢字切分。
我喜欢吃苹果。字符粒度Tokenized结果:['我', '喜', '欢', '吃', '苹', '果', '。']
3.subword粒度Tokenization
subword粒度Tokenization介於詞粒度和字元粒度之間,它將文字分割成介於單字和字元之間的子詞(subwords)作為token。常見的subword Tokenization方法包括Byte Pair Encoding (BPE)、WordPiece等。這些方法透過統計文字資料中的子字串頻率,自動產生一種分詞字典,能夠有效應對未登入詞(OOV)問題,同時保持一定的語意完整性。
helloworld
假設經過BPE演算法訓練後,產生的子詞字典包含以下項目:
h, e, l, o, w, r, d, hel, low, wor, orld
子字粒度Tokenized結果:
['hel', 'low', 'orld']
這裡,“helloworld”被切分為三個子詞“hel”,“low”,“orld”,這些都是字典中出現過的高頻子字串組合。這種切分方式既能處理未知詞彙(如「helloworld」並非標準英語單字),也保留了一定的語意訊息(子字組合起來能還原原始單字)。
在中文中,subword粒度Tokenization同樣是將文字分割成介於漢字和字詞之間的子字作為token。例如:
我喜欢吃苹果
假設經過BPE演算法訓練後,產生的子字詞詞典包含以下項目:
我, 喜, 欢, 吃, 苹, 果, 我喜欢, 吃苹果
子詞粒度Tokenized結果:
['我', '喜欢', '吃', '苹果']
在這個例子中,「我喜歡吃蘋果」被切分為四個子詞“我”、“喜歡”、“吃”和“蘋果”,這些子詞均在字典中出現。雖然沒有像英文子詞那樣將漢字進一步組合,但子詞Tokenization方法在生成詞典時已經考慮了高頻詞彙組合,例如“我喜歡”和“吃蘋果”。這種切分方式在處理未知詞彙的同時,也維持了字詞層次的語意訊息。
索引化
假設已有建立好的語料庫或詞彙表如下。
vocabulary = {'我': 0,'喜欢': 1,'吃': 2,'苹果': 3,'。': 4}
則可以找出序列中每個token在詞彙表中的索引。
indexed_tokens = [vocabulary[token] for token in token_sequence]print(indexed_tokens)
輸出:[0, 1, 2, 3, 4]。
以上是一文搞懂Tokenization!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

本文介紹如何在Debian系統上自定義Apache的日誌格式。以下步驟將指導您完成配置過程:第一步:訪問Apache配置文件Debian系統的Apache主配置文件通常位於/etc/apache2/apache2.conf或/etc/apache2/httpd.conf。使用以下命令以root權限打開配置文件:sudonano/etc/apache2/apache2.conf或sudonano/etc/apache2/httpd.conf第二步:定義自定義日誌格式找到或

Tomcat日誌是診斷內存洩漏問題的關鍵。通過分析Tomcat日誌,您可以深入了解內存使用情況和垃圾回收(GC)行為,從而有效定位和解決內存洩漏。以下是如何利用Tomcat日誌排查內存洩漏:1.GC日誌分析首先,啟用詳細的GC日誌記錄。在Tomcat啟動參數中添加以下JVM選項:-XX: PrintGCDetails-XX: PrintGCDateStamps-Xloggc:gc.log這些參數會生成詳細的GC日誌(gc.log),包含GC類型、回收對像大小和時間等信息。分析gc.log

在Debian系統中,readdir函數用於讀取目錄內容,但其返回的順序並非預先定義的。要對目錄中的文件進行排序,需要先讀取所有文件,再利用qsort函數進行排序。以下代碼演示瞭如何在Debian系統中使用readdir和qsort對目錄文件進行排序:#include#include#include#include//自定義比較函數,用於qsortintcompare(constvoid*a,constvoid*b){returnstrcmp(*(

本文介紹如何在Debian系統中使用iptables或ufw配置防火牆規則,並利用Syslog記錄防火牆活動。方法一:使用iptablesiptables是Debian系統中功能強大的命令行防火牆工具。查看現有規則:使用以下命令查看當前的iptables規則:sudoiptables-L-n-v允許特定IP訪問:例如,允許IP地址192.168.1.100訪問80端口:sudoiptables-AINPUT-ptcp--dport80-s192.16

Debian系統中,Nginx的訪問日誌和錯誤日誌默認存儲位置如下:訪問日誌(accesslog):/var/log/nginx/access.log錯誤日誌(errorlog):/var/log/nginx/error.log以上路徑是標準DebianNginx安裝的默認配置。如果您在安裝過程中修改過日誌文件存放位置,請檢查您的Nginx配置文件(通常位於/etc/nginx/nginx.conf或/etc/nginx/sites-available/目錄下)。在配置文件中

在Debian系統中,readdir系統調用用於讀取目錄內容。如果其性能表現不佳,可嘗試以下優化策略:精簡目錄文件數量:盡可能將大型目錄拆分成多個小型目錄,降低每次readdir調用處理的項目數量。啟用目錄內容緩存:構建緩存機制,定期或在目錄內容變更時更新緩存,減少對readdir的頻繁調用。內存緩存(如Memcached或Redis)或本地緩存(如文件或數據庫)均可考慮。採用高效數據結構:如果自行實現目錄遍歷,選擇更高效的數據結構(例如哈希表而非線性搜索)存儲和訪問目錄信

在Debian郵件服務器上安裝SSL證書的步驟如下:1.安裝OpenSSL工具包首先,確保你的系統上已經安裝了OpenSSL工具包。如果沒有安裝,可以使用以下命令進行安裝:sudoapt-getupdatesudoapt-getinstallopenssl2.生成私鑰和證書請求接下來,使用OpenSSL生成一個2048位的RSA私鑰和一個證書請求(CSR):openss

配置Debian郵件服務器的防火牆是確保服務器安全性的重要步驟。以下是幾種常用的防火牆配置方法,包括iptables和firewalld的使用。使用iptables配置防火牆安裝iptables(如果尚未安裝):sudoapt-getupdatesudoapt-getinstalliptables查看當前iptables規則:sudoiptables-L配置
