我有一个单词相似性矩阵存储为pandas数据帧,其中列是约400个单词的“种子集”,行索引是约50,000个单词的大型词典.任何行/列的值都是两个单词之间从0到1的相似度.
>>> df_sim_mf.info()
<class 'pandas.core.frame.DataFrame'>
Index: 46265 entries, #angry to wonga
Columns: 451 entries, abandon to wrongs
dtypes: float64(451)
memory usage: 159.5+ MB
>>> df_sim_mf.sample(10).sample(5, axis = 1)
nationality purest unite lawless riot
assaulted 0.114270 -0.140504 0.182024 0.434651 0.510618
peekaboo -0.008734 -0.027742 0.051084 0.260245 0.201117
antibiotic 0.145310 0.270748 -0.126459 -0.083965 0.043086
killin -0.102474 0.123550 0.055935 -0.115381 0.285997
warrior 0.005229 0.281967 0.261230 0.344130 0.359228
actionscript -0.029405 0.077793 0.114047 -0.052599 -0.123401
controversy 0.336688 0.271007 0.373474 0.362565 0.305548
nic 0.164550 -0.159097 0.080056 0.271184 0.231357
healy 0.072831 0.102996 0.286538 0.335697 0.183730
uncovered 0.061310 0.274003 0.328383 0.300315 0.277491
我正在尝试从大型词典中查找与“种子集”中的任何一个都具有一定相似度的所有单词.也就是说,我想选择每行至少包含一个大于0.75的值.
我可以用几个简单的pandas命令来做到这一点吗?
解决方法:
您可以这样做:
df.loc[(df > 0.75).sum(axis=1) > 0, :]