ReMe/reme2/component/tokenizer/jieba_tokenizer.py
jinli.yl 602622c9f6 up
2026-05-12 20:32:59 +08:00

25 lines
837 B
Python

"""Jieba tokenizer implementation."""
from .base_tokenizer import BaseTokenizer
from ..component_registry import R
@R.register("jieba")
class JiebaTokenizer(BaseTokenizer):
"""Tokenizer using jieba for Chinese text segmentation."""
def __init__(self, filter_stopwords: bool = True, **kwargs):
super().__init__(**kwargs)
self.filter_stopwords = filter_stopwords
def tokenize(self, texts: list[str], lower: bool = True, **kwargs) -> list[list[str]]:
"""Tokenize texts using jieba."""
import jieba
result = []
for text in texts:
tokens = [x.lower() for x in jieba.cut(text)]
if self.filter_stopwords and self._stopwords:
tokens = [t for t in tokens if t not in self._stopwords]
result.append(tokens)
return result