2024-07-28|閱讀時間 ‧ 約 24 分鐘

AI說書 - 從0開始 - 106 | 低頻率詞彙篩除方法

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


我們從 AI說書 - 從0開始 - 103AI說書 - 從0開始 - 105 | AI 資料準備 的努力,已經完成資料集前處理,現在需要定義一個函數來加載這些清理過的數據集,並在預處理完成後保存它們:

from pickle import load
from pickle import dump
from collections import Counter

# Load a clean dataset
def load_clean_sentences(filename):
return load(open(filename, 'rb'))


# Save a list of clean sentences to file
def save_clean_sentences(sentences, filename):
dump(sentences, open(filename, 'wb'))
print('Saved: %s' % filename)


我們現在定義一個函數來創建一個詞彙計數器,了解一個詞在我們將解析的序列中使用的次數是很重要的,例如,如果一個詞在包含兩百萬行的數據集中只使用了一次,我們將浪費寶貴的 GPU 資源來學習它!讓我們來定義這個計數器:

# Create a frequency table for all words
def to_vocab(lines):
vocab = Counter()
for line in lines:
tokens = line.split()
vocab.update(tokens)
return vocab


字詞出現頻率太低的,就把它拿掉:

# Remove all words with a frequency below a threshold
def trim_vocab(vocab, min_occurrence):
tokens = [k for k, c in vocab.items() if c >= min_occurrence]
return set(tokens)
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.