原型层次聚类:Web集合组织与导航的新框架

需积分: 1 0 下载量 160 浏览量 更新于2024-09-16 收藏 951KB PDF 举报
"该资源是一篇关于如何构建层次结构的SIGIR论文,主要介绍了一种称为原型层次聚类(Prototype Hierarchy Based Clustering, PHC)的方法,用于网络集合的分类和导航。作者是Zhao-Yan Ming、Kai Wang和Tat-Seng Chua,来自新加坡国立大学计算机科学系。论文提出了一个新颖的框架,旨在同时解决网络集合的分类问题和聚类结果的解释,以支持导航功能。" 正文: 在当前的信息爆炸时代,有效地组织和导航网络集合变得至关重要。这篇名为"Prototype Hierarchy Based Clustering for the Categorization and Navigation of Web Collections"的论文提出了一种新的方法,即原型层次聚类(PHC),来解决这个问题。PHC框架旨在通过创建一个原型层次结构,将网络集合进行有条理的分类,并利用这些层次结构来解释聚类结果,从而便于用户导航。 PHC的核心在于将网络集合的组织视为一个多标准优化问题。它通过最小化层次演进、最大化类别凝聚力以及在不同层次之间实现结构和语义上的相似性最大化来达到这一目标。这种灵活的度量设计使得PHC框架能够适应不同领域的应用需求。 在论文中提到的实验部分,PHC框架在对四个不同领域网络集合的分类任务上,相比最先进的技术,μF1指标提升了30%,这充分展示了其优越性能。这一改进对于提高信息检索效率、提升用户体验具有显著意义,特别是在大量网络数据的管理和探索中。 论文还强调了PHC的实用性,因为它能够根据底层主题结构自动生成有意义的类别,帮助用户理解聚类结果,进而更有效地导航。这种方法对于搜索引擎优化、信息检索系统、网站目录构建以及任何需要大规模数据分类和导航的场景都具有潜在的应用价值。 "Prototype Hierarchy Construction"是一个旨在改善网络集合分类和导航的创新性研究。通过利用原型层次结构,该方法不仅提高了分类精度,还增强了聚类结果的解释性和导航的可用性。这对于推动信息检索和数据管理技术的发展具有重要意义。

myimage = cv.cvtColor(img, cv.COLOR_BGR2GRAY) ret, img1 = cv.threshold(myimage, 100, 255, cv.THRESH_BINARY_INV) # cv.namedWindow('img1',0) # cv.resizeWindow('img1',600,600) # cv.imshow('img1',img1) # print(type(img1)) # print(img1.shape) # print(img1.size) # cv.waitKey(2) kernel1 = np.ones((10, 10), np.uint8) # 做一次膨胀 img2 = cv.dilate(img1, kernel1) # cv.namedWindow('img2', 0) # cv.resizeWindow('img2', 600, 600) # cv.imshow('img2', img2) contours, hierarchy = cv.findContours(img2, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_NONE) # print(len(contours),hierarchy) for i in range(len(contours)): area = cv.contourArea(contours[i]) if area < 150: # '设定连通域最小阈值,小于该值被清理' cv.drawContours(img2, [contours[i]], 0, 0, -1) # import pdb;pdb.set_trace() # cv.imwrite('yuchuli.jpg', img2) ###########预处理 # import pdb;pdb.set_trace() not_row = img2[[not np.all(img2[i] == 0) for i in range(img2.shape[0])], :] bot_col = not_row[:, [not np.all(not_row[:, i] == 0) for i in range(not_row.shape[1])]] # import pdb;pdb.set_trace() # print(bot_col.shape) if bot_col.shape[0] > bot_col.shape[1]: if bot_col.shape[1] % 2 == 0: img_new = np.concatenate((np.zeros([bot_col.shape[0], int((bot_col.shape[0] - bot_col.shape[1]) / 2)]), bot_col, np.zeros([bot_col.shape[0], int((bot_col.shape[0] - bot_col.shape[1]) / 2)])), 1) if bot_col.shape[1] % 2 == 1: img_new = np.concatenate((np.zeros( [bot_col.shape[0], int((bot_col.shape[0] - bot_col.shape[1] - 1) / 2)]), bot_col, np.zeros( [bot_col.shape[0], int((bot_col.shape[0] - bot_col.shape[1] + 1) / 2)])), 1) cv.imwrite('fenge.jpg', img_new) ###########分割 file_path = 'fenge.jpg' return file_path这个具体以何种方法进行分割的

2023-05-28 上传