Wrapper for Hugging Face tokenizer.
| 215 | |
| 216 | |
| 217 | class HgfTokenizerWrapper(AbstractTokenizer): |
| 218 | """Wrapper for Hugging Face tokenizer.""" |
| 219 | |
| 220 | def __init__( |
| 221 | self, |
| 222 | tokenizer, |
| 223 | ws_start: int = None, |
| 224 | ws_len: int = None, |
| 225 | ): |
| 226 | super(HgfTokenizerWrapper, self).__init__(tokenizer.__class__.__name__) |
| 227 | self.tokenizer = tokenizer |
| 228 | self.ws_start = ws_start |
| 229 | self.ws_len = ws_len |
| 230 | |
| 231 | def tokenize(self, text): |
| 232 | if self.ws_start: |
| 233 | text = encode_whitespaces(text, self.ws_start, self.ws_len) |
| 234 | input_ids = self.tokenizer(text, is_split_into_words=False).input_ids |
| 235 | |
| 236 | return input_ids |
| 237 | |
| 238 | def detokenize(self, token_ids): |
| 239 | text = self.tokenizer.decode(token_ids, skip_special_tokens=False) |
| 240 | if self.ws_start: |
| 241 | text = decode_whitespaces(text, self.ws_start, self.ws_len) |
| 242 | return text |
| 243 | |
| 244 | @property |
| 245 | def eod(self): |
| 246 | return self.tokenizer.eos_token_id |
| 247 | |
| 248 | @property |
| 249 | def inv_vocab(self): |
| 250 | return len(self.tokenizer.decoder) |
| 251 | |
| 252 | @property |
| 253 | def vocab(self): |
| 254 | return self.tokenizer.vocab |
| 255 | |
| 256 | @property |
| 257 | def vocab_size(self): |
| 258 | return len(self.vocab) |
no outgoing calls
no test coverage detected