kongdeqiang
5 天以前 28ccfbfc51068a663a80764e14074df5edf2b5ba
funasr/tokenizer/sentencepiece_tokenizer.py
@@ -20,6 +20,7 @@
        # "TypeError: can't pickle SwigPyObject objects",
        # when giving it as argument of "multiprocessing.Process()".
        self.sp = None
        self._build_sentence_piece_processor()
    def __repr__(self):
        return f'{self.__class__.__name__}(model="{self.bpemodel}")'
@@ -38,10 +39,19 @@
        self._build_sentence_piece_processor()
        return self.sp.DecodePieces(list(tokens))
    def encode(self, line: str) -> List[int]:
    def encode(self, line: str, **kwargs) -> List[int]:
        self._build_sentence_piece_processor()
        return self.sp.EncodeAsIds(line)
    def decode(self, line: List[int]):
    def decode(self, line: List[int], **kwargs):
        self._build_sentence_piece_processor()
        return self.sp.DecodeIds(line)
    def get_vocab_size(self):
        return self.sp.GetPieceSize()
    def ids2tokens(self, *args, **kwargs):
        return self.decode(*args, **kwargs)
    def tokens2ids(self, *args, **kwargs):
        return self.encode(*args, **kwargs)