Zacznij terazZacznij za darmo

Rekurencyjne dzielenie według znaków

Wielu programistów korzysta z rekurencyjnego splittera znakowego do dzielenia dokumentów według określonej listy znaków. Domyślnie są to: akapity, znaki nowej linii, spacje i puste ciągi znaków: ["\n\n", "\n", " ", ""].

W praktyce splitter najpierw próbuje podzielić tekst według akapitów, sprawdza, czy spełnione są wartości chunk_size i chunk_overlap, a jeśli nie – dzieli według zdań, następnie słów i pojedynczych znaków.

Często trzeba eksperymentować z różnymi wartościami chunk_size i chunk_overlap, aby znaleźć te, które najlepiej sprawdzają się w przypadku twoich dokumentów.

To ćwiczenie jest częścią kursu

Tworzenie aplikacji LLM z LangChain

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj klasę RecursiveCharacterTextSplitter z langchain_text_splitters.
  • Utwórz instancję RecursiveCharacterTextSplitter z parametrami separators=["\n", " ", ""], chunk_size=24 i chunk_overlap=10.
  • Użyj metody .split_text(), aby podzielić quote, a następnie wyświetl fragmenty i ich długości.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Import the recursive character splitter
from langchain_text_splitters import ____

quote = 'Words are flowing out like endless rain into a paper cup,\nthey slither while they pass,\nthey slip away across the universe.'
chunk_size = 24
chunk_overlap = 10

# Create an instance of the splitter class
splitter = RecursiveCharacterTextSplitter(
    separators=____,
    chunk_size=____,
    chunk_overlap=____)

# Split the document and print the chunks
docs = splitter.____(quote)
print(docs)
print([len(doc) for doc in docs])
Edytuj i uruchom kod