我想使用 JaroWinkler 相似性比較兩個不同大小的列表。List_1有5元素,它來自列數(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'] 為了計算 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é)果(即僅來自 的前 5 個元素list_2。我做錯了什么嗎(例如,考慮熱圖不是平方的)?有沒有其他方法可以可視化不同大小列表之間的相似性?建議會很受歡迎。
1 回答

藍山帝景
TA貢獻1843條經(jīng)驗 獲得超7個贊
你可以簡單地做:
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])
添加回答
舉報
0/150
提交
取消