模糊匹配人员列表
Fuzzy-match List of People
我想看看两页之间的电影是否相同,为此我想比较演员作为标准之一。但是,演员在不同页面上的列出方式通常不同。例如:
在此页面上,https://play.google.com/store/movies/details?id=cSdcb2KOH74,演员被列为"Mikhail Galustyan, Danny Trejo, Guillermo Díaz, Oleg Taktarov, Kym Whitley, Christopher Robin Miller, Robert Bear, Vladimir Yaglych, Josh McLerran"
一页,http://www.imdb.com/title/tt2167970/,演员为"Ivan Stebunov, Ingrid Olerinskaya, Vladimir Yaglych"
之前,我在以下方面进行了非常粗略的匹配:
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)
并执行您可能对列表执行的所有其他操作。
我想看看两页之间的电影是否相同,为此我想比较演员作为标准之一。但是,演员在不同页面上的列出方式通常不同。例如:
在此页面上,https://play.google.com/store/movies/details?id=cSdcb2KOH74,演员被列为"Mikhail Galustyan, Danny Trejo, Guillermo Díaz, Oleg Taktarov, Kym Whitley, Christopher Robin Miller, Robert Bear, Vladimir Yaglych, Josh McLerran"
一页,http://www.imdb.com/title/tt2167970/,演员为"Ivan Stebunov, Ingrid Olerinskaya, Vladimir Yaglych"
之前,我在以下方面进行了非常粗略的匹配:
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)
并执行您可能对列表执行的所有其他操作。