You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle APEX中对比两个varchar2字段获取文本相似度百分比方案咨询

Oracle APEX 文本相似度匹配实现方案

方案一:直接使用Oracle内置UTL_MATCH包(推荐)

Oracle 11g及以上版本默认自带UTL_MATCH工具包,无需额外部署组件即可直接实现文本相似度计算,返回0-100的整数百分比,完全适配你的需求。包内提供两类常用计算函数,可根据场景选择:

  • UTL_MATCH.JARO_WINKLER_SIMILARITY(文本1, 文本2):适合短文本模糊匹配,对单词顺序相近的文本匹配精度更高
  • UTL_MATCH.EDIT_DISTANCE_SIMILARITY(文本1, 文本2):基于编辑距离计算,适合字符拼写差异为主的场景

示例查询代码

直接在APEX的SQL查询或者PL/SQL逻辑中使用如下代码,其中:v_symptom为APEX中的绑定变量:

SELECT
  id,
  UTL_MATCH.JARO_WINKLER_SIMILARITY(Symptom_Descr, :v_symptom) AS similarity_percent
FROM SYMPTOMS
ORDER BY similarity_percent DESC;

如果需要过滤低相似度记录,可添加WHERE条件:

SELECT
  id,
  UTL_MATCH.JARO_WINKLER_SIMILARITY(Symptom_Descr, :v_symptom) AS similarity_percent
FROM SYMPTOMS
WHERE UTL_MATCH.JARO_WINKLER_SIMILARITY(Symptom_Descr, :v_symptom) > 10
ORDER BY similarity_percent DESC;

方案二:自定义PL/SQL相似度函数

如果内置函数的匹配精度无法满足业务需求,可自行实现基于词袋模型的余弦相似度计算,适配长文本或者语义匹配要求更高的场景:

  • 第一步:编写分词函数,将输入文本按分隔符拆分为独立单词集合
  • 第二步:过滤停用词(可选),比如the、a等无意义的常用词
  • 第三步:计算两个文本的词频向量,输出向量的余弦相似度并转换为百分比格式

内容的提问来源于stack exchange,提问作者user13768246

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:36:01