tiktoken
tiktoken은
OpenAI가 만든 빠른 BPE tokenizer입니다.tiktoken을 사용하여 사용된 token을 추정할 수 있습니다. OpenAI model에 대해 더 정확할 것입니다.
- 텍스트 분할 방법: 전달된 문자로 분할.
- Chunk 크기 측정 방법:
tiktokentokenizer로 측정.
tiktoken과 직접 함께 사용할 수 있습니다.
tiktoken으로 chunk를 병합하려면 .from_tiktoken_encoder() method를 사용하세요. 이 method의 분할은 tiktoken tokenizer로 측정한 chunk 크기보다 클 수 있습니다.
.from_tiktoken_encoder() method는 encoding_name(예: cl100k_base) 또는 model_name(예: gpt-4)을 인수로 받습니다. chunk_size, chunk_overlap, separators와 같은 모든 추가 인수는 CharacterTextSplitter를 인스턴스화하는 데 사용됩니다:
RecursiveCharacterTextSplitter.from_tiktoken_encoder를 사용할 수 있으며, 각 분할이 더 큰 크기를 가지면 재귀적으로 분할됩니다:
tiktoken과 직접 작동하고 각 분할이 chunk 크기보다 작도록 보장하는 TokenTextSplitter splitter를 로드할 수도 있습니다.
TokenTextSplitter를 직접 사용하면 문자의 token이 두 chunk 사이에 분할되어 잘못된 형식의 Unicode 문자가 발생할 수 있습니다. 유효한 Unicode 문자열을 포함하는 chunk를 보장하려면 RecursiveCharacterTextSplitter.from_tiktoken_encoder 또는 CharacterTextSplitter.from_tiktoken_encoder를 사용하세요.
spaCy
spaCy는 Python과 Cython 프로그래밍 언어로 작성된 고급 자연어 처리를 위한 오픈 소스 소프트웨어 라이브러리입니다.
- 텍스트 분할 방법:
spaCytokenizer로 분할. - Chunk 크기 측정 방법: 문자 수로 측정.
SentenceTransformers
SentenceTransformersTokenTextSplitter는 sentence-transformer model과 함께 사용하기 위한 특수 text splitter입니다. 기본 동작은 사용하려는 sentence transformer model의 token window에 맞는 chunk로 텍스트를 분할하는 것입니다. sentence-transformers tokenizer에 따라 텍스트를 분할하고 token 수를 제한하려면SentenceTransformersTokenTextSplitter를 인스턴스화하세요. 선택적으로 다음을 지정할 수 있습니다:
chunk_overlap: token overlap의 정수 개수;model_name: sentence-transformer model 이름, 기본값은"sentence-transformers/all-mpnet-base-v2";tokens_per_chunk: chunk당 원하는 token 수.
NLTK
The Natural Language Toolkit, 또는 더 일반적으로 NLTK는 Python 프로그래밍 언어로 작성된 영어를 위한 기호 및 통계 자연어 처리(NLP)를 위한 라이브러리 및 프로그램 모음입니다.
NLTK를 사용하여 NLTK tokenizers를 기반으로 분할할 수 있습니다.
- 텍스트 분할 방법:
NLTKtokenizer로 분할. - Chunk 크기 측정 방법: 문자 수로 측정.
KoNLPY
KoNLPy: Korean NLP in Python은 한국어 자연어 처리(NLP)를 위한 Python 패키지입니다.
KoNLPY의 Kkma Analyzer를 사용한 한국어 Token 분할
한국어 텍스트의 경우 KoNLPY에는Kkma(Korean Knowledge Morpheme Analyzer)라는 형태소 분석기가 포함되어 있습니다. Kkma는 한국어 텍스트의 상세한 형태소 분석을 제공합니다. 문장을 단어로, 단어를 각각의 형태소로 분해하여 각 token의 품사를 식별합니다. 텍스트 블록을 개별 문장으로 분할할 수 있으며, 이는 긴 텍스트를 처리하는 데 특히 유용합니다.
사용 고려 사항
Kkma는 상세한 분석으로 유명하지만 이러한 정밀도가 처리 속도에 영향을 미칠 수 있다는 점에 유의해야 합니다. 따라서 Kkma는 빠른 텍스트 처리보다 분석 깊이가 우선시되는 애플리케이션에 가장 적합합니다.
Hugging Face tokenizer
Hugging Face에는 많은 tokenizer가 있습니다. Hugging Face tokenizer인 GPT2TokenizerFast를 사용하여 token 단위로 텍스트 길이를 계산합니다.- 텍스트 분할 방법: 전달된 문자로 분할.
- Chunk 크기 측정 방법:
Hugging Facetokenizer로 계산된 token 수로 측정.
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.