最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nodejs做文本數(shù)據(jù)處理實(shí)現(xiàn)詳解

 更新時(shí)間:2022年11月23日 14:22:41   作者:Bertil  
這篇文章主要為大家介紹了Nodejs做文本數(shù)據(jù)處理實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

nodejieba 簡(jiǎn)介

隨著漢語言的廣泛應(yīng)用,中文信息處理成了一個(gè)重要的研究課題,常見于搜索引擎:信息檢索、中外文自動(dòng)翻譯、數(shù)據(jù)挖掘技術(shù)、自然語言處理等領(lǐng)域。在處理的過程中,中文分詞是最基礎(chǔ)的一環(huán)。

nodeJieba 是結(jié)巴中文分詞的 Node.js 版本實(shí)現(xiàn), 由 CppJieba 提供底層分詞算法實(shí)現(xiàn),是兼具高性能和易用性兩者的 Node.js 中文分詞插件。

nodejieba模塊支持以下3種分詞模式:

(1) 精確模式,試圖將句子最精準(zhǔn)地切開。

(2) 全模式,將句子中所有可以成詞的詞語都掃描出來,速度非??臁?/p>

(3) 搜索引擎模式,在精確模式的基礎(chǔ)上對(duì)長(zhǎng)詞再次切分。

特點(diǎn)

  • 詞典載入方式靈活,無需配置詞典路徑也可使用,需要定制自己的詞典路徑時(shí)也可靈活定制。
  • 底層算法實(shí)現(xiàn)是C++,性能高效。
  • 支持多種分詞算法。
  • 支持動(dòng)態(tài)補(bǔ)充詞庫。

常用API

noedejieba模塊中提供了一系列函數(shù),常用的有cut()函數(shù)、cutAll()函數(shù)、cutForSearch()函數(shù)、tag()函數(shù)、extract()函數(shù)。

1.cut()函數(shù)用來做精確模式下的內(nèi)容分詞,僅有1個(gè)參數(shù)sentence,表示需要分詞性的內(nèi)容字符串格式。

2.cutAll()函數(shù)用來做全模式下的內(nèi)容分詞,僅有1個(gè)參數(shù)sentence,表示需要分詞性的內(nèi)容字符串格式。

3.cutForSearch()函數(shù)用來做搜索引擎模式下的內(nèi)容分詞,僅有1個(gè)參數(shù)sentence,表示需要分詞性的內(nèi)容字符串格式。

4.tag()函數(shù)用來做詞性標(biāo)注,即根據(jù)詞性來做分詞分類,僅有1個(gè)參數(shù)sentence,表示需要分詞性的內(nèi)容字符串格式。

5.extract()函數(shù)用來做關(guān)鍵詞抽取,有如下2個(gè)參數(shù):

  • 第一個(gè)參數(shù)為sentence,表示需要分詞的內(nèi)容字符串格式。
  • 第二個(gè)參數(shù)為topN,表示只保留出現(xiàn)頻率為前 N 的詞。

基本使用

  • 安裝依賴
npm install nodejieba --save
  • 詞典載入可靈活配置

如果需要載入自己的詞典,而不是默認(rèn)詞典。 比如想要載入自己的用戶詞典,則使用以下函數(shù):

nodejieba.load({
  userDict: './test/testdata/userdict.utf8',
});

字典載入函數(shù)load的參數(shù)項(xiàng)都是可選的, 如果沒有對(duì)應(yīng)的項(xiàng)則自動(dòng)填充默認(rèn)參數(shù)。 所以上面這段代碼和下面這代代碼是等價(jià)的。

nodejieba.load({
  dict: nodejieba.DEFAULT_DICT,
  hmmDict: nodejieba.DEFAULT_HMM_DICT,
  userDict: './test/testdata/userdict.utf8',
  idfDict: nodejieba.DEFAULT_IDF_DICT,
  stopWordDict: nodejieba.DEFAULT_STOP_WORD_DICT,
});

詞典說明

  • dict: 主詞典,帶權(quán)重和詞性標(biāo)簽,建議使用默認(rèn)詞典。
  • hmmDict: 隱式馬爾科夫模型,建議使用默認(rèn)詞典。
  • userDict: 用戶詞典,建議自己根據(jù)需要定制。
  • idfDict: 關(guān)鍵詞抽取所需的idf信息。
  • stopWordDict: 關(guān)鍵詞抽取所需的停用詞列表。

注意:如果沒有主動(dòng)調(diào)用詞典函數(shù)時(shí), 則會(huì)在第一次調(diào)用cut等功能函數(shù)時(shí),自動(dòng)載入默認(rèn)詞典。且詞典只會(huì)被加載一次。

1.分詞用法

var nodejieba = require("nodejieba");
var result = nodejieba.cut("南京市長(zhǎng)江大橋");// 精確模式
console.log(result);
//["南京市","長(zhǎng)江大橋"]
var nodejieba = require("nodejieba");
var result = nodejieba.cutAll("南京市長(zhǎng)江大橋");// 全模式
console.log(result);
// [
//   '南京', '南京市',
//   '京市', '市長(zhǎng)',
//   '長(zhǎng)江', '長(zhǎng)江大橋',
//   '大橋'
// ]
var nodejieba = require("nodejieba");
var result = nodejieba.cutForSearch("南京市長(zhǎng)江大橋");// 搜索引擎模式
console.log(result);
// [ '南京', '京市', '南京市', '長(zhǎng)江', '大橋', '長(zhǎng)江大橋' ]

2.詞性標(biāo)注

var nodejieba = require("nodejieba");
console.log(nodejieba.tag("紅掌撥清波"));
//[ { word: '紅掌', tag: 'n' },
//  { word: '撥', tag: 'v' },
//  { word: '清波', tag: 'n' } ]

3.關(guān)鍵詞抽取

var nodejieba = require("nodejieba");
var topN = 4;
console.log(nodejieba.extract("升職加薪,當(dāng)上CEO,走上人生巔峰。", topN));
//[ { word: 'CEO', weight: 11.739204307083542 },
//  { word: '升職', weight: 10.8561552143 },
//  { word: '加薪', weight: 10.642581114 },
//  { word: '巔峰', weight: 9.49395840471 } ]
// textRankExtract API好像目前已棄用了
console.log(nodejieba.textRankExtract("升職加薪,當(dāng)上CEO,走上人生巔峰。", topN));
//[ { word: '當(dāng)上', weight: 1 },
//  { word: '不用', weight: 0.9898479330698993 },
//  { word: '多久', weight: 0.9851260595435759 },
//  { word: '加薪', weight: 0.9830464899847804 },
//  { word: '升職', weight: 0.9802777682279076 } ]

4.其他用法

var nodejieba = require('nodejieba');
var sentence = "我是拖拉機(jī)學(xué)院手扶拖拉機(jī)專業(yè)的。不用多久,我就會(huì)升職加薪,當(dāng)上CEO,走上人生巔峰。";
var result;
// 沒有主動(dòng)調(diào)用nodejieba.load載入詞典的時(shí)候,
// 會(huì)在第一次調(diào)用cut或者其他需要詞典的函數(shù)時(shí),自動(dòng)載入默認(rèn)詞典。
// 詞典只會(huì)被加載一次。
// 精確模式
result = nodejieba.cut(sentence);
console.log(result);
// 隱馬爾可夫模型
result = nodejieba.cutHMM(sentence);
console.log(result);
// 全模式
result = nodejieba.cutAll(sentence);
console.log(result);
// 搜索引擎模式
result = nodejieba.cutForSearch(sentence);
console.log(result);
// 詞性標(biāo)注:根據(jù)詞性來分
result = nodejieba.tag(sentence);
console.log(result);
var topN = 5;
// 關(guān)鍵詞抽取,topN表示取前N個(gè)
result = nodejieba.extract(sentence, topN);
console.log(result);
result = nodejieba.cut("男默女淚");// 精確模式下分成四個(gè)字
console.log(result);
// 將該詞匯插入詞庫
nodejieba.insertWord("男默女淚");
result = nodejieba.cut("男默女淚");// 在詞庫中已有的情況下,不細(xì)分了
console.log(result);
// 設(shè)定分詞后的單個(gè)元素最大長(zhǎng)度
result = nodejieba.cutSmall("南京市長(zhǎng)江大橋", 3);
console.log(result);

以上就是Nodejs做文本數(shù)據(jù)處理實(shí)現(xiàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于Nodejs文本數(shù)據(jù)處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解如何在vscode里面調(diào)試js和node.js的方法步驟

    詳解如何在vscode里面調(diào)試js和node.js的方法步驟

    這篇文章主要介紹了詳解如何在vscode里面調(diào)試js和node.js的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • Node.js中使用mongoose操作mongodb數(shù)據(jù)庫的方法

    Node.js中使用mongoose操作mongodb數(shù)據(jù)庫的方法

    如何利用mongoose將數(shù)據(jù)寫入mongodb數(shù)據(jù)庫呢?操作方法很簡(jiǎn)單,下面小編給大家分享Node.js中使用mongoose操作mongodb數(shù)據(jù)庫的方法,感興趣的朋友一起看看吧
    2017-09-09
  • 詳解JWT與Token的應(yīng)用與原理

    詳解JWT與Token的應(yīng)用與原理

    這篇文章主要介紹了詳解JWT與Token的應(yīng)用與原理,JWT全稱“JSON Web Token”,是實(shí)現(xiàn)Token的機(jī)制,需要的朋友可以參考下
    2023-04-04
  • Nodejs實(shí)現(xiàn)內(nèi)網(wǎng)穿透服務(wù)

    Nodejs實(shí)現(xiàn)內(nèi)網(wǎng)穿透服務(wù)

    很多人都不知道什么是內(nèi)網(wǎng)穿透,就是公網(wǎng)客戶端,可以訪問局域網(wǎng)內(nèi)的服務(wù),本文詳細(xì)的介紹了原理以及實(shí)現(xiàn),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Nodejs?連接?mysql時(shí)報(bào)Error:?Cannot?enqueue?Query?after?fatal?error錯(cuò)誤的處理辦法

    Nodejs?連接?mysql時(shí)報(bào)Error:?Cannot?enqueue?Query?after?fa

    這篇文章主要介紹了Nodejs?連接?mysql時(shí)報(bào)Error:?Cannot?enqueue?Query?after?fatal?error錯(cuò)誤的處理辦法,需要的朋友可以參考下
    2023-05-05
  • NodeJS中的MongoDB快速入門詳細(xì)教程

    NodeJS中的MongoDB快速入門詳細(xì)教程

    MongoDB 是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,由 C++ 語言編寫。這篇文章主要介紹了NodeJS中的MongoDB快速入門詳細(xì)教程的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Node.js對(duì)MongoDB數(shù)據(jù)庫實(shí)現(xiàn)模糊查詢的方法

    Node.js對(duì)MongoDB數(shù)據(jù)庫實(shí)現(xiàn)模糊查詢的方法

    模糊查詢是數(shù)據(jù)庫的基本操作之一,下面這篇文章主要給大家介紹了利用Node.js對(duì)MongoDB數(shù)據(jù)庫實(shí)現(xiàn)模糊查詢的方法教程,文中給出了詳細(xì)的介紹和示例代碼,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • 從零開始學(xué)習(xí)Node.js系列教程之SQLite3和MongoDB用法分析

    從零開始學(xué)習(xí)Node.js系列教程之SQLite3和MongoDB用法分析

    這篇文章主要介紹了Node.js SQLite3和MongoDB用法,結(jié)合實(shí)例形式分析了SQLite3和MongoDB數(shù)據(jù)庫的初始化、連接、查詢等操作的實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-04-04
  • Highcharts+NodeJS搭建數(shù)據(jù)可視化平臺(tái)示例

    Highcharts+NodeJS搭建數(shù)據(jù)可視化平臺(tái)示例

    本篇文章主要介紹了Highcharts+NodeJS搭建數(shù)據(jù)可視化平臺(tái),詳細(xì)的介紹了使用Highcharts框架的經(jīng)驗(yàn),有興趣的可以了解一下。
    2017-01-01
  • Node.js基于node-schedule實(shí)現(xiàn)定時(shí)任務(wù)的操作步驟

    Node.js基于node-schedule實(shí)現(xiàn)定時(shí)任務(wù)的操作步驟

    實(shí)際工作中,可能會(huì)遇到定時(shí)清除某個(gè)文件夾內(nèi)容,定時(shí)發(fā)送消息或發(fā)送郵件給指定用戶,定時(shí)導(dǎo)出某些數(shù)據(jù)等,node-schedule是一個(gè)非常不錯(cuò)的npm包,可以幫助我們快速的創(chuàng)建和管理定時(shí)任務(wù),所以本文介紹了Node.js基于node-schedule實(shí)現(xiàn)定時(shí)任務(wù)的操作步驟,需要的朋友可以參考下
    2024-09-09

最新評(píng)論

阜平县| 谷城县| 双桥区| 乐平市| 台南市| 衡南县| 通海县| 左权县| 萨嘎县| 分宜县| 安徽省| 塔河县| 恭城| 图木舒克市| 玛纳斯县| 阿勒泰市| 巴东县| 台安县| 牟定县| 和田市| 潮州市| 阿巴嘎旗| 永宁县| 抚州市| 东乡族自治县| 漳浦县| 湖南省| 子长县| 沅陵县| 施秉县| 婺源县| 武夷山市| 合山市| 高淳县| 抚顺市| 太保市| 德兴市| 磐石市| 额尔古纳市| 新密市| 嘉黎县|