V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
overwall2016w
V2EX  ›  程序员

[技术求助帖] 我希望完成这个功能:有一个数据库,可以存储很多文章。然后在检索的时候,可以按照语义特征搜索,比如情感类文章、恐怖小说文章、谈论爱情的文章、和用户输入相识的文章等。

  •  
  •   overwall2016w · 110 天前 · 2807 次点击
    这是一个创建于 110 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我大概知道可以使用向量数据库处理。但是我之前没学过向量数据库。

    有没有朋友说一下该采取什么技术栈、选择哪种数据库、如何循序渐进的学习?

    23 条回复    2024-01-09 12:42:23 +08:00
    kuituosi
        1
    kuituosi  
       110 天前
    这就是大数据和 ai ,根据特征分类识别
    marktown
        2
    marktown  
       110 天前
    这个用普通的数据库也可以,文章存入数据库的时候,搞个打标签的动作把文章进行分类,然后把标签存入数据库,就可以检索了,文章进行分类的动作找 nlp 的开源算法就能实现了
    Trinityuan
        3
    Trinityuan  
       110 天前
    向量数据库比 SQL 数据库还简单,直接上 milvus ,就读和取。但是你这个数据,除了“和用户输入相识的文章”这个需求,其他的按照 2 楼说的,存储的时候写标签就够了。
    asmmt
        4
    asmmt  
       110 天前
    我做过代码的相似性分析,就是用自然语言描述找函数,或者用函数找功能相似的函数。可以先用关键词生成给每篇文章生成语义特征向量,然后把用户输入也转为语义特征向量做相似性分析,匹配相似度最高的文章。
    willbetter
        5
    willbetter  
       110 天前
    文章是文本数据可以考虑使用 ES 来存储,入库的时候进行打标分类就行,也可以提取内容的关键词等特征向量,搜索的时候利用相似度进行匹配
    Fish1024
        6
    Fish1024  
       110 天前
    文章入库的时候打标签。
    nlfiasel
        7
    nlfiasel  
       110 天前
    qizhiyuan
        8
    qizhiyuan  
       110 天前
    打标签+ES 完全满足
    encro
        9
    encro  
       110 天前
    看到这些,
    想起中文环境,
    我就恍惚看到一个人在如山的垃圾堆里翻来翻去的画面。
    victimsss
        10
    victimsss  
       110 天前
    为啥我觉得 NoSQL + tag 比较简单。
    ```
    {
    "_id": ObjectId("5f6aefad181f144bfb5eb6b1"),
    "title": "MongoDB Case Example",
    "content": "This is an example of using MongoDB for a case study.",
    "emotion": "study",
    "topic": ["database", "MongoDB"]
    }
    southwolf
        11
    southwolf  
       110 天前 via Android   ❤️ 1
    提取完关键字之后 搞个 word2vec 之类的关键字相似性 丢进 ES 完事
    raycool
        12
    raycool  
       110 天前
    langchain 完美解决你的问题
    duwenink248
        13
    duwenink248  
       110 天前
    你要找的是不是 meilisearch?
    overwall2016w
        14
    overwall2016w  
    OP
       110 天前
    @willbetter 我想让这个查询灵活点。打标签的话,感觉不够灵活,毕竟一篇文章可以有非常多个标签
    overwall2016w
        15
    overwall2016w  
    OP
       110 天前
    @nlfiasel 是个方案。之前了解过一点,就是感觉学起来太慢了(我之前没有太多 AI 基础),所以想从向量数据库那里找捷径。
    nlfiasel
        16
    nlfiasel  
       109 天前
    @overwall2016w 向量数据库不过是把别的类型的数据(比如文本)和向量关联起来,向量也是用外部的 embedding 模型计算的。另外所谓向量数据库,其实你维护一个(向量,你的数据)的 tuple list,然后每次都拿查询向量遍历计算,其实效果也差不多。然后这项目也就是推荐个起手的切入点,实际上你可能得根据自己的数据结构另起一套具体的实现。具体实现的话,AI 目前的形式就当成文本补全的 API 就行,langchain 用上的必要性其实也不是很高,因为这玩意针对 gpt 的优化比较多,对于国产的本地 llm 实际上自带的 prompts 效果也不太行。
    zcl0621
        17
    zcl0621  
       109 天前
    pg 向量存储?
    DigitalG
        18
    DigitalG  
       109 天前
    信息检索-倒排索引-词袋模型-聚类/分类
    blankmiss
        19
    blankmiss  
       109 天前
    打很多 tag ?
    joooooker21
        20
    joooooker21  
       109 天前
    付费的话,Mogodb 的 Atlas 能很快实现你的需求,只需要几个云函数即可进行调用大数据模型进行分析
    6diyipi
        21
    6diyipi  
       109 天前
    Betsy
        23
    Betsy  
       109 天前 via iPhone
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2805 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:09 · PVG 14:09 · LAX 23:09 · JFK 02:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.