java 基于字符串相似性得分在两组字符串之间查找匹配项的最佳方法是什么?

uxhixvfz  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(110)

我有两组字符串示例:

Set1 = ["Which product do you use?", 
    "How would you rate the product?", "Would you purchase again?"]

Set2 = ["Would you buy it again?", "Select the product used?", 
    "Provide a rating to the product"]

现在我想将“您使用哪种产品?”与“选择使用的产品?”进行匹配,但仅基于简单的字符串匹配(由于时间复杂度增加,因此没有上下文相关的机器学习算法)
莱文施泰因距离是正确的选择吗?
另外,匹配字符串的最佳方法是什么?创建nC2组合并选择得分最高的组合?

c3frrgcw

c3frrgcw1#

IMO对字符串的“盲目”比较不会给人给予什么满意的结果,因为它根本没有考虑到语义。
无论如何,对于一个聊胜于无的方法,我会选择一个两级Levenshtein距离:第一级基于整个单词而不是字符,第二级基于通过标准Levenshtein距离的单词比较。在单词级,根据被替换单词之间的距离对替换进行加权。删除或插入可以接收固定权重或以某种方式与单词频率相关的权重。

相关问题