Python——sentenceSimilarity 的简单demo(测试句子相似度)

一、sentenceSimilarity 是什么?

sentenceSimilarity 属于机器学习的领域

Python 中的 sentenceSimilarity 库是一个用于计算句子相似度的工具库,主要用于自然语言处理相关的应用中。该库支持多种模型计算句子相似度,包括 TF-IDF、LSI、LDA 等模型。

在使用该库时,需要先用分词器对文本进行分词和预处理,并将处理后的句子传入 SentenceSimilarity 实例中进行训练。

在计算相似度时,只需将需要计算相似度的两个句子作为参数传入 similarity 方法即可。

句子相似度计算广泛应用于自然语言处理中的各种任务,例如机器翻译、文本分类、信息检索等。

通过计算不同文本之间的相似度,可以实现自动化的文本挖掘、信息抽取和知识管理等应用。

除此之外,在社交网络和推荐系统中也有广泛的应用,例如协同过滤和基于内容的推荐等。

二、代码包

sentenceSimilarity-master.zip - 蓝奏云文件大小:27.6 K|https://wwwf.lanzout.com/iblEj0wrt0sh

直接启动demo.py即可

三、demo代码

#encoding=utf-8

from zhcnSegment import *
from fileObject import FileObj
from sentenceSimilarity import SentenceSimilarity
from sentence import Sentence

if __name__ == '__main__':
    # 读入训练集
    file_obj = FileObj(r"testSet/trainSet.txt")
    train_sentences = file_obj.read_lines()

    # 读入测试集1
    file_obj = FileObj(r"testSet/testSet1.txt")
    test1_sentences = file_obj.read_lines()

    # 读入测试集2
    # file_obj = FileObj(r"testSet/testSet2.txt")
    # test2_sentences = file_obj.read_lines()

    # 分词工具,基于jieba分词,我自己加了一次封装,主要是去除停用词
    seg = Seg()

    # 训练模型
    ss = SentenceSimilarity(seg)
    ss.set_sentences(train_sentences)
    ss.TfidfModel()         # tfidf模型
    # ss.LsiModel()         # lsi模型
    # ss.LdaModel()         # lda模型
    # 创建 SentenceSimilarity 实例并进行训练


    # 计算句子相似度
    right_count = 0
    for i, test_word in enumerate(test1_sentences):
        result = ss.similarity(test_word)
        score, idx = result.score, result.id
        print(f"【{i}】{test1_sentences[i]} => 【{idx}】{train_sentences[idx]}, score={score}")
        if score > 0.8:
            right_count += 1
    res = str(float(right_count) / len(train_sentences) * 100)
    print(f"相似率为:{res}%")

四、运行结果

 

句子相似度计算是自然语言处理中的一个很重要的任务,而其中的模型建立和相似度计算等过程使用了一些机器学习的方法。

在这个过程中,需要进行大量数据的预处理,包括分词、去除停用词、构建词汇表和统计文本特征值等。然后使用这些特征值作为模型的输入,采用传统的机器学习方法(如 LSI、LDA 和 TF-IDF 等)进行训练和预测,从而实现句子相似度计算的目标。

因此,句子相似度计算是机器学习与自然语言处理的结合,这些模型也被广泛应用于文本分类、情感分析等领域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

peter123123123123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值