计算句子相似度

计算编辑距离

# -*- coding: utf-8 -*-

def distacal(s1,s2):#计算编辑距离
    m = len(s1)
    n = len(s2)
    colsize, matrix = m + 1, []
    for i in range((m + 1) * (n + 1)):
        matrix.append(0)
    for i in range(colsize):
        matrix[i] = i
    for i in range(n + 1):
        matrix[i * colsize] = i
    for i in range(n + 1)[1:n + 1]:
        for j in range(m + 1)[1:m + 1]:
            if s1[j - 1] == s2[i - 1]:
                cost = 0
            else:
                cost = 1
            minValue = matrix[(i - 1) * colsize + j] + 1
            if minValue > matrix[i * colsize + j - 1] + 1:
                minValue = matrix[i * colsize + j - 1] + 1
            if minValue > matrix[(i - 1) * colsize + j - 1] + cost:
                minValue = matrix[(i - 1) * colsize + j - 1] + cost
            matrix[i * colsize + j] = minValue
    return matrix[n * colsize + m]

distance = distacal("你说你是谁","我不知道你是谁")
print distance
时间: 2024-10-24 08:00:15

计算句子相似度的相关文章

计算句子相似度的方法

方法1:无监督,不使用额外的标注数据 average word vectors:简单的对句子中的所有词向量取平均,是一种简单有效的方法, 缺点:没有考虑到单词的顺序,只对15个字以内的短句子比较有效,丢掉了词与词间的相关意思,无法更精细的表达句子与句子之间的关系. tfidf-weighting word vectors:指对句子中的所有词向量根据tfidf权重加权求和,是常用的一种计算sentence embedding的方法,在某些问题上表现很好,相比于简单的对所有词向量求平均,考虑到了tf

使用 TF-IDF 加权的空间向量模型实现句子相似度计算

使用 TF-IDF 加权的空间向量模型实现句子相似度计算 字符匹配层次计算句子相似度 计算两个句子相似度的算法有很多种,但是对于从未了解过这方面算法的人来说,可能最容易想到的就是使用字符串匹配相关的算法,来检查两个句子所对应的字符串的字符相似程度.比如单纯的进行子串匹配,搜索 A 串中能与 B 串匹配的最大子串作为得分,亦或者用比较常见的最长公共子序列算法来衡量两个串的相似程度,使用编辑距离算法来衡量等. 上述基于字符匹配层次的算法一定程度上都可以计算出两个句子的相似度,不过他们只是单纯的从字符

nlp自然语言处理中句子相似度计算

在做自然语言处理的过程中,现在智能对话比较火,例如智能客服,智能家电,智能音箱等,我们需要获取用户说话的意图,方便做出正确的回答,这里面就涉及到句子相似度计算的问题,那么本节就来了解一下怎么样来用 Python 实现句子相似度的计算. 句子相似度常用的几种方法: 1.编辑距离 2.杰卡德系数计算 3.Word2Vec 计算 编辑距离,英文叫做 Edit Distance,又称 Levenshtein 距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数, 如果它们的距离越大,说明它们越

中文句子相似度之計算與應用

原文:http://www.aclweb.org/anthology/O05-1008 中文句子相似度之计算与应用 郑守益 梁婷国立交通大学信息科学系 摘要 近年來受惠于国内外各项语料库资源的建置及网际网路上的大量中文语料,使计算机语文辅助教材的涵盖层面日趋广泛.因此如何产生大量且具高质量之辅助教材日益受到许多自然语言处理研究者的重视.有鉴于此,本論文提出以中文句子相似度为基础的研究与应用.相似度的计算乃考虑句子的组合及聚合性.我们实作此一应用,并提出解决未知词的语意计算问题的方法.实验结果显示

汉语语义消歧之 -- 句子相似度

这里隆重推出介绍一种词义消歧的(简单)方法:句子相似度 虽然第一反应一定是介个,但是总不能说他们的相似度就是单词出现的重复次数吧= =||,怎么看都觉得不科学233 于是,我们想到了最简单却又好用的相似度判断方式,就是"余弦相似性"(cosine similiarity)了啦: 我们现在有两句话s1和s2,那么他们的余弦相似度怎么求呢? 现在令s1.s2词频向量为v1.v2(注意,是向量!),则我们"想象一下": 如果v1和v2方向相同,大致等价于s1.s2句子构成

计算图像相似度——《Python也可以》之一

声明:本文最初发表于赖勇浩(恋花蝶)的博客http://blog.csdn.net/lanphaday 先将两张图片转化为直方图,图像的相似度计算就转化为直方图的距离计算了,本文依照如下公式进行直方图相似度的定量度量: Sim(G,S)= 其中G,S为直方图,N 为颜色空间样点数 转换为相应的 Python 代码如下: #!/usr/bin/env python # coding=utf-8 import Image def make_regalur_image(img,size=(256,25

向量空间模型(VSM)计算文本相似度

1.定义 向量空间模型是一个把文本表示为标引项(Index Term)向量的代数模型,原型系统SMART*. 向量空间模型的定义很简单,文档d,查询q都用向量来表示. 查询和文档都可转化成term及其权重组成的向量表示,都可以看成空间中的点.向量之间通过距离计算得到查询和每个文档的相似度. 我们在向量空间模型中假设term是相互独立互不影响的. 2.模型构建 VSM向量空间模型构建的关键在于三点: 1.标引项term的选择 2.权重计算(Term Weighting):即计算每篇文档中每个ter

Spark调研笔记第7篇 - 应用实战: 如何利用Spark集群计算物品相似度

本文是Spark调研笔记的最后一篇,以代码实例说明如何借助Spark平台高效地实现推荐系统CF算法中的物品相似度计算. 在推荐系统中,最经典的推荐算法无疑是协同过滤(Collaborative Filtering, CF),而item-cf又是CF算法中一个实现简单且效果不错的算法. 在item-cf算法中,最关键的步骤是计算物品之间的相似度.本文以代码实例来说明如何利用Spark平台快速计算物品间的余弦相似度. Cosine Similarity是相似度的一种常用度量,根据<推荐系统实践>一

Edit Distance || 计算字符串相似度

Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.) You have the following 3 operations permitted on a word: a) Insert a character b) Delete a character c) Repla