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