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

使用 Node.js 對文本內(nèi)容分詞和關鍵詞抽取

 更新時間:2017年05月27日 16:40:30   作者:猿說教育  
這篇文章主要介紹了使用 Node.js 對文本內(nèi)容分詞和關鍵詞抽取,需要的朋友可以參考下

在討論技術前先賣個萌,吃貨的世界你不懂~~

眾成翻譯的文章有 tag,用戶可以基于 tag 來快速篩選感興趣的文章,文章也可以依照 tag 關聯(lián)來進行相關推薦。但是現(xiàn)在眾成翻譯的 tag 是在推薦文章的時候設置的,都是英文的,而且人工設置難免不規(guī)范和不完全。雖然發(fā)布文章后也可以人工編輯,但是我們也不能指望用戶或管理員能夠時時刻刻編輯出恰當?shù)?tag,所以我們需要用工具來自動生成 tag。

在現(xiàn)在開源的分詞工具里面,jieba是一個功能強大性能優(yōu)越的分詞組件,更幸運地是,它有 node 版本。

nodejieba 的安裝和使用十分簡單:

我們可以載入自己的字典,在字典里給每個詞分別設置權重和詞性:

編輯 user.uft8
地瓜 9999 n
金箍 9999 n
棒就棒在 9999
然后通過 nodejieba.load 加載字典。

除了分詞以外,我們可以利用 nodejieba 提取關鍵詞:

const content = `

HTTP、HTTP/2與性能優(yōu)化

本文的目的是通過比較告訴大家,為什么應該從HTTP遷移到HTTPS,以及為什么應該添加到HTTP/2的支持。在比較HTTP和HTTP/2之前,先看看什么是HTTP。

什么是HTTP

HTTP是在萬維網(wǎng)上通信的一組規(guī)則。HTTP屬于應用層協(xié)議,跑在TCP/IP層之上。用戶通過瀏覽器請求網(wǎng)頁時,HTTP負責處理請求并在Web服務器與客戶端之間建立連接。

有了HTTP/2,不使用雪碧圖、壓縮、拼接,也可以提升性能。然而,這不代表不應該使用這些技術。不過這已經(jīng)清楚表明了我們從HTTP/1.1移動到HTTP/2的必要性。
`;

const nodejieba = require("nodejieba");
const result = nodejieba.extract(content, 20);
console.log(result);

輸出的結果類似下面這樣:

[ { word: 'HTTP', weight: 140.8704516850025 },
 { word: '請求', weight: 14.23018001394 },
 { word: '應該', weight: 14.052171126120001 },
 { word: '萬維網(wǎng)', weight: 12.2912397395 },
 { word: 'TCP', weight: 11.739204307083542 },
 { word: '1.1', weight: 11.739204307083542 },
 { word: 'Web', weight: 11.739204307083542 },
 { word: '雪碧圖', weight: 11.739204307083542 },
 { word: 'HTTPS', weight: 11.739204307083542 },
 { word: 'IP', weight: 11.739204307083542 },
 { word: '應用層', weight: 11.2616203224 },
 { word: '客戶端', weight: 11.1926274509 },
 { word: '瀏覽器', weight: 10.8561552143 },
 { word: '拼接', weight: 9.85762638414 },
 { word: '比較', weight: 9.5435285574 },
 { word: '網(wǎng)頁', weight: 9.53122979951 },
 { word: '服務器', weight: 9.41204128224 },
 { word: '使用', weight: 9.03259988558 },
 { word: '必要性', weight: 8.81927328699 },
 { word: '添加', weight: 8.0484751722 } ]

我們添加一些新的關鍵詞到字典里:

性能
HTTP/2

輸出結果如下:

[ { word: 'HTTP', weight: 105.65283876375187 },
 { word: 'HTTP/2', weight: 58.69602153541771 },
 { word: '請求', weight: 14.23018001394 },
 { word: '應該', weight: 14.052171126120001 },
 { word: '性能', weight: 12.61259281884 },
 { word: '萬維網(wǎng)', weight: 12.2912397395 },
 { word: 'IP', weight: 11.739204307083542 },
 { word: 'HTTPS', weight: 11.739204307083542 },
 { word: '1.1', weight: 11.739204307083542 },
 { word: 'TCP', weight: 11.739204307083542 },
 { word: 'Web', weight: 11.739204307083542 },
 { word: '雪碧圖', weight: 11.739204307083542 },
 { word: '應用層', weight: 11.2616203224 },
 { word: '客戶端', weight: 11.1926274509 },
 { word: '瀏覽器', weight: 10.8561552143 },
 { word: '拼接', weight: 9.85762638414 },
 { word: '比較', weight: 9.5435285574 },
 { word: '網(wǎng)頁', weight: 9.53122979951 },
 { word: '服務器', weight: 9.41204128224 },
 { word: '使用', weight: 9.03259988558 } ]

在這個基礎上,我們采用白名單的方式過濾出一些可以作為 tag 的詞:

const content = `

HTTP、HTTP/2與性能優(yōu)化

本文的目的是通過比較告訴大家,為什么應該從HTTP遷移到HTTPS,以及為什么應該添加到HTTP/2的支持。在比較HTTP和HTTP/2之前,先看看什么是HTTP。

什么是HTTP

HTTP是在萬維網(wǎng)上通信的一組規(guī)則。HTTP屬于應用層協(xié)議,跑在TCP/IP層之上。用戶通過瀏覽器請求網(wǎng)頁時,HTTP負責處理請求并在Web服務器與客戶端之間建立連接。

有了HTTP/2,不使用雪碧圖、壓縮、拼接,也可以提升性能。然而,這不代表不應該使用這些技術。不過這已經(jīng)清楚表明了我們從HTTP/1.1移動到HTTP/2的必要性。
`;

const nodejieba = require("nodejieba");
nodejieba.load({
 userDict: './user.utf8',
});
const result = nodejieba.extract(content, 20);
const tagList = ['HTTPS', 'HTTP', 'HTTP/2', 'Web', '瀏覽器', '性能'];
console.log(result.filter(item => tagList.indexOf(item.word) >= 0));

最后得到:

[ { word: 'HTTP', weight: 105.65283876375187 },
 { word: 'HTTP/2', weight: 58.69602153541771 },
 { word: '性能', weight: 12.61259281884 },
 { word: 'HTTPS', weight: 11.739204307083542 },
 { word: 'Web', weight: 11.739204307083542 },
 { word: '瀏覽器', weight: 10.8561552143 } ]

這就是我們想要的結果。

以上就是分詞庫 nodejieba 基本的使用方法,在將來我們可以利用它對眾成翻譯發(fā)布的譯文自動分析添加相應的 tag,以為各位譯者和讀者提供更好的用戶體驗。

以上所述是小編給大家介紹的使用 Node.js 對文本內(nèi)容分詞和關鍵詞抽取,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • node.js中實現(xiàn)同步操作的3種實現(xiàn)方法

    node.js中實現(xiàn)同步操作的3種實現(xiàn)方法

    這篇文章主要介紹了node.js中實現(xiàn)同步操作的3種實現(xiàn)方法,本文用實例講解一些需要同步操作的情況下,如何編程實現(xiàn),需要的朋友可以參考下
    2014-12-12
  • 我的Node.js學習之路(一)

    我的Node.js學習之路(一)

    這是一篇專門Node.js初學者學習筆記。該筆記將通過具體實例,教你一步步開始Node.js之旅。
    2014-07-07
  • node.js中的events.emitter.once方法使用說明

    node.js中的events.emitter.once方法使用說明

    這篇文章主要介紹了node.js中的events.emitter.once方法使用說明,本文介紹了events.emitter.once的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 使用nvm管理不同版本的node與npm的方法

    使用nvm管理不同版本的node與npm的方法

    本篇文章主要介紹了使用 nvm 管理不同版本的 node 與 npm的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • node.js中的fs.statSync方法使用說明

    node.js中的fs.statSync方法使用說明

    這篇文章主要介紹了node.js中的fs.statSync方法使用說明,本文介紹了fs.statSync的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Nodejs 和Session 原理及實戰(zhàn)技巧小結

    Nodejs 和Session 原理及實戰(zhàn)技巧小結

    這篇文章主要介紹了Nodejs 和Session 原理及實戰(zhàn)技巧小結,需要的朋友可以參考下
    2017-08-08
  • npm配置國內(nèi)鏡像資源+淘寶鏡像的方法

    npm配置國內(nèi)鏡像資源+淘寶鏡像的方法

    這篇文章主要介紹了npm配置國內(nèi)鏡像資源+淘寶鏡像的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • node.js中的path.extname方法使用說明

    node.js中的path.extname方法使用說明

    這篇文章主要介紹了node.js中的path.extname方法使用說明,本文介紹了path.extname的方法說明、語法、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • electron原理,以及electron生成可執(zhí)行文件的方法實例分析

    electron原理,以及electron生成可執(zhí)行文件的方法實例分析

    這篇文章主要介紹了electron原理,以及electron生成可執(zhí)行文件的方法,結合實例形式分析了electron原理以及electron生成可執(zhí)行文件的具體操作步驟、實現(xiàn)方法與相關注意事項,需要的朋友可以參考下
    2023-04-04
  • nodejs編寫bash腳本的終極方案分享

    nodejs編寫bash腳本的終極方案分享

    你懂JavaScript嗎?你需要寫一個Shell腳本嗎?那么你應該試一下Node.js,它很容易安裝,而且很適合通過寫Shell腳本來學習它,下面這篇文章主要給大家介紹了關于nodejs編寫bash腳本的終極方案,需要的朋友可以參考下
    2021-08-08

最新評論

徐水县| 会宁县| 太谷县| 安龙县| 石河子市| 玛多县| 宜丰县| 柳江县| 龙州县| 汾阳市| 利津县| 凉山| 永兴县| 衡山县| 镇赉县| 广元市| 赣州市| 楚雄市| 邳州市| 油尖旺区| 神池县| 佛山市| 洛川县| 扎兰屯市| 金山区| 河南省| 乐昌市| 红安县| 盈江县| 黔西县| 托里县| 漳平市| 兰溪市| 池州市| 南京市| 剑川县| 武宁县| 肥东县| 清丰县| 成武县| 六枝特区|