Spaces:
Sleeping
Sleeping
Download backend/splitters.py from FirasHadjKacem/FBDF: direct link, hf CLI and curl.
- Browser
- Download file 986 Bytes
-
https://huggingface.co/spaces/FirasHadjKacem/FBDF/resolve/main/backend/splitters.py
- Command line
-
hf download hf://spaces/FirasHadjKacem/FBDF/backend/splitters.py
-
curl -L -o splitters.py https://huggingface.co/spaces/FirasHadjKacem/FBDF/resolve/main/backend/splitters.py
986 Bytes
| import re | |
| from typing import List | |
| class Splitter: | |
| """Base class for text splitting""" | |
| def split(self, text: str) -> List[str]: | |
| raise NotImplementedError | |
| def join(self, tokens: List[str]) -> str: | |
| raise NotImplementedError | |
| class StringSplitter(Splitter): | |
| """Split text by pattern (default: space)""" | |
| def __init__(self, split_pattern: str = ' '): | |
| self.split_pattern = split_pattern | |
| def split(self, prompt: str) -> List[str]: | |
| return re.split(self.split_pattern, prompt.strip()) | |
| def join(self, tokens: List[str]) -> str: | |
| return ' '.join(tokens) | |
| class TokenizerSplitter(Splitter): | |
| """Split text using HuggingFace tokenizer""" | |
| def __init__(self, tokenizer): | |
| self.tokenizer = tokenizer | |
| def split(self, prompt: str) -> List[str]: | |
| return self.tokenizer.tokenize(prompt) | |
| def join(self, tokens: List[str]) -> str: | |
| return self.tokenizer.convert_tokens_to_string(tokens) | |