SimHash值计算算子利用SimHash算法为文本生成数字指纹,通过比对指纹相似度(汉明距离),快速识别内容相近的重复项,主要适用于长文本(1000词以上)的模糊查重,例如识别同一用户发布的重复恶意评论、合并相似问法的知识条目等场景;对于短文本,由于其特征稀疏,容易引发误判,因此不推荐使用。本文介绍SimHash值计算算子的配置方法。
前提条件
当前实例购买非结构化数据功能后,方可使用工作流功能。
已完成工作流的创建,详细创建步骤请参见创建及管理工作流。
背景信息
SimHash值计算算子支持处理以下格式的文件:仅解析元数据表中的字段值。
SimHash值计算算子默认分配2Core、0.5GB资源。
权限说明
Basic项目的项目管理员、开发者、分析师以及拥有数据集-使用权限的自定义项目角色,可在算子的输入和输出数据集中使用该项目下的所有数据集。
操作步骤
在Dataphin首页的顶部菜单栏中,选择研发 > 数据研发。
在开发页面的顶部菜单栏选择项目。
在左侧导航栏中选择数据处理 > 工作流,在左侧工作流列表中单击目标工作流,打开工作流画布,在左侧算子库中拖动SimHash值计算算子至画布中,并在右侧SimHash值计算面板中配置以下参数。
参数
描述
步骤名称
输入当前算子名称,支持任意字符,不超过256个字符。
输入配置
数据集
选择需处理的数据集,可选择混合数据集和表数据集。数据集选择完成后还需选择其版本,默认为该数据集正序的第一个版本。
当前算子作为其他算子的下游时,此处所选数据集通常与上游算子的输出数据集一致。
输入字段
待处理的文本。需选择输入数据集中来源字段,仅可选择输入数据集中是否URL参数为是的字段。
过滤条件(非必填)
使用SQL语法,仅需输入where语句后的过滤条件,支持使用系统全局变量,例如业务日期${bizdate}。
算子配置
功能模式
SimHash值计算算子支持以下三种功能模式:
比对判重:以比对数据集中已计算好的SimHash字段作为比对基准,计算输入文本的SimHash值并与该字段按选中的判定重复标准逐一比对,标记输入内容是否与已有内容重复,不删除或修改输入内容。
仅计算SimHash:仅计算输入内容的SimHash值,不删除或修改输入内容。
说明各功能模式的支持范围不同:比对判重、仅计算SimHash支持离线工作流、实时工作流和在线工作流。
数据集中空值不参与去重。
比对数据集
用于存储比对SimHash值的数据集,通过与输入字段比对判断输入内容是否重复。可选择混合数据集和表数据集。
说明仅功能模式选择比对判重时支持配置此项。
比对SimHash字段
作为比对基准的字段,需为比对数据集中已计算好的SimHash值。算子将输入字段计算出的SimHash值与该字段按选中的判定重复标准逐一比对,不会对该字段内容重新计算。
说明仅功能模式选择比对判重时支持配置此项。
判定重复标准
对两段文本分别计算SimHash值后,再计算两者的汉明距离,汉明距离越小,代表二者越相似。
仅高度相似才算重复:汉明距离小于等于1。
中度相似即算重复:汉明距离小于等于3,一般推荐选择此项。
轻微相似也算重复:汉明距离小于等于5。
说明仅比对判重模式支持配置此项。
输出配置
数据集
支持选择来源数据集(算子产出写回来源数据集)或其他数据集(算子产出写入指定的其他数据集)。若来源数据集的元数据表不存在主键,则输出数据集默认选择其他数据集。
当选择其他数据集时,还需指定一个混合数据集或表数据集及其版本作为输出数据集,默认为该数据集正序的第一个版本;同时,支持选择来源数据集的其他版本。
选择来源数据集时,算子产出的元数据将写入来源数据集同版本对应的元数据表中。
加载策略
若所选输出数据集的元数据表中存在主键,则默认选择主键冲突时更新;若不存在主键,则默认选择追加数据。
追加数据:直接向目标表新增追加数据,当主键/约束冲突时,会提示错误。
主键冲突时更新:当主键/约束冲突时,会先删除整行主键重复的旧数据,再插入新数据。
覆盖:先删除目标表的数据,再写入数据。
说明功能模式选择比对判重或仅计算SimHash,且输出数据集选择来源数据集时,加载策略仅支持主键冲突时更新。
字段映射
SimHash值计算算子将固定输出以下字段:
is_duplicate:输入内容是否与比对SimHash字段中的值重复,取值为yes(重复)、no(不重复)和failed(计算失败)。仅功能模式选择比对判重,且输出数据集选择其他数据集时输出。simhash:SimHash签名值。
算子输出字段默认映射至输出数据集的同名字段,您也可以手动选择目标字段进行自定义映射。此外,支持将来源数据集的透传字段映射至目标数据集。您可以通过以下方式管理字段映射:
新增输出字段:单击后新增一行空白字段映射关系。仅输出数据集选择其他数据集时支持此功能。
批量映射:单击后可选择批量手动映射、同名映射或同行映射。仅输出数据集选择其他数据集时支持此功能。
删除映射:单击删除图标可删除对应行的字段映射,但算子固定输出字段的映射不支持删除。
说明功能模式选择比对判重时,simhash字段映射为非必填。
配置完成后,单击画布顶部菜单栏中的保存,保存此次配置。
单个算子配置完成后,可继续为其选择上游或下游算子来完成完整工作流的配置。