python 语义similarity_Python:string的语义相似度得分

Python:string的语义相似度得分

有没有用于计算一对句子的语义相似度分数的库?

我知道WordNet的语义数据库,以及如何为2个单词生成分数,但是我正在寻找能够在整个句子和输出中执行所有预处理任务(如端口词干,停用词删除等)的库两个句子如何相关的分数。

我发现了一个使用.NET框架编写的工作 ,它使用一系列预处理步骤来计算分数。 有没有任何项目,在Python中做到这一点?

我不是在寻找能够帮助我find分数的操作顺序(就像这里要求的那样)

我喜欢自己实现每个阶段,或者从不同的库中粘贴函数,以便它可以用于句对,但是我主要需要这个工具来testing数据的推论。

编辑:我正在考虑使用NLTK和计算每两个单词对这两个句子迭代的得分,然后从结果的标准偏差中得出推论,但我不知道这是否是一个合理的相似性估计。 另外,这将花费很长的时间。

再次,我正在寻找已经实现这个智能的项目/库。 东西,让我这样做:

import amazing_semsim_package str1='Birthday party ruined as cake explodes' str2='Grandma mistakenly bakes cake using gunpowder' >>similarity(str1,str2) >>0.889

我见过的最好的包装是在Gensim主页find的Gensim 。 我已经使用过很多次了,总体而言非常满意,它的易用性, 它是用Python编写的,并且有一个简单的跟随教程来开始,它比较了9个string。 它可以通过点安装,所以你不会有很多麻烦得到它安装,我希望。

你使用哪种评分algorithm在很大程度上取决于你的问题的背景,但是如果你想要一些基本的东西的话,我build议开始使用LSI的function。 (这是教程引导你通过。)

如果您阅读gensim教程,它将引导您通过比较两个string,使用Similaritiesfunction。 这样可以让你看到你的叮咬是如何根据它们所包含的文字相互比较的,或者是一些其他的刺痛。

如果你对它背后的科学感兴趣,看看这篇论文。

不幸的是,我不能用PY来帮助你,但是你可以看看我的旧项目,它使用字典来完成句子之间的语义比较(稍后可以在PY中执行向量空间分析)。 从JAVA翻译成PY应该只需要几个小时的编码。 https://sourceforge.net/projects/semantics/

AFAIK Python最强大的NLP-Lib是http://nltk.org/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BERT(Bidirectional Encoder Representations from Transformers)是一种预训练语言模型,适用于各种自然语言处理任务,其中包括词组语义相似度计算。 BERT的主要思想是利用Transformer模型来捕捉句子中的上下文信息,从而更好地理解每个词的含义。在词组语义相似度计算中,我们可以使用BERT模型来计算两个词组之间的相似度得分。 具体来说,我们可以将两个词组输入到BERT模型中,获取它们的表示向量,然后通过余弦相似度计算它们之间的相似度得分。具体实现可以使用Python编程语言和PyTorch深度学习框架。 以下是一个示例代码: ```python import torch from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') def get_similarity_score(text1, text2): encoded_text = tokenizer(text1, text2, return_tensors='pt', padding=True, truncation=True) with torch.no_grad(): outputs = model(**encoded_text) embeddings = outputs.last_hidden_state[:, 0, :] similarity_score = torch.nn.functional.cosine_similarity(embeddings[0], embeddings[1], dim=0) return similarity_score.item() # 示例用法 text1 = "python词组语义相似度" text2 = "NLP中的BERT语义相似度计算" similarity_score = get_similarity_score(text1, text2) print("相似度得分:", similarity_score) ``` 这里我们使用了BERT的预训练模型和预训练分词器,对输入的两个文本进行编码并获取它们的表示向量,然后使用余弦相似度计算它们之间的相似度得分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值