2015-04-01 109 views
0

我想看看兩部電影之間的電影是否相同,並且要這樣做我想比較演員作爲其中一項標準。但是,演員經常在不同的頁面上列出。例如:模糊匹配人名單

  • 在此頁面,https://play.google.com/store/movies/details?id=cSdcb2KOH74,演員們被列爲「米克哈爾·加拉斯蒂恩,丹尼·特喬,吉列爾莫·迪亞斯,奧列格·塔克塔羅維,凱姆·惠特利,克里斯托弗羅賓·米勒,羅伯特熊,弗拉基米爾·亞格利奇,喬希·麥克勒倫」

  • 一此頁面,http://www.imdb.com/title/tt2167970/,演員爲「伊萬·斯特諾弗,英格麗·奧萊里斯卡亞,弗拉基米爾·亞格利奇」

以前,我在做一個非常粗略的比賽:

if actors_from_site_1[0] == actors_from_site_2[0] 

但是,從上面的例子可以看出,這不是一個好技術。看看一部電影中的演員是否與其他電影演員相匹配會更好?

回答

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

如果所有的列表以逗號分隔的演員的名字,分裂他們的逗號,小寫的名字,並得到交集:

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 
+0

...然後呢? – MattDMo 2015-04-01 01:45:59

+1

@MattDMo:如果路口包含足夠多的演員組合,您可以將其視爲相同......或者您可以將該信息與其他信息結合使用以決定電影是否相同... – ArtOfWarfare 2015-04-01 01:52:47

+0

@ArtOfWarfare正確。當答案是[不是真的]時,我寫了我的評論(http://stackoverflow.com/revisions/29381487/1)。 – MattDMo 2015-04-01 15:43:22

1

嘗試:

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

然後,你有similaractors所有他們分享的演員名單。請致電len(similaractors)以獲取相似演員的人數,然後您可以print(similaractors)並執行您可能對列表執行的所有操作。