gpt4 book ai didi

javascript - 如何比较两个字符串的含义?

转载 作者:太空宇宙 更新时间:2023-11-03 23:12:48 26 4
gpt4 key购买 nike

我希望我的 Node.js 应用程序的用户写下想法,然后将其存储在数据库中。到目前为止一切顺利,但我不想在该表中出现多余的条目,所以我决定使用这个来检查相似性: https://www.npmjs.com/package/string-similarity-js

你知道一种可以按含义比较两个字符串的方法吗?就像“使用公共(public)交通”与“乘坐火车”的相似度得分很高一样,在上述一项中表现非常差。

最佳答案

要按含义比较两个字符串,需要首先将字符串转换为张量,然后评估张量之间的距离或相似度。许多算法可用于将字符串转换为张量 - 所有算法都与感兴趣的领域相关。但通用句子编码器是一种广泛的句子编码器,它将所有单词投影在一维空间中。余弦相似度可用于查看某些单词在含义上的接近程度。

示例

虽然kingkind在汉明距离上很接近(只有一个字符的差异),但它们却有很大不同。而 queenking 虽然看起来不相关(因为所有字符都不同),但含义很接近。因此,kingqueen 之间的距离(有意义)应该小于 kingkind 之间的距离,如以下代码片段所示。

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/universal-sentence-encoder"></script>

<script>

(async() => {

const model = await use.load();
const embeddings = (await model.embed(['queen', 'king', 'kind'])).unstack()
tf.losses.cosineDistance(embeddings[0], embeddings[1], 0).print() // 0.39812755584716797
tf.losses.cosineDistance(embeddings[1], embeddings[2], 0).print() // 0.5585797429084778

})()
</script>

关于javascript - 如何比较两个字符串的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59413960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com