`

几种短文本相似计算方法

 
阅读更多
import jieba
from collections import Counter
import difflib

def edit_similar(str1,str2):
    len_str1=len(str1)
    len_str2=len(str2)
    taglist=np.zeros((len_str1+1,len_str2+1))
    for a in range(len_str1):
        taglist[a][0]=a
    for a in range(len_str2):
        taglist[0][a] = a
    for i in range(1,len_str1+1):
        for j in range(1,len_str2+1):
            if(str1[i - 1] == str2[j - 1]):
                temp = 0
            else:
                temp = 1
            taglist[i][j] = min(taglist[i - 1][j - 1] + temp, taglist[i][j - 1] + 1, taglist[i - 1][j] + 1)
    return 1-taglist[len_str1][len_str2] / max(len_str1, len_str2)

def cos_sim(str1, str2):
    co_str1 = (Counter(str1))
    co_str2 = (Counter(str2))
    p_str1 = []
    p_str2 = []
    for temp in set(str1 + str2):
        p_str1.append(co_str1[temp])
        p_str2.append(co_str2[temp])
    p_str1 = np.array(p_str1)
    p_str2 = np.array(p_str2)
    return p_str1.dot(p_str2) / (np.sqrt(p_str1.dot(p_str1)) * np.sqrt(p_str2.dot(p_str2)))

def getdiff(text1,text2):
    # 其中的str1,str2并未分词,是两组字符串
    #方法一 查找最大相同序列
    result = difflib.SequenceMatcher(None, text1, text2).ratio()
    # 分词
    str1 = jieba.lcut(text1)
    str2 = jieba.lcut(text2)
    #方法二 余弦相识度
    cos_result = cos_sim(str1, str2)
    #方法三 编辑距离
    edit_reslut = edit_similar(text1, text2)
    #result= cos_result * 0.3 + 0.7 * diff_result
    return result

if __name__=='__main__':
    text1=''点电荷''
    text2=''第二章,点电荷的场强''
    getdiff(text1,text2)

 

分享到:
评论

相关推荐

    基于Simhash算法的海量文本相似性检测方法研究.pdf

    综上所述,本文对Simhash算法在海量文本相似性检测中的应用进行了深入研究,并提出了基于ICT-CIAs分词技术和TF-IDF权重计算方法的改进方案。实验结果表明,该方案不仅能够提高检测性能,而且在相似性计算方面更加...

    中文短语文本相似度计算新方法.pdf

    本文介绍了一种新的中文短语文本相似度计算方法,旨在解决短语文本的分类、聚类以及信息查询等问题。通过合理地计算文本之间的相似度及其变化趋势,这种方法能够有效地应用于短语文本的处理任务中。 #### 二、背景 ...

    易语言文本相似算法模块

    总的来说,"易语言文本相似算法模块"提供了处理和比较文本的基础工具,结合适当的策略和算法,可以实现高效且准确的文本相似性计算。对于想要学习或应用文本处理技术的易语言开发者来说,这是一个非常有价值的资源。

    【短文本相似度】传统方法BM25解决短文本相似度问题.pdf

    BM25是一种经典且有效的相似度度量方法,它在传统的TF-IDF算法基础上进行了改进,特别适合用于文档检索和问答系统中的相似度计算。本文将详细介绍BM25算法,并通过具体的编程代码来展示如何实现BM25算法用于短文本...

    向量空间模型快速文本相似度计算 java源码+数据

    向量空间模型(Vector Space Model, VSM)是一种在信息检索和自然语言处理领域广泛应用的文本相似度计算方法。它的核心思想是将文本转化为高维空间中的向量,然后通过数学方法来衡量这些向量之间的距离或角度,从而...

    易语言文本相似度算法

    4. **相似度计算**:常见的相似度计算方法有余弦相似度、Jaccard相似度、欧几里得距离等。其中,余弦相似度通过计算两个向量的夹角余弦值来判断它们的相似度,而Jaccard相似度则比较两个集合交集和并集的大小。 在...

    zp.zip_clayxai_文本相似检测_检测相似度

    在给定的“zp.zip_clayxai_文本相似检测_检测相似度”压缩包中,包含的核心内容是利用ClayXAI这个工具或库来执行文本相似度检查。ClayXAI可能是一个专门用于此目的的开源或商业软件,旨在帮助用户轻松地比较和分析...

    易语言快速计算文本相似度源码

    5. **TF-IDF**(Term Frequency-Inverse Document Frequency):这是一种在信息检索和文本挖掘中常见的特征权重计算方法,用于衡量一个词在文档中的重要性。TF表示词频,IDF表示逆文档频率。 6. **N-gram**:将文本...

    文本特征提取方法研究.doc

    特征选择方法主要包括以下几种: 1. **映射或变换**:将原始特征通过某种映射或变换转换为较少的新特征,这种方式适用于减少冗余特征。 2. **挑选代表性特征**:直接从原始特征中挑选出最具代表性的特征,这种方法...

    文本相似度

    在计算文本相似度时,通常会涉及以下几个关键知识点: 1. **词袋模型(Bag-of-Words Model)**:这是一种简化文本结构的方法,它忽略词语的顺序,只关注文档中出现的词汇。通过建立词汇表,将每篇文本表示为词汇表...

    语义相似度的计算方法研究与分析.pdf

    文章综述了几种主流的语义相似度计算方法,并着重介绍了一种基于树状结构中语义词典HowNet的方法。此外,还对比分析了两种主要的计算策略。 **核心知识点**: 1. **语义相似度的基本概念**:语义相似度是指两个...

    计算机研究 -用于文本分类和文本聚类的特征选择和特征抽取方法的研究.pdf

    然而,本文提出了一种名为“Term Contribution (TC)”的新无监督特征选择方法,并与其他几种常见的特征选择方法进行了比较,包括文档频率(Document Frequency, DF)、词项强度(Term Strength, TS)、基于熵的方法...

    Python 比较文本相似性的方法(difflib,Levenshtein)

    除了difflib和Levenshtein之外,Python社区还有其他多种工具可以利用,例如Jellyfish库也提供了Levenshtein距离和Damerau-Levenshtein距离的实现,以及Hamming距离等其他类型的文本相似性测量方法。开发者在面对不同...

    易语言源码易语言向量法计算文本相似度源码.rar

    文本相似度计算是自然语言处理领域的一个重要任务,它可以帮助我们识别和比较两段文本之间的相似程度,广泛应用于搜索引擎、推荐系统、文本分类和信息检索等领域。 向量法计算文本相似度通常基于词袋模型(Bag-of-...

    Python文本相似性计算之编辑距离详解

    编辑距离是衡量文本相似度的一种方法,特别是在处理爬虫抓取的不完全一致的数据时非常有用。...在实际应用中,可以根据具体需求选择合适的文本相似度计算方法,并进行相应的优化,以提高算法的准确性和效率。

    详解Python 字符串相似性的几种度量方法

    在Python编程中,字符串相似性的度量是文本处理和自然语言处理中的关键概念,它用于评估两个字符串之间的相似程度。...通过理解和运用这些方法,我们可以更好地理解和比较字符串的相似性,从而优化我们的文本处理任务。

    (python)使用余弦相似度算法计算两个文本的相似度的简单实现

    在Python编程环境中,余弦相似度算法是一种常用于计算文本相似度的方法,尤其适用于文档向量化处理后的场景。本文将详细介绍如何使用Python实现余弦相似度,并探讨其背后的概念、步骤以及具体源码分析。 余弦相似度...

Global site tag (gtag.js) - Google Analytics