相似性

TF-IDF与余弦相似性

末鹿安然 提交于 2020-03-03 23:24:01
TF-IDF算法 将 "词频"(TF)和"逆文档频率"(IDF)这两个值相乘,就得到了一个词的TF-IDF值。某个词对文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的几个词,就是这篇文章的关键词。 TF-IDF = TF * IDF 可以看到,TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。 余弦相似性 计算两个向量的余弦值,余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。 假定a向量是[x1, y1],b向量是[x2, y2],那么可以将余弦定理改写成下面的形式 余弦的这种计算方法对n维向量也成立。假定A和B是两个n维向量,A是 [A1, A2, ..., An] ,B是 [B1, B2, ..., Bn] ,则A与B的夹角θ的余弦等于: 计算两篇文章的相似性: (1)使用TF-IDF算法,找出两篇文章的关键词; (2)每篇文章各取出若干个关键词(比如20个),合并成一个集合,计算每篇文章对于这个集合中的词的词频(为了避免文章长度的差异,可以使用相对词频); (3)生成两篇文章各自的词频向量; (4)计算两个向量的余弦相似度,值越大就表示越相似。 [参考文献] TF-IDF与余弦相似性的应用(一):自动提取关键词 http://www.ruanyifeng.com/blog/2013/03/tf

读:Instance-aware Image and Sentence Matching with Selective Multimodal LSTM

拟墨画扇 提交于 2020-03-03 18:47:23
摘要:有效图像和句子匹配取决于如何很好地度量其全局视觉 - 语义相似度。基于观察到这样的全局相似性是由图像(对象)和句子(词)的成对实例之间的多个局部相似性的复合聚集,我们提出了一个实例感知图像和句子匹配的选择性多模态长期短期记忆网络(sm-LSTM)。 sm-LSTM在每个时间步包含一个多模式的上下文调制的注意方案,通过预测图像和句子的成对实例显着图,可以选择性地关注一对图像和句子的实例。对于选定的成对实例,它们的表示是基于预测的显着图获得的,然后进行比较以测量它们的局部相似性。通过在几个时间步长内类似地测量多个局部相似性,sm-LSTM依次将它们与隐藏状态聚合,以获得作为期望的全局相似性的最终匹配分数。大量的实验表明,我们的模型能够很好的匹配图像和句子,并且可以在两个公开的基准数据集上得到最新的结果。 介绍 : 图像与文本匹配在很多应用中有着重要的作用, 在图像文本跨模态检索任务中,当给定查询文本,需要依据图像文本的相似性去检索内容相似的图像;在图像描述生成任务中,给定一幅图像,需要依据图像内容检索相似的文本,并以此作为 ( 或者进一步生成 ) 图像的文本描述;在图像问答任务中,需要基于给定的文本问题查找图像中包含相应答案的内容,同时查找的视觉内容反过来也需要检索相似文本预料作为预测答案 。 研究现状 : 现在这方面的研究主要包含两个类:( 1 )一对一的匹配 ( 2

几种用户相似度计算方法及其优缺点

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-01 23:55:39
进行用户协同过滤时,一个关键问题是如何计算用户之间的相似性。比较常见的计算用户相似度的算法有余弦相似性、皮尔森系数、调整余弦相似性三种。 这三种相似性都是基于一个称为 用户-项目矩阵 的数据结构来进行计算的。该数据结构如下: 余弦相似性:把用户评分看作是n维项目空间上的向量,通过计算两个向量之间的夹角余弦来度量两个用户之间的相似性。 皮尔森系数:又称相关相似性,通过Peason相关系数来度量两个用户的相似性。计算时,首先找到两个用户共同评分过的项目集,然后计算这两个向量的相关系数。 调整余弦相似性:将余弦相似性中的向量,减去用户平均评分向量后,再计算夹角余弦以修正不同用户评分尺度不同的问题。 在数据比较稀疏的情况下,这几种方法均存在一定问题:余弦相似性和调整余弦相似性对于用户未评价项目评分为0的假设;皮尔森系数中用户共同评分项目集可能很小。 在垂直搜索引擎中,用户数据具有相当的稀疏性。所以需要通过一定的手段来消除这种稀疏性。我的思路: 1.垂直搜索中存在一个项目的目录(树形结构),如果 自顶向下进行评分,并将子项目分数与父项目分数按一定规则运算后作为最后评分 。从而填充稀疏矩阵为密集矩阵。 2.按照密集矩阵进行推荐。 来源: oschina 链接: https://my.oschina.net/u/347386/blog/500806

iOS-规避iOS审核4.3规则的重心

浪子不回头ぞ 提交于 2020-01-22 21:34:26
前言 最近iOS卡审严重,很多小伙伴都被拒了,也有很多小伙伴收到4.3礼包,这里就说说4.3吧! 规避4.3的重心,切断当前马甲包与以往马甲包的所有相似性关联; 相似关联 a. ipa包特征; b. 开发者帐号; c. 打包电脑; d. 上传IP; e. 材料相似; 分项细述 1. ipa包特征: 包括有代码相似性,资源相似性; 代码相似性解决办法: a. 已有代码的混淆(改类名、改函数名、改属性名、垃圾代码、垃圾类等等) b. 添加一些无用的代码; 注:详细代码混淆ZFJObsLib https://zfj1128.blog.csdn.net/article/details/95482006 资源相似性解决办法: a. 资源文件改名; b. 适当添加一些无用的资源; c.修改资源文件的HASH值; 翻新工程: a.修改工程名; b.修改工程目录结构; 2. 开发者帐号: 两个马甲包不要关联到同一个开发者帐号的信息;比如打包时关联。 3. 打包电脑: 有条件的最好用不同的MAC来打包(每台MAC上最好打包马甲包不要超过5个) 4. 上传IP: 上传马甲包时,IP不要跟其他马甲包的IP相同; 5. 材料相似: itu后台材料如宣传图,ICON,版权人不要出现相同; 注:即使是前边没审核过的包,也不要跟他们有关联。尤其是前边被4.3拒绝的包,更不能跟他们有相似性。 混淆相关

论文笔记之:Dynamic Label Propagation for Semi-supervised Multi-class Multi-label Classification ICCV 2013

邮差的信 提交于 2019-12-17 00:23:10
   Dynamic Label Propagation for Semi-supervised Multi-class Multi-label Classification ICCV 2013   在基于Graph的半监督学习方法中,分类的精度高度依赖于可用的有标签数据 和 相似性度量的精度。此处,本文提出一种半监督的 multi-class and multi-label 分类机制,Dynamic Label Propagation(DLP),是在一个动态的过程中传递,执行 transductive learning。现有的半监督方法一般都很难处理多标签/多分类问题,因为缺乏考虑标签的关系;本文所提出的方法重点强调动态度量和标签信息的融合。       监督的度量学习方法 经常学习马氏距离(Mahalanobis distance),努力缩小相同标签之间的距离,与此同时,尽可能保持或者拉大不同标签图像的距离。 基于Graph的监督学习框架 利用少量的有标签信息去挖掘大量的无标签数据的信息。 Label Propagation 具体的认为在一个Graph中通过信息传递,有较大相似性的由边链接的点趋于拥有相同的标签。另外一种类型的办监督学习方法, 协同训练(Co-training) ,利用多视角特征来相互帮助,拉进无标签数据来重新训练并且增强分类器(by pulling out

ANOSIM分析

点点圈 提交于 2019-12-10 15:32:19
ANOSIM分析( analysis ofsimilarities)即相似性分析,主要用于分析高维数据组间相似性,为数据间差异显著性评价提供依据。在一些高维数据分析中,需要使用PCA、PCoA、NMDS等方法进行降维,但这些方法并不显示组间差异的显著性指标,此时可以使用ANOSIM分析解决此问题。 ANOSIM为非参数检验方法,用于评估两组实验数据的整体相似性及相似的显著性。 该方法主要有两个数值结果:一个是R,用于不同组间属否存在差异;一个是P,用于说明是否存在显著差异。以下分别对两个数值进行说明: R值的计算公式如下: r B :组间差异性秩的平均值(mean rank of between group dissimilarities) r W :组内差异性秩的平均值(mean rank of within group dissimilarities) n:总样本个数(the number of samples) R的范围为[-1,1] R>0说明组间差异大于组内差异,R<= 0说明组间无差异。R越大说明组间差异越大于组内差异。 R只是组间是否有差异的数值表示,并不提供显著性说明。 P值则说明不同组间差异是否显著,该P值通过置换检验(Permutation Test)获得。 置换检验大致原理:(假设原始分组为实验组和对照组) 1、对所有样本进行随机分组,即实验组和对照组。 2

深度学习-迁移学习笔记

怎甘沉沦 提交于 2019-12-06 03:28:45
1.什么是迁移学习   迁移学习(Transfer Learning)是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。找到目标问题的相似性,迁移学习任务就是从相似性出发,将旧领域(domain)学习过的模型应用在新领域上。 2.为什么需要迁移学习    使用深度学习技术解决问题的过程中,最常见的障碍在于,因为模型有大量的参数需要训练,因此需要海量训练数据作支撑。虽然有大量的数据,但往往都是没有标注的,无法训练机器学习模型。人工进行数据标定太耗时。   在面对某一领域的具体问题时,通常可能无法得到构建模型所需规模的数据。普通人无法拥有庞大的数据量与计算资源。因此需要借助于模型的迁移。   借助迁移学习,在一个模型训练任务中针对某种类型数据获得的关系也可以轻松地应用于同一领域的不同问题。 3.迁移学习的基本问题有哪些? 基本问题主要有3个: How to transfer: 如何进行迁移学习?(设计迁移方法) What to transfer: 给定一个目标领域,如何找到相对应的源领域,然后进行迁移?(源领域选择) When to transfer: