python 如何实现 获取类似树状图各个支点的索引

发布于 2022-09-11 23:49:19 字数 1429 浏览 22 评论 0

image.png
请教一个技术问题,我有个numpy格式的矩阵,里面储存的是文本之间的相似度矩阵,我现在想找出与第一个(举例第一个,实际是要找出所有单个文本的)文本相似的所有文本(其中第一行或第一列代表第一个文本与其它所有文本的相似度,相似度大于0.6则为相似),遇到一个问题,比如第一行中第3列、第12列的值都是大于0.6的,而第3列中的第10行、27行的值也是大于0.6,则认为3,12,10,27都是与第一个文本相似。根据我的计算方法,如若1、3、12、10、27这5行或5列中在没有比0.6大的值,则把1/3/12/10/27这几个索引放在同一个列表或字典里,默认他们5个是相似文本。请问我该如何提出1 3 10 12 27,并把他们放在同一个列表里,跪谢各位大佬,我尝试了for循环,但如若某个行或列牵扯到n个行都大于0.6,这个for循环是写不完的,跪求大佬指点迷津。

我用如下代码将矩阵转换为字典格式的数据

data_all = {}
for key,query in enumerate(sentences):
    data_all[key]=[]
    if len(np.argwhere(similarity_matrix[key]>0.6)) > 0:
        for i in range(len(np.argwhere(similarity_matrix[key]>0.6))):
            data_all[key].append(np.argwhere(similarity_matrix[key]>0.6)[i,0])
            

如下图所示,我通过人工手动检索,找到和3相似的文本1386,接着找与1386相似的文本包含3,173,735,1118,接着随机找了个与173相似的文本包含6,601,735,760,1386,接着随机找了个与760相似的文本包含6,20,91,133,173,124,261,522,562,601等等,这样无穷无尽,请问该如何用程序实现与3相似的所有文本,即将[3,1386,173,735,1118,6,601,735,760,20,91,133,173,124,261,522,562,601.....]这些序号放到一个列表或字典里
image.pngimage.pngimage.pngimage.png
类似这种树状图,即通过1把1,2,3,4,6,7,9,10,11,14...找出来
image.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

街角卖回忆 2022-09-18 23:49:19

挺好玩的,但没有数据,我测试不了,而且我觉得你想得有问题啊,
A = [1,2,3,4,5]
B = [1,2,3,6,7]
C = [6,7,3,8,9]

A 和 B 相似 60%
B 和 C 相似 60%

A 和 C 怎么可能也是相似文本呢?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文