1

我希望能够匹配(尽可能接近)两个文本字段。关于如何在 Oracle 中执行此操作的任何想法。我已经研究过在 Oracle Text 中使用 Context,但我不知道如何解析要输入的字段之一以包含选择中的子句。

示例:搜索“这是红色汽车”将根据两个值中的“红色汽车”返回“红色汽车属于斯蒂芬”。

4

1 回答 1

1

我认为您正在寻找的术语是stringsimilarity。在尝试找出两个字符串的相似程度时,您可以选择很多不同的算法。

但是,如果您想要一个快速简便的解决方案,请查看UTL_MATCH。它可以为您提供一个从 0 到 100 的简单数字分数,用于确定两个字符串的相似程度。它只有 2 种算法可供选择。对于您的两个示例字符串:

utl_match.edit_distance_similarity('This is Red Car', 'Red Car belongs to Stephen')使用基本编辑/Levenshtein 距离给出 12 分(0-100 分)。

utl_match.jaro_winkler_similarity('This is Red Car', 'Red Car belongs to Stephen')给出 51 分(也是 0-100)。所以我猜你可能想用这个来达到你的目的。但是请随意在您的真实数据上尝试它们,或者尝试根据不同的知名算法编写自己的代码(例如,我看到有人使用 Sørensen-Dice 系数)。

于 2018-01-09T21:37:31.007 回答