我想使用 JaroWinkler 相似性比較兩個(gè)不同大小的列表。List_1有5元素,它來(lái)自列數(shù)據(jù)框,例如List_1=df['Movements'].tolist()IEList_1=['surrealism', 'futurism', 'impressionism', 'realism', 'neorealism']whilelist_2有7元素:list_2=['romantisme', 'surrealisme', 'realisme','creativité', 'liberté', 'poete','cubism','metaphysique'] 為了計(jì)算 JaroWinkler 距離,我使用了以下函數(shù):jarowinkler = JaroWinkler()df.Movements我按如下方式應(yīng)用于該列:for m in all_mov: df[m] = df.Movements.apply(lambda x: jarowinkler.similarity(x, m)) np.where(df[m] > 0.1, df[m], np.nan)我只想使用seaborn熱圖繪制jarowinkler.similarity大于的結(jié)果0.1。mask = np.zeros_like(df.Movements)mask[np.triu_indices_from(mask)] = Truewith sns.axes_style("white"): f, ax = plt.subplots(figsize=(10, 5)) ax = sns.heatmap(df['Movements'], mask=mask, square=False)但是,我只能看到正方形的結(jié)果(即僅來(lái)自 的前 5 個(gè)元素list_2。我做錯(cuò)了什么嗎(例如,考慮熱圖不是平方的)?有沒(méi)有其他方法可以可視化不同大小列表之間的相似性?建議會(huì)很受歡迎。
1 回答

藍(lán)山帝景
TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
你可以簡(jiǎn)單地做:
for m in all_mov:
#compute similarity
df[m] = df.Movements.apply(lambda x: jarowinkler.similarity(x, m))
# filter out low similarity scores
df[m] = np.where(df[m] > 0.1, df[m], np.nan)
sns.heatmap(data=df.set_index('Movements')[all_mov])
添加回答
舉報(bào)
0/150
提交
取消