文档帮助中心文档
编辑距离最近邻搜索器
编辑距离搜索程序使用编辑距离在已知字符串列表中执行最近邻搜索。
eds=editDistanceSearcher(词汇表,最大距离)
eds=editDistanceSearcher(词汇表、最大距离、名称、值)
例子
电子数据系统=editDistanceSearcher(词汇,最大距离)创建编辑距离搜索器并设置词汇和最大距离属性。返回的对象搜索词汇最大编辑距离最大距离.
电子数据系统=editDistanceSearcher(词汇,最大距离)
电子数据系统
词汇
最大距离
电子数据系统=editDistanceSearcher(词汇,最大距离,名称、值)使用一个或多个名称-值对参数指定其他选项。
电子数据系统=editDistanceSearcher(词汇,最大距离,名称、值)
名称、值
全部展开
要比较的字,指定为字符串向量、字符向量或字符向量的单元格数组。
数据类型:烧焦|一串|细胞
烧焦
一串
细胞
最大编辑距离,指定为正标量。
数据类型:单一的|双重的|国际8|国际16|国际32|国际64|单位8|单元16|uint32公司|单元64
单一的
双重的
国际8
国际16
国际32
国际64
单位8
单元16
uint32公司
单元64
插入成本
插入grapheme的开销,指定为非负标量或函数句柄。
如果插入成本是函数句柄,则函数必须接受单个输入并返回将输入插入源的成本。成本函数必须具有成本=func(grapheme),函数返回插入的成本字位输入源字符串。
成本=func(grapheme)
字位
如果指定自定义成本函数,则搜索者将执行彻底搜索。对于大型词汇表,函数KNN搜索和范围搜索可能需要很长时间才能找到匹配的。
KNN搜索
范围搜索
数据类型:单一的|双重的|国际8|国际16|国际32|国际64|单位8|单元16|uint32公司|单元64|功能手柄
功能手柄
删除成本
删除grapheme的开销,指定为非负标量或函数句柄。
如果删除成本是函数句柄,则函数必须接受单个输入并返回从源中删除输入的成本。成本函数必须具有成本=func(grapheme),其中函数返回删除的成本字位从源字符串。
替代成本
替换grapheme的开销,指定为非负标量或函数句柄。
如果替代成本是函数句柄,则函数必须正好接受两个输入,并返回将源中的第一个输入替换为第二个输入的成本。成本函数必须具有成本=func(grapheme1,grapheme2),其中函数返回替换的成本图示1具有图示2在源头。
成本=func(grapheme1,grapheme2)
图示1
图示2
交换成本
中导
交换相邻graphemes的开销,指定为非负标量或函数句柄。
如果交换成本是函数句柄,则函数必须正好接受两个输入,并返回将源中的第一个输入与第二个输入交换的代价。成本函数必须具有成本=func(grapheme1,grapheme2),其中函数返回交换相邻图形的代价图示1和图示2在源头。
全部折叠
创建一个最大编辑距离为3的编辑距离搜索词“数学作品”,“MATLAB”,和“分析”.
“数学作品”
“MATLAB”
“分析”
词汇=[“数学作品”“MATLAB”“分析”]; eds=editDistanceSearcher(词汇表,3)
eds=editDistanceSearcher,属性:词汇:[“MathWorks”“MATLAB”“Analytics”]最大距离:3 InsertCost:1 DeleteCost:1 SubstituteCost:1 SwapCost:Inf
使用Damerau Levenshtein编辑距离创建编辑距离搜索器。Damerau-Levenshtein编辑距离是插入、删除、替换和交换的最低数量。
根据单词创建编辑距离搜索器“数学作品”,“MATLAB”,和“分析”并指定最大距离3。若要指定Damerau Levenshtein编辑距离,请设置'交换成本'到1。
'交换成本'
词汇=[“数学作品”“MATLAB”“分析”]; eds=editDistanceSearcher(词汇表,3,'交换成本',1)
eds=editDistanceSearcher,属性:词汇:[“MathWorks”“MATLAB”“Analytics”]最大距离:3 InsertCost:1 DeleteCost:1 SubstituteCost:1 SwapCost:1
创建编辑距离搜索器。
词汇=[“文本”“分析”“工具箱”]; eds=editDistanceSearcher(词汇表,2);
找到最接近的单词“测试”和“分析”.
“测试”
字数=[“测试”“分析”]; idx=knnsearch(编辑,单词)
idx公司=2×11 2
使用返回的索引从词汇表中获取单词。
nearestWords=eds.词汇表(idx)
近义词=1x2串“文本”“分析”
创建编辑距离搜索器并指定最大编辑距离3。
词汇=[“数学作品”“MATLAB”“金宝appSimulink”“文本”“分析”“分析”]; 最大距离=3;eds=editDistanceSearcher(词汇表,最大距离);
找到最接近的单词“测试”,“分析性”,和“分析”编辑距离小于或等于1。
“分析性”
字数=[“测试”“分析性”“分析”]; 最大距离=1;idx=范围搜索(eds、Word、maxDist)
idx公司=3×1细胞阵列{[4]}{[5]}{1x0双精度}
为了“分析”,搜索者中没有指定范围内的单词。为了“测试”和“分析性”,各有一个结果。查看对应的单词“测试”使用返回的索引。
nearestWords=eds.词汇表(idx{2})
nearestWords=“分析”
找到最接近的单词“测试”,“分析性”,和“分析”编辑距离小于或等于3及其相应的编辑距离。
字数=[“测试”“分析性”“分析”]; 最大距离=3[idx,d]=范围搜索(eds,单词,最大距离)
idx公司=3×1细胞阵列{[ 4]} {[5 6]} {[ 6]}
d级=3×1细胞阵列{[ 1]} {[1 2]} {[ 3]}
两者皆适用“测试”和“分析”,搜索者中有一个词在指定范围内。为了“分析性”,有两个结果。查看对应的单词“分析性”(第二个词)使用返回的索引及其编辑距离。
i=2;nearestWords=eds.词汇表(idx{i})
近义词=1x2串“分析”“分析”
d{i}
答案=1×21 2
默认情况下,该函数使用Levenshtein距离:将一个字符串转换为另一个字符串所需的最小插入、删除和替换次数。
对于其他常用的编辑距离,请使用以下选项:
“交换成本”,1
'插入成本',Inf,'删除成本',Inf
更正拼写|编辑距离|KNN搜索|范围搜索|分裂体|标记化文档
更正拼写
编辑距离
分裂体
标记化文档
您拥有此示例的修改版本。是否要用编辑打开此示例?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站来获取翻译后的内容,并查看当地的活动和优惠。根据您的位置,我们建议您选择:.
也可以从以下列表中选择网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站没有针对您所在位置的访问进行优化。
联系当地办事处