首页>>前端>>Node->nodejieba内容分词和关键词提取

nodejieba内容分词和关键词提取

时间:2023-11-29 本站 点击:0

一、关键词提取

如果要做一个敏感词检测的功能, 你对该需求的第一想法是什么呢?

当然是打开浏览器,百度、google、必应,CV工程师上线;

那,如果是想自己实现一个呢?

当然是先找到一个敏感词的词库,然后直接政策匹配呀,或者基于字符串的indexOf直接遍历啊。

那有没有其他的什么方法呢?

那那那,你都看到这了,肯定是也有这个问题对吧?

那这里推荐一个小小的库,基于nodejs的分词库 —— nodejieba。

这个库很小,有一套默认的词语优先级,简单使用时如下。

varnodejieba=require("nodejieba");varresult=nodejieba.cut("南京市长江大桥");console.log(result);//["南京市","长江大桥"]

在代码中引入库之后,将需要拆分的句子放进去,最后会返回分词结果,可以直接打印。

二、内容分词

如果是一整句话或者实际开发过程中的一段话,一篇文章,拆分之后会有大量的连接词啊之类的。

constnodejieba=require('nodejieba')varresult=nodejieba.cut('帝国主义要把我们的地瓜分掉')console.log(reult)/*['帝国主义','要','把','我们','的','地瓜','分','掉']*/

那么可以下面的方法来处理。

三、关键词抽取

下面代码可以查看提取的有意义的词语及其优先级,因为只是提取关键词可能会有遗漏,可以根据实际的需求进行选择哦。

varnodejieba=require('nodejieba')nodejieba.load({userDict:'./user.utf8'})vararticle=`一大串的中文字符`//将字符串全小写,避免出现同一单词区分计算,提取关键词数量varresult=nodejieba.extract(article.toLowerCase(),4)console.log(result);/*[{word:'person',weight:716.091462732096},{word:'prototype',weight:551.7426024329264},{word:'原型',weight:335.0089885136},{word:'constructor',weight:305.21931198417207}]*/


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Node/905.html