如何在 30 万个句子中找出特定主题的句子?

182 天前
 DTCPSS
我有一个 csv 文件,里面有 30 万个句子。
有没有什么现成的产品,可以做到:我输入 “蔬菜”,它帮我从 csv 文件中找到 “你的番茄是哪里买的?” 之类的和蔬菜相关的句子?
只是自己用,不是对外提供服务。最好开箱即用,越便宜越好。
ChatGPT 提示文件过大。QAnything 的回答完全没法用。
1077 次点击
所在节点    问与答
9 条回复
liprais
182 天前
rag 了解一下
TimePPT
182 天前
你这需求如果就举例的那么简单,都不需要大模型,语义向量检索就能满足。
就是楼上的 RAG 的一部分。
NickHopps
182 天前
直接调用 openai 的 api 就可以实现,可以参考这篇文章 https://simonwillison.net/2023/Oct/23/embeddings/
ck65
182 天前
大致步骤:

1. 把 csv 分成 chunk ,一行一个 chunk 或 n 行一个 chunk 看行的长度定夺
2. 逐个 chunk 调 embedding API 换回一个 embedding 结果,存进 vector db
3. 用关键词「蔬菜」检索 vector db

借楼提一个引申问题:有不需要经过 embedding API 的办法吗?
cando
182 天前
输入"蔬菜",让 GPT 给出所有的蔬菜,然后把所有的蔬菜拿到 csv 去匹配。
TimePPT
182 天前
@ck65 Embedding 背后就是个模型,自己私有化部署一个也行。
还有个办法是做 NER 实体识别,读取离线训练好的 Word Embedding 表,做相似度匹配。
但这个仅限于词级别的匹配
DTCPSS
182 天前
@liprais @TimePPT
有没有推荐的组件? Faiss 怎么样?
DTCPSS
182 天前
基本解决了。
向量搜索用 Faiss 。
文本向量化用 aspire/acge_text_embedding 和 Alibaba-NLP/gte-Qwen1.5-7B-instruct 。
kalafinaian
80 天前
Bert 得到句向量 Embedding 再 L2 归一化
然后矩阵乘法计算两两之间按相似度

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1043301

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX