问题标签 [sentence-similarity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
239 浏览

nlp - 有什么方法可以更快地计算 gensim WmdSimilarity

我正在使用 gensim WmdSimilarity。我跟着这个教程。但是对于预训练模型,每个输出需要 5-6 秒。我发现了一些计算 WMD(Word Mover 距离)的其他实现,但我不确定是否将它与预训练的 W2V 一起使用

0 投票
1 回答
186 浏览

search - Apache solr 中的句子相似度

我正在使用 Solr 来匹配短语。

指数数据:

我已经索引了由管道分隔的短语,这些短语属于 1 组

询问 :

当我使用上述查询进行搜索时,我的搜索结果应该是

因为

查询包含上述短语中的所有单词,即:“simple”和“text”

谁能告诉我如何在 solr 中做到这一点?

0 投票
2 回答
514 浏览

python - 短语之间的相似度得分

Levenshtein distance 是一种衡量单词之间差异的方法,但对于短语而言并非如此。

是否有一个很好的距离度量来衡量短语之间的差异?

例如,如果短语 1 由 n 个单词 x1 x2 x_n 组成,而短语 2 由 m 个单词 y1 y2 y_m 组成。我认为它们应该按单词模糊对齐,然后对齐的单词应该对它们的相似程度进行评分,并且应该对未对齐的单词应用某种间隙惩罚。这些正分数和负分数应该以某种方式汇总。似乎有一些启发式方法。

是否有现有的解决方案来衡量短语之间的相似性?Python 是首选,但其他解决方案也可以。谢谢。

0 投票
1 回答
532 浏览

nlp - 如何训练会导致两个新闻标题之间的相似度得分的模型?

我正在尝试构建一个假新闻分类器,我在这个领域很新。我有一个名为“title_1_en”的列,其中包含假新闻的标题和另一个名为“title_2_en”的列。有3个目标标签;如果“title_2_en”列中的新闻标题同意、不同意或与第一列中的标题无关,则为“同意”、“不同意”和“不相关”。

在将句子的单词转换为向量后,我尝试计算两个标题之间的基本余弦相似度。这导致了余弦相似度得分,但这需要大量改进,因为根本没有考虑同义词和语义关系。

0 投票
1 回答
802 浏览

python - 如何使用 Gensim doc2vec 执行高效查询?

我正在研究具有以下用例的句子相似性算法:给定一个新句子,我想从给定集合中检索其 n 个最相似的句子。我正在使用 Gensim v.3.7.1,并且我已经训练了 word2vec 和 doc2vec 模型。后者的结果优于 word2vec,但我在使用 Doc2Vec 模型执行高效查询时遇到了麻烦。该模型使用分布式词袋实现(dm = 0)。

我曾经使用内置方法来推断相似性model.most_similar(),但是一旦我开始使用我想要查询的更多数据进行训练,这是不可能的。也就是说,我想在我的训练数据集的一个子集中找到最相似的句子。我对此的快速解决方法是使用余弦相似度将新句子的向量与我的集合中的每个向量进行比较,但显然这不能扩展,因为我必须计算嵌入负载并进行大量比较。

我成功地对 word2vec 和 doc2vec 使用了word-mover 距离,但是在使用余弦相似度时,我得到了更好的 doc2vec 结果。如何使用 PV-DBOW Doc2Vec 模型和类 Similarity中的方法有效地查询新文档?

我正在寻找与我对 WMD 所做的类似的方法,但对于 doc2vec 余弦相似性:

0 投票
1 回答
548 浏览

gensim - 使用 Spacy 在 doc 中查找最相似的句子

我正在寻找一种解决方案来使用类似most_similar()fromGensim但使用Spacy. 我想在使用 NLP 的句子列表中找到最相似的句子。

我尝试在循环中一一使用similarity()Spacy例如https://spacy.io/api/doc#similarity),但这需要很长时间。

更深入:

我想把所有这些句子放在一个图中(像这样)来找到句子簇。

任何的想法 ?

0 投票
2 回答
219 浏览

python - 如何在数百万个条目中找到文本相似度?

使用 Spacy 在少数文本中查找相似性后,现在我正尝试在数百万个条目中(即时)查找相似文本。

我有一个包含数百万条文本的应用程序,如果他们要求,我想向用户展示类似的文本。

StackOverflow 之类的网站如何如此快速地找到类似问题?

我可以想象两种方法:

  1. 每次插入文本时,都会比较整个数据库并在两个问题之间建立链接(在具有两个外键的中间表中)
  2. 每次插入文本时,向量都会插入与该文本关联的字段中。每当用户要求相似的文本时,它都会“搜索”数据库中的相似文本。

我怀疑第二个选择。存储词向量是否足以快速搜索相似文本?

0 投票
0 回答
481 浏览

python - 如何从 WIKI-doc2vec 模型中获取新语料库的句子/文本相似度?

我目前正在做一个 NLP 项目。一项任务是比较两个新闻文章/标题的相似程度。

为此,我已经使用 gensim 库上的英文维基百科文章训练了一个 doc2vec 模型。现在我想通过从 wiki doc2vec 模型中推断向量来比较新文本的相似性。我尝试过的方法之一是 gensim docvecs 的 'similarity_unseen_docs' 功能。但是,结果并不是很直观。我可以知道有没有其他方法可以获得具有更好性能的相似度分数?或者也许代码的某些部分是错误的?

doc2vec模型的训练:

比较相似度:

输出相似度分数仅为~0.25,这似乎并不好。

这是训练的代码:

请让我知道培训是否有任何错误导致推断看不见的文档不准确。

0 投票
1 回答
738 浏览

cluster-analysis - 如何在句子嵌入上应用聚类?

我想用原始文档的要点创建一个摘要。为此,我使用通用句子编码器(https://tfhub.dev/google/universal-sentence-encoder/2)制作了句子嵌入。之后,我想对我的向量应用聚类。

我试过图书馆sklearn

但我收到一条错误消息:

0 投票
1 回答
3125 浏览

python - 如何有效调整 Gensim Doc2Vec 的超参数以在文档相似性问题中实现最大准确性?

我有大约 20k 个 60 - 150 字的文档。在这 20K 个文档中,有 400 个文档已知类似文档。这 400 个文档作为我的测试数据。

目前我正在删除这 400 个文档并使用剩余的 19600 个文档来训练 doc2vec。然后我提取训练和测试数据的向量。现在对于每个测试数据文档,我发现它与所有 19600 个火车文档的余弦距离,并选择余弦距离最小的前 5 个。如果标记的类似文件出现在前 5 个中,则认为它是准确的。准确率% = 准确记录数/记录总数。

我找到类似文档的另一种方法是使用 doc2Vec 最相似的方法。然后使用上面的公式计算精度。

以上两个精度不匹配。每个时期一个增加另一个减少。

我正在使用这里给出的代码:https ://medium.com/scaleabout/a-gentle-introduction-to-doc2vec-db3e8c0cce5e 。用于训练 Doc2Vec。

我想知道如何调整超参数,以便通过使用上述公式获得准确性。我应该使用余弦距离来查找最相似的文档还是应该使用 gensim 的最相似函数?