字符串相似度-topN算法组件用于计算字符串相似度,并筛选出最相似的Top N个数据。本文为您介绍字符串相似度-topN算法组件的配置方法。
组件配置
您可以使用以下任意一种方式,配置字符串相似度-topN组件参数。
方式一:可视化方式
在Designer工作流页面配置组件参数。
页签 | 参数 | 描述 |
字段设置 | 输入表在输出表追加的列名 | 输入表中需要在输出表中追加的列名。 |
映射表在输出表追加的列名 | 映射表中需要在输出表中追加的列名。 | |
相似度计算中左表的列名 | 在相似度计算中,左表的列名。 | |
相似度计算中映射表的列名 | 在相似度计算中,映射表的列名。左表中的每一行都会和映射表中所有的字符串计算出相似度,并最终以Top N的方式输出计算结果。 | |
输出表中相似度列的列名 | 输出表中相似度列的列名。列名中不能有特殊字符,只能使用英文a~z、A~Z、数字或下划线(_),且以字母开头,长度不超过128字节。默认值为output。 | |
参数设置 | 最终给出的相似度最大值的个数 | 输出Top相似度的个数。取值范围为正整数,默认值为10。 |
相似度计算方法 | 指定相似度计算方法类型。取值范围为:
| |
子串的长度 | 仅当相似度计算方法取值为ssk、cosine或simhash_hamming_sim时,才需要配置该参数。取值范围为(0,100)。默认值为2。 | |
匹配字符串的权重 | 仅当相似度计算方法取值为ssk或simhash_hamming_sim时,才需要配置该参数。取值范围为(0,1)。默认值为0.5。 | |
执行调优 | 计算的核心数 | 默认为系统自动分配。 |
每个核心的内存(MB) | 默认为系统自动分配。 |
方式二:PAI命令方式
使用PAI命令方式,配置该组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见SQL脚本。
PAI -name string_similarity_topn
-project algo_public
-DinputTableName="pai_test_string_similarity_topn"
-DoutputTableName="pai_test_string_similarity_topn_output"
-DmapTableName="pai_test_string_similarity_map_topn"
-DinputSelectedColName="col0"
-DmapSelectedColName="col1";
参数名称 | 是否必选 | 描述 | 默认值 |
inputTableName | 是 | 输入表的名称。 | 无 |
mapTableName | 是 | 映射表的名称。 | 无 |
是 | 输出表的名称。 | 无 | |
inputSelectedColName1 | 否 | 在相似度计算中,左表的列名。 | 表中第一个STRING类型的列名 |
inputSelectedColName2 | 否 | 在相似度计算中,映射表的列名。 | 表中第一个STRING类型的列名 |
inputAppendColNames | 否 | 输入表中需要在输出表追加的列名。 | 无 |
inputAppendRenameColNames | 否 | 输入表中需要在输出表追加的列名的别名。 | 无 |
mapSelectedColName | 是 | 相似度计算中字典表的列名。 | 无 |
mapAppendColNames | 否 | 映射表中需要在输出表追加的列名。 | 无 |
mapAppendRenameColNames | 否 | 映射表中需要在输出表追加的列名的别名。 | 无 |
inputTablePartitions | 否 | 输入表的分区名称。 | 所有分区 |
mapTablePartitions | 否 | 映射表的分区名称。 | 所有分区 |
outputColName | 否 | 输出表中相似度列的列名。列名中不能有特殊字符,只能使用英文a~z,A~Z、数字或下划线(_),且以字母开头,长度不超过128字节。 | output |
method | 否 | 相似度计算方法类型。取值范围为:
| levenshtein_sim |
lambda | 否 | 仅当相似度计算方法取值为ssk或simhash_hamming_sim时,才需要配置该参数。取值范围为(0,1)。 | 0.5 |
k | 否 | 仅当相似度计算方法取值为ssk、cosine或simhash_hamming_sim时,才需要配置该参数。取值范围为(0,100)。 | 2 |
lifecycle | 否 | 输出表的生命周期。取值范围为正整数。 | 无 |
coreNum | 否 | 计算的核心数。 | 系统自动分配 |
memSizePerCore | 否 | 每个核心的内存数。 | 系统自动分配 |
资源使用及费用预估
由于string_similarity_topn是一个M*N计算复杂度的算法(在M条记录中为N条记录找到最接近的字符串,需要计算两两样本的距离,因此需要计算M*N次),因此运行该算法时申请使用的资源和M*N成正比关系。
如果要在M条记录中为N条记录找到距离最近的记录,则申请的worker数量为M*N/(1024*1024*32),最大为1000;每个worker的内存为N/8 MB,取值范围为4~64 GB;按照计量模型的一个CU提供4 GB内存来计算,该算法最大CU申请量为1000*64/4=16000 CU。
相关文档
关于Designer更详细的内容介绍,请参见Designer概述。
您可以在信息检索、自然语言处理和生物信息学等领域,使用字符串相似度组件来计算字符串相似度。关于该组件的使用详情,请参见字符串相似度。