创建/查询Faiss向量数据库
Project description
About
一个用于中文文本向量化和相似度搜索的Python包。它可以将中文段落表征为向量矩阵,并构建向量搜索索引,用于快速准确检索文本中的相似句子。
Install
$ pip3 install -U faisslite
Director
- faisslite
- document.py
- DBscan.py
- Faiss.py
- grab_from_window.py
document.py
对输入文本进行规范化处理,并将输入文本拆分成段落。
- parse函数 将文本拆分为由文本段落和分隔符构成的字典数组,为后续向量化处理文本提供了基础。
- stringify函数 将字典数组表示的文章序列化为文本。
DBscan.py
对文本进行向量化处理,对向量化后文本聚类。
- DBscan类
- add_doc函数 将完整文档向量化,同时记录各段落和文档的信息,包括偏移、起止、页码等。
- fit_predict函数 向量聚类
Faiss.py
用DBscan.py处理后的数据建立Faiss索引。实现语义相似句检索。
- Faiss类
- search_doc函数 优先选择完整文档相似度最大的,并且过滤掉低于阈值的结果。
grab_from_window.py
合并多个向量库的检索结果,在指定的窗口内选取返回的文字。
Usage
将预处理好的文本向量化
from faisslite.document import parse
from faisslite.DBscan import DBscan
source = "预处理好的文本的唯一ID"
paras = parse("预处理好的文本字符串")
DBscan.save_dir = "向量数据库存放目录"
db = DBscan("向量数据库名字")
db.add_doc(source, {'paras': paras})
db.dump()
将向量化后文本聚类
from faisslite.DBscan import DBscan
DBscan.save_dir = "向量数据库存放目录"
db = DBscan("向量数据库名字")
db.fit_predict()
db.dump()
建立向量数据库
from faisslite.Faiss import Faiss
Faiss.save_dir = "向量数据库存放目录"
db = Faiss("向量数据库名字", exclude=[-1])
查询向量数据库,输出查询结果
from faisslite.Faiss import Faiss
Faiss.save_dir = "向量数据库存放目录"
db = Faiss("向量数据库名字")
results = db.search_doc("与这段文字进行相似匹配")
for result in results:
source = result['source'] # 预处理好的文本的唯一ID
score = result['score'] # 相似度
texts = result['texts'] # 匹配的语句
print(f"{source}: {score}")
print(texts)
from faisslite.grab_from_window import grab_from_window
from faisslite.document import stringify
import json
with open(Faiss.save_dir+'/index.docs', 'r', encoding='utf-8') as f:
docs = json.load(f)
results = grab_from_window(docs, results)
for result in results:
source = result['source'] # 预处理好的文本的唯一ID
score = result['score'] # 相似度
pages = result['pages'] # 匹配的段落下标
print(f"{source}: {score}")
doc = docs[source]
print(stringify(doc['paras'], pages))
Contact us
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
faisslite-0.2.1.tar.gz
(7.1 kB
view details)
File details
Details for the file faisslite-0.2.1.tar.gz
.
File metadata
- Download URL: faisslite-0.2.1.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d10c21bf6c546a43d983fa689a57d845dc2d407992ff2380dbbf559739ccebef |
|
MD5 | d717807d8d39e32b7bc2c8aaad352f54 |
|
BLAKE2b-256 | 88a8e266371746c0e56f2d85fa30a676faca751a45492c7b1ecff4c6a8066141 |