簡體   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