繁体   English   中英

人的模糊匹配列表

[英]Fuzzy-match List of People

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

  • 在此页面https://play.google.com/store/movies/details?id=cSdcb2KOH74上 ,演员被列出为“米哈伊尔·加卢斯蒂安,丹尼·特雷霍,吉列尔莫·迪亚兹,奥列格·塔克塔罗夫,凯姆·惠特利,克里斯托弗·罗宾·米勒,罗伯特熊,弗拉基米尔·雅格(Joseph McLerran)

  • 一页, http://www.imdb.com/title/tt2167970/ ,演员是“伊万·斯特布诺夫(Ivan Stebunov),英格丽(Ingrid Olerinskaya),弗拉基米尔·雅格(Vladimir Yaglych)”

以前,我在以下方面做过非常粗略的匹配:

if actors_from_site_1[0] == actors_from_site_2[0]

但是,从上述情况可以看出,这不是一个好方法。 看看一部电影中的演员是否与其他演员匹配的更好的技术是什么?

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

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):

如果所有列表都是用逗号分隔的演员名称,请在逗号上将它们分开,小写名称,然后得到交集:

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

尝试:

similaractors = []
for actor in actors_from_site_1:
    if actor in actors_from_site_2:
        similaractors.append(actor)

然后,您将similaractors的演员作为他们共享的所有演员的列表。 调用len(similaractors)以获得相似角色的数量,然后可以print(similaractors)相似角色print(similaractors)并执行列表可能要做的所有其他事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM