Spaces:
Sleeping
Sleeping
File size: 1,170 Bytes
c96b98a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | from abc import ABC, abstractmethod
from typing import List
from phi.document.base import Document
class ChunkingStrategy(ABC):
"""Base class for chunking strategies"""
@abstractmethod
def chunk(self, document: Document) -> List[Document]:
raise NotImplementedError
def clean_text(self, text: str) -> str:
"""Clean the text by replacing multiple newlines with a single newline"""
import re
# Replace multiple newlines with a single newline
cleaned_text = re.sub(r"\n+", "\n", text)
# Replace multiple spaces with a single space
cleaned_text = re.sub(r"\s+", " ", cleaned_text)
# Replace multiple tabs with a single tab
cleaned_text = re.sub(r"\t+", "\t", cleaned_text)
# Replace multiple carriage returns with a single carriage return
cleaned_text = re.sub(r"\r+", "\r", cleaned_text)
# Replace multiple form feeds with a single form feed
cleaned_text = re.sub(r"\f+", "\f", cleaned_text)
# Replace multiple vertical tabs with a single vertical tab
cleaned_text = re.sub(r"\v+", "\v", cleaned_text)
return cleaned_text
|