捷徑

torchtext.vocab

Vocab

class torchtext.vocab.Vocab(vocab)[原始碼]
__contains__(token: str) bool[原始碼]
參數:

token – 要檢查是否為成員資格的詞彙。

回傳值:

詞彙是否為 vocab 的成員。

__getitem__(token: str) int[原始碼]
參數:

token – 用於查詢對應索引的詞彙。

回傳值:

與關聯詞彙對應的索引。

__init__(vocab) None[原始碼]

初始化內部模組狀態,由 nn.Module 和 ScriptModule 共享。

__jit_unused_properties__ = ['is_jitable']

建立一個將詞彙映射到索引的 vocab 物件。

參數:

vocab (torch.classes.torchtext.Vocab or torchtext._torchtext.Vocab) – 一個 cpp vocab 物件。

__len__() int[原始碼]
回傳值:

vocab 的長度。

__prepare_scriptable__()[原始碼]

回傳一個可 JIT 的 Vocab。

append_token(token: str) None[原始碼]
參數:

token – 用於查詢對應索引的詞彙。

引發:

RuntimeError – 如果 token 已存在於 vocab 中

forward(tokens: List[str]) List[int][原始碼]

呼叫 lookup_indices 方法

參數:

tokens – 用於查詢其對應 indices 的詞彙清單。

回傳值:

tokens 清單相關聯的索引。

get_default_index() Optional[int][原始碼]
回傳值:

如果已設定,則為預設索引的值。

get_itos() List[str][原始碼]
回傳值:

將索引映射到詞彙的清單。

get_stoi() Dict[str, int][原始碼]
回傳值:

將詞彙映射到索引的字典。

insert_token(token: str, index: int) None[原始碼]
參數:
  • token – 用於查詢對應索引的詞彙。

  • index – 與關聯詞彙對應的索引。

引發:

RuntimeError – 如果 index 不在 [0, Vocab.size()] 範圍內,或者如果 token 已存在於 vocab 中。

lookup_indices(tokens: List[str]) List[int][原始碼]
參數:

tokens – 用於查詢其對應「索引」的詞彙。

回傳值:

與「詞彙」相關聯的「索引」。

lookup_token(index: int) str[原始碼]
參數:

index – 與關聯詞彙對應的索引。

回傳值:

用於查詢對應索引的詞彙。

回傳型別:

token

引發:

RuntimeError – 如果「索引」不在 [0, itos.size()) 範圍內。

lookup_tokens(indices: List[int]) List[str][原始碼]
參數:

indices – 用於查詢其對應「詞彙」的「索引」。

回傳值:

與「索引」相關聯的「詞彙」。

引發:

RuntimeError – 如果「索引」內的索引不在 [0, itos.size()) 範圍內。

set_default_index(index: Optional[int]) None[原始碼]
參數:

index – 預設索引的值。查詢詞彙表外詞彙時將會回傳此索引。

vocab

torchtext.vocab.vocab(ordered_dict: Dict, min_freq: int = 1, specials: Optional[List[str]] = None, special_first: bool = True) Vocab[原始碼]

用於建立詞彙物件的工廠方法,該物件會將詞彙對應到索引。

請注意,在建立詞彙表時,將會保留在「ordered_dict」中插入鍵值對的順序。因此,如果詞彙頻率的排序對使用者來說很重要,則應該以反映此順序的方式建立「ordered_dict」。

參數:
  • ordered_dict – 將詞彙對應到其對應出現頻率的有序字典。

  • min_freq – 包含在詞彙表中所需的最低頻率。

  • specials – 要新增的特殊符號。將會保留提供的詞彙順序。

  • special_first – 表示是否在開頭或結尾插入符號。

回傳值:

「Vocab」物件

回傳型別:

torchtext.vocab.Vocab

範例

>>> from torchtext.vocab import vocab
>>> from collections import Counter, OrderedDict
>>> counter = Counter(["a", "a", "b", "b", "b"])
>>> sorted_by_freq_tuples = sorted(counter.items(), key=lambda x: x[1], reverse=True)
>>> ordered_dict = OrderedDict(sorted_by_freq_tuples)
>>> v1 = vocab(ordered_dict)
>>> print(v1['a']) #prints 1
>>> print(v1['out of vocab']) #raise RuntimeError since default index is not set
>>> tokens = ['e', 'd', 'c', 'b', 'a']
>>> #adding <unk> token and default index
>>> unk_token = '<unk>'
>>> default_index = -1
>>> v2 = vocab(OrderedDict([(token, 1) for token in tokens]), specials=[unk_token])
>>> v2.set_default_index(default_index)
>>> print(v2['<unk>']) #prints 0
>>> print(v2['out of vocab']) #prints -1
>>> #make default index same as index of unk_token
>>> v2.set_default_index(v2[unk_token])
>>> v2['out of vocab'] is v2[unk_token] #prints True

build_vocab_from_iterator

torchtext.vocab.build_vocab_from_iterator(iterator: Iterable, min_freq: int = 1, specials: Optional[List[str]] = None, special_first: bool = True, max_tokens: Optional[int] = None) Vocab[原始碼]

從迭代器建立詞彙表。

參數:
  • iterator – 用於建立詞彙表的迭代器。必須產生詞彙清單或迭代器。

  • min_freq – 包含在詞彙表中所需的最低頻率。

  • specials – 要新增的特殊符號。將會保留提供的詞彙順序。

  • special_first – 表示是否在開頭或結尾插入符號。

  • max_tokens – 如果有提供,則會從最常出現的「max_tokens - len(specials)」個詞彙建立詞彙表。

回傳值:

「Vocab」物件

回傳型別:

torchtext.vocab.Vocab

範例

>>> #generating vocab from text file
>>> import io
>>> from torchtext.vocab import build_vocab_from_iterator
>>> def yield_tokens(file_path):
>>>     with io.open(file_path, encoding = 'utf-8') as f:
>>>         for line in f:
>>>             yield line.strip().split()
>>> vocab = build_vocab_from_iterator(yield_tokens(file_path), specials=["<unk>"])

Vectors

class torchtext.vocab.Vectors(name, cache=None, url=None, unk_init=None, max_vectors=None)[原始碼]
__init__(name, cache=None, url=None, unk_init=None, max_vectors=None) None[原始碼]
參數:
  • name – 包含向量的檔案名稱

  • cache – 快取向量的目錄

  • url – 如果在快取中找不到向量,則下載的網址

  • unk_init (回調函數) – 預設情況下,將詞彙表外的詞向量初始化為零向量;可以是任何接受張量並返回相同大小張量的函數

  • max_vectors (整數) – 這可以用於限制載入的預先訓練向量數量。大多數預先訓練的向量集按詞頻降序排列。因此,在整個集合不適合記憶體或由於其他原因不需要的情況下,傳遞 max_vectors 可以限制載入集合的大小。

get_vecs_by_tokens(tokens, lower_case_backup=False)[來源]

查詢標記的嵌入向量。

參數:
  • tokens – 一個標記或標記列表。如果 tokens 是一個字串,則返回形狀為 self.dim 的一維張量;如果 tokens 是一個字串列表,則返回形狀為 (len(tokens), self.dim) 的二維張量。

  • lower_case_backup – 是否以小寫形式查詢標記。如果為 False,則將查詢原始大小寫中的每個標記;如果為 True,則將首先查詢原始大小寫中的每個標記,如果在屬性 stoi 的鍵中找不到,則將查詢小寫形式的標記。預設值:False。

範例

>>> examples = ['chip', 'baby', 'Beautiful']
>>> vec = text.vocab.GloVe(name='6B', dim=50)
>>> ret = vec.get_vecs_by_tokens(examples, lower_case_backup=True)

預先訓練的詞嵌入

GloVe

類別 torchtext.vocab.GloVe(name='840B', dim=300, **kwargs)[來源]

FastText

類別 torchtext.vocab.FastText(language='en', **kwargs)[來源]

CharNGram

類別 torchtext.vocab.CharNGram(**kwargs)[來源]

文件

取得 PyTorch 的完整開發人員文件

查看文件

教學

取得針對初學者和進階開發人員的深入教學課程

查看教學課程

資源

尋找開發資源並取得您的問題解答

查看資源