Nlp_compromise在JavaScript中使用自然语言

NLP自然语言处理,涌现了很多技术框架,当中不乏前端JavaScript实现的框架:nlp-compromise.js,本文为大家介绍自然语言处理的基本原理与nlp-compromise.js的调用例子,以及应用场景。

基本原理概述

(1).语料库

语料库中存放的是在语言的实际使用中真实出现过的语言材料,即我们可以自定义自己的语料库,比如把一些相同题材的文章整合在一起形成语料库。

接着要对自定义的语料库进行标注,标注出同义词,反义词,各种词性如名词、动词等。

(2).去掉停用词低信息词与词干提取

定义完语料库后,由于里面包含了很多经常重复出现的低信息词比如the、will等,中文的‘的’,‘了’等,所以要去掉这些词

接着进行词干提取比如英文的response、responsitive等都可以提取词干respon出来

(3).词袋

语料库精简后把各个词单独提取出来,重复的词则不重复提取,提取后放去词袋,词袋是一个列表,可以理解为一个没有重复词的数组容器。

词袋生成后我们可以用词袋来对要解析的句子,生成词频向量:
例如要解析的句子为:
Nice day!
词袋有这么几个词:
nice in day he she night
接着我们统计词频,即句子里面每一个词在词袋里面对应的词里出现过几次,组合成向量:
[1 0 1 0 0 0]

(4).TF-IDF提取关键词

TF是词频指标即为一篇文章中重复出现的词出现次数越多,就越关键,公式为:

IDF是逆向文件频率指标即为该词在众多文档中出现次数越少,越罕见就越能包含于说明发生什么事,越关键,公式为:

两个指标合在一起的公式为:

那么提取一篇文章的关键词方法则为,计算出每个词的TF-IDF值,再从大到小排序,排在前几个就是这篇文章的关键词。

(5).原理小结

原理概述先讲述到这里,还有分词技巧最大匹配法,文章自动摘要、文章相似的匹配、消除歧义与识别未登陆词的规律分类训练,训练方法也有用到循环神经网络的,还有一些应答模型,例如微信图灵就是一个nlp的应答例子,感兴趣的小伙伴可深入研究。

nlp-compromise.js的调用例子

引入官方提供的compromise.min.js
<pre>
<script type="text/javascript" src="compromise.min.js"></script>
</pre>

调用:
<pre>
case 1: // 转数字
r = window.nlp(inputObj.value).values().toNumber();
reStr = r.out('text');
break;
case 2: // 把句子分开
r = window.nlp(inputObj.value).data();
console.log(r);
for(i = 0; i < r.length; i++) {
reStr += i + ' : ' + r[i].text + ' ';
}
break;
case 3: // 统计句子中的人数
r = window.nlp(inputObj.value).people().length;
reStr = r;
break;
case 4: // 转成反义句子
r = window.nlp(inputObj.value).verbs().toNegative().out();
reStr = r;
break;
case 5: // 转换出人名代词
r = window.nlp(inputObj.value).people().pronoun();
reStr = r;
break;
</pre>

例子运行结果页面


例子截图.jpeg

例子完整代码:
https://github.com/zhangxiongwu/nlp-compromise-demo
nlp-compromise-JS官方地址:
https://nlp-expo.firebaseapp.com/
nlp-compromise-JS官方github地址:
https://github.com/nlp-compromise/compromise

nlp-compromise.js的应用场景

我们可以在github的官方工程下载整个源工程,然后在上面填写自己的语料库,再运行生成一个min.js的压缩文件,这个压缩文件不到300k的大小,放到前端运行也可以,以nodejs搭建放到服务器上运行也可以。

具体可以做的东西为训练自定义语料库出分词,获取句子的各词性,可以把句子变积极消极、分词等。

具体应用场景可以为:多维高精的模糊匹配搜索,比如用户在搜索框输入一些模糊的句子,比如句子中包含几个他想要的名词,那么我们可以用这个库做名词的提取,在搜索数据库。又如一些智能客服对话框的问答,提取出用户问题的主干词的意思再回复相应的答案。

您的意见是我改善的东西,欢迎评论提建议,如果对您有帮助,请点个赞,谢谢~~
菲麦前端专题,汇聚前端好文,邀您关注!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,423评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,147评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,019评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,443评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,535评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,798评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,941评论 3 407
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,704评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,152评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,494评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,629评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,295评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,901评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,978评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,333评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,499评论 2 348

推荐阅读更多精彩内容