[英]Get frequency of words using Vocab in pytorch Torchtext
如何在使用 build_vocab_from_iterator 創建的 torchtext vocab 中獲取標記的頻率? 文檔鏈接: https://pytorch.org/text/stable/vocab.html#torchtext.vocab.Vocab
def build_vocab(data_iter, tokenizer):
"""Builds vocabulary from iterator"""
vocab = build_vocab_from_iterator(
map(tokenizer, data_iter),
specials=["<unk>"],
min_freq=MIN_WORD_FREQUENCY,)
vocab.set_default_index(vocab["<unk>"])
return vocab
data_iter = get_data_iterator(ds_name, ds_type, data_dir)
tokenizer = get_english_tokenizer()
if not vocab:
vocab = build_vocab(data_iter, tokenizer)
構建詞匯后,您將無法獲得頻率,因為該數據在構建過程中丟失。 它只是檢查令牌出現的次數是否超過min_freq
,如果是,則將其添加到詞匯表中。
但是,您可以在構建詞匯表之前獲取標記的頻率。 一種方法是使用Counter
( Counter docs ):
counter = Counter()
for text in data_iter:
counter.update(tokenizer(text))
您可以從計數器獲取標記的頻率,然后從計數器構建詞匯表:
vocab = vocab.vocab(counter, min_freq=MIN_WORD_FREQUENCY)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.