字符串语义相似性差

2024-06-13 00:23:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是创建一个基本程序,从语义上比较字符串并决定哪个字符串与哪个字符串更相似(就语义而言)。现在我不想从头开始构建一个新的(doc2vec?)在NTLK或在SKlearn或在{}中建模,但是我想测试已经存在的可以进行语义分析的api。在

具体来说,我选择测试ParallelDots AI API,因此我用python编写了以下程序:

import  paralleldots

api_key = "*******************************************"

paralleldots.set_api_key(api_key)

phrase1 = "I have a swelling on my eyelid"
phrase2 = "I have a lump on my hand"
phrase3 = "I have a lump on my lid"

print(phrase1, " VS ", phrase3, "\n")
print(paralleldots.similarity(phrase1, phrase3), "\n\n")

print(phrase2, " VS ", phrase3, "\n")
print(paralleldots.similarity(phrase2, phrase3))

这是我从API得到的响应:

^{pr2}$

这种反应让我相当失望。很明显

I have a lump on my lid

在语义上几乎与短语相同

I have a swelling on my eyelid

它也与短语有关

I have a lump on my hand

因为他们指的是肿块,但显然它根本不像前一个那么接近。然而,ParallelDots AI API输出的结果几乎完全相反。在

如果我是对的,ParallelDots AI API是语义分析中最流行的api之一,还有Dandelion API等其他api,但它的结果却令人失望。我预期这些api使用一些丰富的同义词数据库。我也用这三个短语测试了Dandelion API,但结果也很差(实际上它们甚至更糟)。在

我可以在上面的程序中修复什么来检索更合理的结果?在

在语义上有没有比字符串更快的方法?在


Tags: 字符串程序apionmyhave语义ai
1条回答
网友
1楼 · 发布于 2024-06-13 00:23:45

我是ParallelDots的数据科学家之一。虽然不幸的是,您没有得到预期的结果,但请注意,通过API提供的通用模型都是在新闻和twitter等公开可用的数据集上进行培训的。在

以语义相似度API为例,我们对其进行了新闻语料库的训练,在阅读一般性新闻文章时,不太可能提取出肿块和肿胀的相关性。在

正是“块”这个词在不同的语境下在英语中有着如此多的不同含义,这使得模型具有很强的数据依赖性。例如,在金融界,块更接近于sum、投资等

如果您试图在域数据上找到语义相关性,我建议您使用ParallelDots企业服务来定制数据上的语义相关模型。您需要大量未标记的数据来进行定制,并且您将受益于更高的准确性,这只会随着更多的数据被迭代地添加到模型中而得到提高。在

我将用一个一般性的注释来结束这个答案,当软件开发人员倾向于像人工智能这样的服务时,他们在本质上是概率的。作为一名软件工程师,当结果不是我们对一组输入的期望值时,我们被训练去做故障排除,然而在机器学习中;我们倾向于在足够大的样本上测试一个模型,然后再尝试调试它并得出结论。我将鼓励软件开发人员建立一个测试集,并在其上运行AI模型,以找到准确度指标,并评估模型是否对他们的数据集有用。在

相关问题 更多 >