TF-IDF는 term-frequency times inverse document-frequency를 의미합니다.
이 노트북은 scikit-learn 패키지를 사용하여 내부적으로 TF-IDF를 사용하는 retriever를 사용하는 방법을 다룹니다. TF-IDF의 세부 사항에 대한 자세한 내용은 이 블로그 포스트를 참조하세요.
pip install -qU  scikit-learn
from langchain_community.retrievers import TFIDFRetriever

텍스트로 새 Retriever 생성하기

retriever = TFIDFRetriever.from_texts(["foo", "bar", "world", "hello", "foo bar"])

Document로 새 Retriever 생성하기

이제 생성한 document로 새 retriever를 만들 수 있습니다.
from langchain_core.documents import Document

retriever = TFIDFRetriever.from_documents(
    [
        Document(page_content="foo"),
        Document(page_content="bar"),
        Document(page_content="world"),
        Document(page_content="hello"),
        Document(page_content="foo bar"),
    ]
)

Retriever 사용하기

이제 retriever를 사용할 수 있습니다!
result = retriever.invoke("foo")
result
[Document(page_content='foo', metadata={}),
 Document(page_content='foo bar', metadata={}),
 Document(page_content='hello', metadata={}),
 Document(page_content='world', metadata={})]

저장 및 로드

이 retriever를 쉽게 저장하고 로드할 수 있어 로컬 개발에 편리합니다!
retriever.save_local("testing.pkl")
retriever_copy = TFIDFRetriever.load_local("testing.pkl")
retriever_copy.invoke("foo")
[Document(page_content='foo', metadata={}),
 Document(page_content='foo bar', metadata={}),
 Document(page_content='hello', metadata={}),
 Document(page_content='world', metadata={})]

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I