class BERTTextEncoder(TextEncoder):
    def __init__(self, vocab_file: str, do_lower_case: bool = True) -> None:
        self.tokenizer = FullTokenizer(vocab_file, do_lower_case)
        super().__init__(len(self.tokenizer.vocab))
        self.bert_pad_id = self.tokenizer.vocab['[PAD]']
        # 99 used
        self.bert_unk_id = self.tokenizer.vocab['[UNK]']
        self.bert_cls_id = self.tokenizer.vocab['[CLS]']
        self.bert_sep_id = self.tokenizer.vocab['[SEP]']
        self.bert_msk_id = self.tokenizer.vocab['[MASK]']
        self.vocab_size = len(self.tokenizer.vocab) - 99 - 5
        
    def standardize_ids(self, ids):
        for i in range(len(ids)):
            if ids[i] == self.bert_pad_id:  # PAD
                ids[i] = 1 + self.vocab_size
            elif ids[i] == self.bert_unk_id:  # UNK
                ids[i] = 0
            elif ids[i] == self.bert_cls_id:  # CLS
                ids[i] = 3 + self.vocab_size
            elif ids[i] == self.bert_sep_id:  # SEP
                ids[i] = 5 + self.vocab_size
            elif ids[i] == self.bert_msk_id:  # MASK
                ids[i] = 2 + self.vocab_size
            elif ids[i] > self.bert_msk_id:  # VOCAB
                ids[i] -= self.bert_msk_id
        return ids

    
    def tokenize(self, strA):
        return self.tokenizer.tokenize(strA)
    
    def convert_tokens_to_ids(self, tokens):
        return self.tokenizer.convert_tokens_to_ids(tokens)
 def __init__(self, vocab_file: str, do_lower_case: bool = True) -> None:
     self.tokenizer = FullTokenizer(vocab_file, do_lower_case)
     super().__init__(len(self.tokenizer.vocab))
     self.bert_pad_id = self.tokenizer.vocab['[PAD]']
     # 99 used
     self.bert_unk_id = self.tokenizer.vocab['[UNK]']
     self.bert_cls_id = self.tokenizer.vocab['[CLS]']
     self.bert_sep_id = self.tokenizer.vocab['[SEP]']
     self.bert_msk_id = self.tokenizer.vocab['[MASK]']
     self.vocab_size = len(self.tokenizer.vocab) - 99 - 5
Ejemplo n.º 3
0
class BERTTextEncoder(TextEncoder):
    def __init__(self, vocab_file: str, do_lower_case: bool = True) -> None:
        self.tokenizer = FullTokenizer(vocab_file, do_lower_case)
        super().__init__(len(self.tokenizer.vocab))
        self.bert_unk_id = self.tokenizer.vocab['[UNK]']
        self.bert_msk_id = self.tokenizer.vocab['[MASK]']

    def standardize_ids(self, ids: List[int]) -> List[int]:
        for i in range(len(ids)):
            if ids[i] == self.bert_unk_id:  # UNK
                ids[i] = 0
            else:  # VOCAB
                ids[i] -= self.bert_msk_id
        return ids

    def encode(self, sent: str) -> List[int]:
        return self.standardize_ids(self.tokenizer.convert_tokens_to_ids(self.tokenizer.tokenize(sent)))
Ejemplo n.º 4
0
 def __init__(self, vocab_file: str, do_lower_case: bool = True) -> None:
     self.tokenizer = FullTokenizer(vocab_file, do_lower_case)
     super().__init__(len(self.tokenizer.vocab))
     self.bert_unk_id = self.tokenizer.vocab['[UNK]']
     self.bert_msk_id = self.tokenizer.vocab['[MASK]']