Nodejs 中两个标签之间的文本相似度

问题描述 投票:0回答:1

我想评价两个标签之间的相似度。例如,单词technologycomputerchip应该具有高相似度,像food这样的单词应该具有低相似度。

鉴于 AI 的最新进展和 NLP 的更传统方法,您现在如何在 Node JS 中解决这个问题?

我试图让 2013 年的 Google News 数据集word2vec 一起运行,但是这个或其他 word2vec 库似乎都不能与现代版本的节点一起运行(或者至少我还没有设法做任何工作)与数据集)。还有像 fast-text文本相似性测试(使用 TensorFlow.js).

这样的存储库

现在我想知道哪种方法在技术上最能解决我的问题(也是我尚未考虑的方法)以及如何在代码中技术上实现它。

javascript node.js typescript nlp similarity
1个回答
0
投票

您可以使用 wink-nlp 来测量基于词嵌入的相似度:

// Load wink-nlp package.
const winkNLP = require( 'wink-nlp' );
// Load english language model.
const model = require( 'wink-eng-lite-web-model' );
// Load word embeddings.
const vectors = require( 'wink-embeddings-sg-100d' );
// Load similarity utility.
const similarity = require( 'wink-nlp/utilities/similarity.js' );

// Instantiate winkNLP
const nlp = winkNLP( model, vectors );
console.log( +similarity.vector.cosine(nlp.vectorOf('technology'),
    nlp.vectorOf('computer')).toFixed(4));
// --> 0.7642
console.log( +similarity.vector.cosine(nlp.vectorOf('food'),
    nlp.vectorOf('computer')).toFixed(4));
// --> 0.3722
© www.soinside.com 2019 - 2024. All rights reserved.