■ RecursiveCharacterTextSplitter 클래스의 생성자에서 separators 인자를 사용하는 방법을 보여준다.
※ 일부 쓰기 시스템에는 단어 경계가 없다(예 : 중국어, 일본어, 태국어).
※ ["\n\n", "\n", " ", ""]의 기본 구분 기호 목록을 사용하여 텍스트를 분할하면 단어가 덩어리 간에 분할될 수 있다.
※ 단어를 함께 유지하려면 추가 구두점을 포함하도록 구분 기호 목록을 재정의할 수 있다.
▶ main.py
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 33 |
from langchain_text_splitters import RecursiveCharacterTextSplitter with open("state_of_the_union.txt") as textIOWrapper: fileContent = textIOWrapper.read() recursiveCharacterTextSplitter = RecursiveCharacterTextSplitter( # 보여드리기 위해 아주 작은 청크 크기를 설정한다. chunk_size = 100, chunk_overlap = 20, length_function = len, is_separator_regex = False, separators = [ "\n\n", "\n", " ", ".", ",", "\u200b", # Zero-width space "\uff0c", # Fullwidth comma "\u3001", # Ideographic comma "\uff0e", # Fullwidth full stop "\u3002", # Ideographic full stop "" ] ) documentList = recursiveCharacterTextSplitter.create_documents([fileContent]) for document in documentList[:3]: print(document.page_content) print() |
▶ requirements.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
annotated-types==0.7.0 certifi==2024.6.2 charset-normalizer==3.3.2 idna==3.7 jsonpatch==1.33 jsonpointer==3.0.0 langchain-core==0.2.10 langchain-text-splitters==0.2.2 langsmith==0.1.82 orjson==3.10.5 packaging==24.1 pydantic==2.7.4 pydantic_core==2.18.4 PyYAML==6.0.1 requests==2.32.3 tenacity==8.4.2 typing_extensions==4.12.2 urllib3==2.2.2 |
※ pip install langchain-text-splitters 명령을 실행했다.