Teradata

如何在 Teradata 中測量文本相似度(Jaro-Winkler)?

  • April 15, 2021

在 Oracle 中,我們可以使用 Jaro-Winkler 測量文本相似度,如下所示:

SELECT UTL_MATCH.JARO_WINKLER_SIMILARITY('STACKEXCHANGE', 'STAMPEXCHANGE') MYSTRING
FROM DUAL;
--98

事實證明,Teradata 也有 Jaro-Winkler,如此所述。不幸的是,我只是不理解那裡的文件和範例。

到目前為止,我在 Teradata 中可以做的是使用 EDITDISTANCE:

SELECT EDITDISTANCE('STACKEXCHANGE', 'STAMPEXCHANGE') MYSTRING;
--2

那麼,如何在 Teradata 中使用 Jaro-Winkler 測量文本相似度?誰能給我一些簡單的例子?

16.20.24.01 是 FU1,FU2 是 16.20.40.01+

此函式不是標量函式,它是用於集合處理的表運算符語法。你必須習慣它,但是那些運營商非常強大。

SELECT * 
FROM StringSimilarity
( ON
    (
      SELECT 1 as id, 'STACKEXCHANGE' as a, 'STAMPEXCHANGE' as b
      -- FROM ...
    )
  PARTITION BY ANY
  USING
    ComparisonColumnPairs ('jaro_winkler(a,b) AS jw_dist')
    Accumulate ('id')
) AS dt

引用自:https://dba.stackexchange.com/questions/289770