使用序列匹配器比较文本相似性:为什么小写和大写字符串的结果不同



我在Panda数据帧中有一组文本(字母数字(,我想计算成对文本(例如文本1和2、2和3、3和4…(的相似性得分。

我正在使用序列匹配器进行计算,并且能够得到分数。我认为在将文本转换为小写后进行比较也是值得的。我创建了两个分数列来比较结果:score 1=非小写文本对的相似性得分(保留文本的原始大小写(score 2=小写文本对的相似性得分。

我期望小写文本对的相似性得分(得分2(更高,因为会有更多的字符匹配(例如"This SamPle pHrase"将与"This SamPle pHrase"匹配,因此相似性更高(。然而,我发现在某些情况下,1分远高于2分。你们中有人知道为什么会出现这种情况吗?

我试图在python文档中搜索,并在谷歌上搜索可能的原因,但找不到任何原因。我错过了什么?我想更多地了解这一点,如果有任何想法/建议,我将不胜感激!干杯

顺便说一句,我使用str.lower将数据帧中的文本转换为小写。

如果我正确理解这一点(使用本文作为源代码(,序列匹配器会匹配常见序列,并根据共享序列的数量返回分数

这不是你想要的。如果使用所有小写字母,则会有更长的公共序列,但会更少。

这是错误的工具。序列匹配器可能适用于基因序列、硬币投掷或其他相关事物的相似性,但并不适用于文本之间的相似性。

为了选择正确的指标,您首先必须清楚为什么要这样做。你说的";文本对之间的相似性";?这是一个不平凡的问题,答案在很大程度上取决于你分析的目的。

典型的衡量标准可以是每个句子或每个段落中有词干或没有词干的单词的频率分布。或者你可以使用单词级别的Levenstein距离。逐字逐句地比较文本没有什么意义。

相关内容

  • 没有找到相关文章

最新更新