标签: similarity

如何计算两个相等维数的时间序列之间的马哈拉诺比斯距离?

我正在对时间序列数据进行一些数据挖掘.我需要计算两个相等维度系列之间的距离或相似度.我被建议使用欧几里德距离,Cos相似度或马哈拉诺比斯距离.前两个没有提供任何有用的信息.我似乎无法理解网络上的各种教程.

所以,

给定两个向量A(A1,A2,A3,...,AN)和B(B1,B2,B3,...,BN)你如何找到马氏它们之间的距离?

(我使用这些距离度量接受咨询SO本身,还有一个问题,关于如何计算余弦相似性;因此,请考虑关闭这个问题之前)

math time distance similarity data-mining

3
推荐指数
1
解决办法
1万
查看次数

通过有向图比较有向路径相似度的算法

我有一个有向图,其中有两条有向路径。

我想要一种算法来确定两条路径之间的相似性。

这篇文章提到使用编辑距离来确定近似相似度。我还意识到汉明距离使用类似的度量。

我的问题是:

如何处理两条路径彼此平行的情况。也就是说,如果两条路径没有相似的节点,但仍将被视为“相似”,因为它们的路径在相同方向上行进且彼此非常接近。

谢谢

compare directed-graph path similarity graph-algorithm

3
推荐指数
1
解决办法
4925
查看次数

使用iSPARQL使用相似性度量来比较值

我有一个问题问你.

我想编写一个查询,检索与给定字符串"Londn"相似的值(给定相似函数,如Lev),以与DBPedia的谓词"RDFS:label"进行比较.例如,在输出中,我想获得"伦敦"的价值.我已经读过可用的方法可能是使用iSPARQL("不精确的SPARQL"),尽管它在文献中没有被广泛使用.

我可以使用iSPARQL还是有一些SPARQL方法来执行相同的操作?

semantic-web similarity sparql dbpedia linked-data

3
推荐指数
1
解决办法
643
查看次数

我可以使用 SVM 进行相似度匹配吗

假设我使用一些方法从两个样本中提取了两个特征向量,我想比较这两个特征向量以预测它们是来自同一类还是不同的类。我可以为此目的使用 SVM 吗?据我了解,SVM 用于接受一个输入(现在我有两个)并预测它是否属于一个特定的类。我不知道如何使用它进行相似度测量。

余弦距离或欧几里德距离等简单方法已经测试过,性能较差。所以我只想尝试一些学习方法,例如 SVM、NN 或其他,如果您有任何建议。谢谢!

machine-learning similarity svm

3
推荐指数
1
解决办法
1056
查看次数

如何在python中具有相似性分数的大字符串中找到相似的子字符串?

我正在寻找的不仅仅是两个文本之间的简单相似度分数。但是字符串中子字符串的相似度得分。说:

text1 = 'cat is sleeping on the mat'.

text2 = 'The cat is sleeping on the red mat in the living room'.
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,所有的词text1都存在于text2完全中,因此相似度应该是 100%。

如果text1缺少某些单词,则得分会更低。

我正在处理一个不同段落大小的大型数据集,因此在具有这种相似性得分的较大段落中找到较小的段落至关重要。

我只发现了比较两个字符串的字符串相似性,例如余弦相似性、difflib 相似性等。但不是关于另一个字符串中的子字符串分数。

python string nlp distance similarity

3
推荐指数
1
解决办法
3093
查看次数

Python的缩写检测

我正在尝试衡量公司名称的相似性,但是在尝试匹配这些名称的缩写时遇到了困难。例如:

IBM
The International Business Machines Corporation
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用fuzzywuzzy来衡量相似性:

>>> fuzz.partial_ratio("IBM","The International Business Machines Corporation")
33
>>> fuzz.partial_ratio("General Electric","GE Company")
20
>>> fuzz.partial_ratio("LTCG Holdings Corp","Long Term Care Group Inc")
39
>>> fuzz.partial_ratio("Young Innovations Inc","YI LLC")
33
Run Code Online (Sandbox Code Playgroud)

您是否知道任何技术可以衡量此类缩写的更高相似度?

python string nlp similarity fuzzy-comparison

3
推荐指数
1
解决办法
4455
查看次数

Python中字符串的相似性度量

我想测量两个词之间的相似度。想法是使用OCR读取文本并检查关键字的结果。我要寻找的功能应该比较两个单词并以%返回相似度。因此,将单词与自身进行比较应该是100%相似的。我自己编写了一个函数,然后逐个字符比较char,然后返回与长度成比例的匹配数。但是问题是

wordComp('h0t',hot')
0.66
wordComp('tackoverflow','stackoverflow')
0
Run Code Online (Sandbox Code Playgroud)

但是直观的两个示例都应该具有很高的相似度> 90%。加Levenstein距离

import nltk
nltk.edit_distance('word1','word2')
Run Code Online (Sandbox Code Playgroud)

在我的函数中会将第二个结果提高到92%,但第一个结果仍然不好。

我已经找到了针对“ R”的解决方案,可以将此功能与另一种方法结合rpy2使用或agrepy用作另一种方法。但是我想通过更改接受基准来使程序变得越来越敏感(仅接受相似度> x%的匹配项)。

我还有其他可以使用的好方法吗?或者您有什么想法可以改善我的功能?

python similarity measure

3
推荐指数
1
解决办法
389
查看次数

是否有适用于一系列浮标的 Levenshtein 距离版本?

我想计算可以具有不同长度的时间序列数据段之间的相似性。在寻找相似性度量时,我想考虑长度和价值的差异。我认为 Levenshtein distance 对此会很好,只要它适用于一系列浮点数而不是字符串。

这个问题解释了当被替换的整数值的差异无关紧要时,如何将 Levenshtein distance 与整数列表一起使用。在这种情况下,值的差异很重要,较大的差异应该受到更多的惩罚(我正在使用浮点数)。

当然,我对完成类似事情的其他相似性指标持开放态度,我只是认为 Levenshtein 距离已经非常接近我想要的了。

例子:

  1. (0.22, 0.8, 1.2, 3.89)
  2. (0.2, 0.61, 9.2)

比较第一个元素的惩罚较小,下一个元素的惩罚稍大,然后第三个元素的惩罚较大,最后一个元素的删除惩罚。

algorithm signal-processing similarity information-theory levenshtein-distance

3
推荐指数
1
解决办法
177
查看次数

BERT 的无监督微调仅用于嵌入?

我想针对未标记数据的特定域微调 BERT,并让输出层检查它们之间的相似性。我该怎么做?我是否需要先微调分类器任务(或问题答案等)并获得嵌入?或者我可以只使用预先训练好的 Bert 模型而无需执行任务并使用我自己的数据进行微调?

nlp similarity bert-language-model

3
推荐指数
1
解决办法
1878
查看次数

使用 Word2Vec 的文本相似度

我想使用 Word2Vec 来检查文本的相似性。

我目前正在使用另一种逻辑:

from fuzzywuzzy import fuzz

def sim(name, dataset):
    matches = dataset.apply(lambda row: ((fuzz.ratio(row['Text'], name) ) = 0.5), axis=1)
   return 
Run Code Online (Sandbox Code Playgroud)

(名字是我的专栏)。

为了应用此功能,我执行以下操作:

df['Sim']=df.apply(lambda row: sim(row['Text'], df), axis=1)
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何用 Word2Vec 替换 Fuzzy.ratio 以便比较数据集中的文本吗?

数据集示例:

Text
Hello, this is Peter, what would you need me to help you with today? 
I need you
Good Morning, John here, are you calling regarding your cell phone bill? 
Hi, this this is John. What can I do for you?
...
Run Code Online (Sandbox Code Playgroud)

第一个文本和最后一个文本非常相似,尽管它们用不同的词来表达相似的概念。我想创建一个新列,用于为每一行放置相似的文本。我希望你能帮助我。

python similarity pandas word2vec

3
推荐指数
1
解决办法
1402
查看次数