我正在寻找一种算法,该算法将采用字符串向量v1
并返回一个相似的字符串向量,v2
其中每个字符串的长度小于x
字符长度并且是唯一的。中的字符串v1
可能不是唯一的。
虽然我需要在 中接受 ASCII,但在需要插入新字符时v1
,我宁愿只插入字母数字字符 ( [A-Za-z0-9]
)。
显然这里有三个警告:
对于 and 的某些值,
v1
不可能x
是唯一的v2
。例如,当v1
有 37 个元素和x == 1
.问题中指定的“类似”是主观的。字符串将面向用户,并且可能是简短的自然语言短语(例如“颜色数量”)。我希望人类能够尽可能轻松地将原始字符串映射到缩短的字符串。这可能意味着利用启发式方法,例如disemvoweling。因为我的相似性构造可能没有客观的衡量标准(字符串距离在这里可能不是最有用的,尽管它可能)我对什么是好的判断将是任意的。该方法应该适用于英语 - 其他语言无关紧要。
显然这是一个(编程)与语言无关的问题,但我会看好 python 中的实现(因为我发现它的字符串处理语言直截了当)。