Skip to main content

kNN (k最近邻算法)

在统计学中,k最近邻算法(k-NN)是一种非参数的监督学习方法,最早由Evelyn Fix和Joseph Hodges于1951年开发,后来由Thomas Cover进行了扩展。它用于分类和回归。

本文档介绍了如何使用一个底层使用kNN的检索器。

主要参考自https://github.com/karpathy/randomfun/blob/master/knn_vs_svm.html

from langchain.retrievers import KNNRetriever
from langchain.embeddings import OpenAIEmbeddings

使用文本创建新的检索器

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

使用检索器

现在我们可以使用检索器了!

result = retriever.get_relevant_documents("foo")
result
    [Document(page_content='foo', metadata={}),
Document(page_content='foo bar', metadata={}),
Document(page_content='hello', metadata={}),
Document(page_content='bar', metadata={})]