文本挖掘 - 确定阈值的词之间的相似性

数据挖掘 r 文本挖掘
2021-09-22 04:38:08

在试图找出一个地方(军校)和另一个地方(军校或军校 S)的相似之处时,我使用了 LV 算法来查找字符串距离,然后将它们转换为校准后的百分比规模。

stringdist(data[i,1],data[i,2],method = "lv")

尽管这是可以接受的,但我仍然需要一种更精确的方法来确定阈值。目标是为标准化名称中的名称变体设置接受阈值,这样如果这个词的阈值小于 85%,它将被拒绝。本练习是数据预处理的一部分。

有什么建议。

2个回答

您是否尝试过word2vec模型?主要应用之一是计算相似词,因为它们在特征向量空间中非常接近。因此,除了High_schoolH_school,也secondary_schoolpublic_school也可以作为更接近的词获得。重要的是,这种无监督学习模型需要大量的句子。

参考:gensimjava 中的 word2vec

为了优化字符串距离阈值以最大限度地提高数据中的分类准确性,如果您还没有黄金标准数据集,您将需要标记一些数据。根据您的情况,这可能就像您自己手动将字符串对标记为samenotsame一样简单。如果您需要更强大的数据,您显然希望使用多个标记器并使用某种程序来确保编码器间的高可靠性(我在此答案中的数据质量下详细讨论了这一点)。

接下来,像以前一样在此数据上计算字符串距离。创建一个阈值向量,例如 ,thresholds <- seq(from = 0, to = 20, by = 1)然后为每个阈值计算您在标记数据集上的性能指标(例如,准确度、精确度、召回率)。选择最大化所需指标的阈值。