提前谢谢你的帮助。在
我有一个字符串列表full_name_list = ["hello all","cat for all","dog for all","cat dog","hello cat","cat hello"]
我需要在每个元素和列表中的所有元素之间进行百分比匹配。例如,我需要首先将"hello all"分解为["hello", "all"],我可以看到{}在{}中,因此这将是一个50%的匹配。这是我到目前为止的情况
^{pr2}$
如您所见,每个子列表中的第一个单词包含要搜索的子字符串,后面是包含该子字符串的元素。我能够对一个单词匹配这样做,并且我意识到我可以继续这个过程,只需取单个单词之间的交集来获得双重匹配,例如cat for all [(cat,for) [u'cat for all']] [(for,all) [u'cat for all', u'dog for all']]
我的问题是递归地这样做,因为我不知道我最长的字符串将有多长。另外,有没有更好的方法来进行字符串搜索?最后我想找到100%匹配的字符串,因为实际上"hello cat" == "cat hello"。我还想找到50%的匹配,等等。在
我得到的一个想法是使用二叉树,但是我如何在python中实现这一点呢?以下是我目前为止的代码:logical_list = []
logical_list_2 = []
logical_list_3 = []
logical_list_4 = []
match_1 = []
match_2 = []
i = 0
logical_name_full = logical_df['Logical'].tolist()
for x in logical_name_full:
logical_sublist = [x]+x.split()
logical_list.append(logical_sublist)
for sublist in logical_list:
logical_list_2.append(sublist[0])
for split_words in sublist[1:]:
match_1.append(split_words)
for logical_names in logical_name_full:
if split_words in logical_names:
match_1.append(logical_names)
logical_list_2.append(match_1)
match_1 = []
logical_list_3.append(logical_list_2)
logical_list_2 = []