我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。
回顧目前手上有的素材:
接著將 Tokens 轉為小寫,目的是減少詞彙表中 Token 的數量,例如,「Talking」和「talking」在該策略中是重複的。
詞形還原會將單字縮減為其基本形式以保留語義意義,例如,「Running」將變成「Run」,在這種方法中,後綴「ing」將不會成為詞彙的一部分。
Stop Words 是會被過濾掉的常見詞,例如「and」和「the」,是否選擇過濾 Stop Words 取決於每個專案。
nltk.download('wordnet')
nltk.download('stopwords')
from nltk.corpus import stopwords
from nltk.stem import WordNetLemmatizer
import string
stop_words = set(stopwords.words('english'))
lemmatizer = WordNetLemmatizer()
tokens = [lemmatizer.lemmatize(token.lower()) for token in tokens if token.lower() not in stop_words and token not in string.punctuation]
上述操作後,獲得的 Token 是 Word,因為我們使用了Word Tokenizer,而不是Byte-Level Tokenizer,後者會將 Word 分解為最小的子片段。
經過上述操作後,Token 數目由 23605 降為 9781。