Python 模糊匹配人员列表

Python 模糊匹配人员列表,python,fuzzy-comparison,Python,Fuzzy Comparison,我想看看一部电影在两页之间是否是相同的,为此我想比较演员作为标准之一。然而,演员在不同页面上的列表往往不同。例如: 在这一页上,演员被列为“米哈伊尔·加卢斯蒂安、丹尼·特雷乔、吉列尔莫·迪亚斯、奥列格·塔克塔罗夫、基姆·惠特利、克里斯托弗·罗宾·米勒、罗伯特·贝尔、弗拉基米尔·雅格利希、乔什·麦克勒伦” 在这一页上,演员们扮演“伊万·斯特布诺夫、英格丽德·奥莱林斯卡娅、弗拉基米尔·亚格利奇” 之前,我在做一个非常粗糙的比赛: if actors_from_site_1[0] == actor

我想看看一部电影在两页之间是否是相同的,为此我想比较演员作为标准之一。然而,演员在不同页面上的列表往往不同。例如:

  • 在这一页上,演员被列为“米哈伊尔·加卢斯蒂安、丹尼·特雷乔、吉列尔莫·迪亚斯、奥列格·塔克塔罗夫、基姆·惠特利、克里斯托弗·罗宾·米勒、罗伯特·贝尔、弗拉基米尔·雅格利希、乔什·麦克勒伦”

  • 在这一页上,演员们扮演“伊万·斯特布诺夫、英格丽德·奥莱林斯卡娅、弗拉基米尔·亚格利奇”

之前,我在做一个非常粗糙的比赛:

if actors_from_site_1[0] == actors_from_site_2[0]

但是,从上面的例子中可以看出,这不是一种好的技术。看一部电影中的演员是否与其他电影中的演员匹配,有什么更好的方法吗?

如果所有列表都是以逗号分隔的演员姓名,请将其拆分为逗号,并将姓名小写,然后获得交点:

actors_from_site_1 = set(actors_from_site_1.lower().split(','))
actors_from_site_2 = set(actors_from_site_2.lower().split(','))

common_actors = actors_from_site_1 & actors_from_site_2

如果所有列表都是以逗号分隔的参与者名称,请将其拆分为逗号,并将名称小写,然后获得交点:

actors_from_site_1 = set(actors_from_site_1.lower().split(','))
actors_from_site_2 = set(actors_from_site_2.lower().split(','))

common_actors = actors_from_site_1 & actors_from_site_2

您可以检查两组参与者的集合交点的长度

if len(set(actors_from_site_1).intersection(set(actors_from_site_2))):
或者你可以这样做:

if any(actor in actors_from_site_1 for actor in actors_from_site_2):

您可以检查两组参与者的集合交点的长度

if len(set(actors_from_site_1).intersection(set(actors_from_site_2))):
或者你可以这样做:

if any(actor in actors_from_site_1 for actor in actors_from_site_2):
尝试:

然后,您将
similaractors
作为他们共享的所有参与者的列表。调用
len(similaractors)
获取相似参与者的数量,然后您可以
打印(similaractors)
并使用列表执行所有其他操作。

尝试:


然后,您将
similaractors
作为他们共享的所有参与者的列表。调用<代码> LeN(SimulasActudio)<代码>以获得相似的演员的数量,然后你可以“代码>打印(SimulasActudio)< /Cord>并做你可以用列表做的其他事情。

@ MattdMo:如果交叉点包含足够大的一组演员,你可以考虑它们相同的……或者你可以将这些信息与其他信息结合起来,来决定电影是否相同…@ArtOfWarfare correct。我在回答时写下了我的评论。“MattDMo:啊,我忘了在一个问题被问及后很快发布的答案往往在发布后不久就会经过实质性的修改。”MattdMo:如果交叉路口有足够大的一组演员,你可以认为它们是一样的。或者你可以将这些信息与其他信息结合起来,来决定电影是否相同…@ArtOfWarfare correct。我写评论的时候,答案是。@MattDMo:啊,我忘了在提问后这么快就发布的答案往往在发布后很快就会进行大量修改。