我们正在尝试解决一个问题,我们希望在我们的数据集上进行语义搜索,即我们有一个特定于域的数据(例如:关于汽车的句子)
我们的数据只是一堆句子,我们想要的是给出一个短语并返回以下句子:
- 类似于那句话
- 有与短语相似的句子的一部分
- 具有上下文相似含义的句子
让我试着给你一个例子,假设我搜索短语“购买体验”,我应该得到如下句子:
- 我从没想过买车可以花不到30分钟的时间来签字和购买。
我找到了我喜欢的汽车,购买过程
简单明了我绝对讨厌去汽车购物,但今天我很高兴我做到了
我想强调一个事实,即我们正在寻找上下文相似性,而不仅仅是暴力搜索。
如果句子使用不同的单词,那么它也应该能够找到它。
我们已经尝试过的事情:
开放语义搜索我们在这里面临的问题是从我们拥有的数据中生成本体,或者为此从我们感兴趣的不同领域搜索可用的本体。
Elastic Search(BM25 + Vectors(tf-idf)),我们尝试了这个,它给出了几句话,但精度不是很好。准确性也很差。我们尝试了一个人工管理的数据集,它只能得到大约 10% 的句子。
我们尝试了不同的嵌入,就像曾经在句子转换器中提到的那样,还通过了这个例子并尝试对我们的人工管理集进行评估,但准确性也非常低。
我们试过ELMO。这比我们预期的要好,但仍然比我们预期的要低,并且有一个认知负荷来决定我们不应该考虑句子的余弦值。这甚至适用于第 3 点。
任何帮助将不胜感激。非常感谢您提前提供的帮助