gpt4 book ai didi

vector - 是否可以直接修改词频/词向量?

转载 作者:行者123 更新时间:2023-12-01 03:51:36 25 4
gpt4 key购买 nike

我想使用 Lucene.NET 来存储和查询术语向量。但是,我不希望从文档中创建术语向量。相反,我希望能够直接编写和更新术语向量,而无需术语/标记的位置或偏移量。

解决方法是从术语向量生成文本,即从术语向量
foo: 3; bar: 1
生成文本
foo, foo, foo, bar
并让 Lucene 索引该文本。如果我想将 bar 的词频更新为 2 ,我可以获取存储的文本(或从旧术语向量生成它,如果我不存储它),将其更改为
foo, foo, foo, bar, bar
并更新索引中的相应文档。

对于这样一个简单的任务来说,这是相当昂贵的。显然,这不是用例,Lucene 是为使用而构建的。不过,我希望能够使用 Lucene 的强大功能进行查询等。

有没有办法直接为文档编写术语向量,或者您有其他好的想法吗?

最佳答案

正如我在我的问题中所说,Lucene 不用于直接存储和操作术语向量。至少在更新术语向量的过程中,最初的方法或多或少是要走的路:

  • 检索表示相关词向量的文档
  • 更新文档的相应字段
  • 重新索引文档(在 Lucene 中 Delete, then Add 等于 Update)

  • 我还没有找到一种方法来更新向量中的单个词频而不重新索引整个文档。

    问题中描述的方法的一项改进是将词向量编码为词频对:

    代替

    foo foo foo bar



    字段内容可以写成

    foo:3; bar:1;



    然后您可以编写自定义 TokenFilter它一个一个地读取这些标记,然后返回术语 n次。这不会提高性能,但会简化术语向量的处理。如果您不熟悉自定义标记过滤器和分析器,那么使用这种方法可能不值得,我会坚持使用我在问题中已经建议的简单版本。

    关于vector - 是否可以直接修改词频/词向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21970462/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com