模糊匹配人员列表

Fuzzy-match List of People

我想看看两页之间的电影是否相同,为此我想比较演员作为标准之一。但是,演员在不同页面上的列出方式通常不同。例如:

之前,我在以下方面进行了非常粗略的匹配:

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

你可以检查两组演员的集合交集的长度。

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 = []
for actor in actors_from_site_1:
    if actor in actors_from_site_2:
        similaractors.append(actor)

然后,您有 similaractors 作为他们共享的所有演员的列表。调用 len(similaractors) 以获取相似演员的数量,然后您可以 print(similaractors) 并执行您可能对列表执行的所有其他操作。