与最相似的字符串进行比较
string comparison with the most similar string
有没有人知道是否存在一种算法,给定一个字符串A和字符串数组B,将A字符串与B中的所有字符串进行比较,在输出中给出最相似的字符串
对于"最相似的一个",我的意思是,例如,
如果A字符串是:"hello world how are you"
然后
"asdf asdewr hello world how asfrqr you"
与
更相似"h2ll4 w1111h1111111 "
通常的测量方法是Levenshtein距离。计算从原始点到每个候选点的Levenshtein距离,并取最小的距离作为最可能的候选点。
定义相似性。可以这样做的算法包括:
- Levenshtein/LCS/n-gram距离(将字符串与集合中的每个字符串进行比较,取距离最小的字符串)
- tf-idf索引
- Levenshtein自动机 <
- Hopfield网络/gh>
- BK-trees
所有这些都可以在C或c++中实现。在谷歌上搜索"字符串相似度"、"重复查找"或"记录链接",查找可用的度量标准和算法。
这通常是通过检查字符串的一堆变化来完成的…看看拼写校正算法——例如这里
相关文章:
- 视觉C++使用 map 来比较字符串中的每个单词
- 我正在尝试从输入文件中读取,然后使用它们的子字符串比较字符串的特定部分
- 比较字符串的 GetLine 工作一次,然后比较之后不起作用
- C++使用关系运算符比较字符串
- 通过默认复制构造函数比较 C++ 字符串是否会影响性能,原因为何?
- C++ TCP 服务器比较字符串失败
- 如何在不复制的情况下比较字符串的一部分?
- 比较 C++ 字符串打印中的两个整数数组
- 如何比较字符串形式的临时变量
- std::out_of_range 比较字符串中的符号时出错
- 比较字符串大小写不区分的简单方法是什么?
- 比较字符串忽略 NUL
- 比较字符串(arduino)时出现问题
- 如何在C++中比较字符串
- 比较字符串对象等于向量中的元素
- C 比较字符串操作速度
- 需要比较字符串的某些元素
- 比较字符串 .c_str() 和普通字符串的差异
- C 比较字符串的字符
- 通过使用两个不同的队列比较字符串