轻识Logo
目录

    使用 Node.js 对文本内容分词和关键词抽取

    (给程序员成长指北加星标,提升前端技能

    转自:掘金 - 十年踪迹

    在讨论技术前先卖个萌,吃货的世界你不懂~~


    众成翻译的文章有 tag,用户可以基于 tag 来快速筛选感兴趣的文章,文章也可以依照 tag 关联来进行相关推荐。但是现在众成翻译的 tag 是在推荐文章的时候设置的,都是英文的,而且人工设置难免不规范和不完全。虽然发布文章后也可以人工编辑,但是我们也不能指望用户或管理员能够时时刻刻编辑出恰当的 tag,所以我们需要用工具来自动生成 tag。

    在现在开源的分词工具里面,jieba是一个功能强大性能优越的分词组件,更幸运地是,它有 node 版本。

    nodejieba 的安装和使用十分简单:

    npm install nodejieba
    var nodejieba = require("nodejieba");
    var result = nodejieba.cut("帝国主义要把我们的地瓜分掉");
    console.log(result);
    //[ '帝国主义', '要', '把', '我们', '的', '地', '瓜分', '掉' ]

    result = nodejieba.cut('土地,俺老孙的金箍棒在哪里?');
    console.log(result);
    //[ '土地', ',', '俺', '老', '孙', '的', '金箍棒', '在', '哪里', '?' ]

    result = nodejieba.cut('大圣,您的金箍棒就棒在特别配您的头型!');
    console.log(result);
    //[ '大圣',',','您','的','金箍棒','就','棒','在','特别','配','您','的','头型','!' ]


    我们可以载入自己的字典,在字典里给每个词分别设置权重和词性:

    编辑 user.uft8

    地瓜 9999 n
    金箍 9999 n
    棒就棒在 9999


    然后通过 nodejieba.load 加载字典。

    var nodejieba = require("nodejieba");

    nodejieba.load({
      userDict'./user.utf8',
    });

    var result = nodejieba.cut("帝国主义要把我们的地瓜分掉");
    console.log(result);
    //[ '帝国主义', '要', '把', '我们', '的', '地瓜', '分', '掉' ]

    result = nodejieba.cut('土地,俺老孙的金箍棒在哪里?');
    console.log(result);
    //[ '土地', ',', '俺', '老', '孙', '的', '金箍棒', '在', '哪里', '?' ]

    result = nodejieba.cut('大圣,您的金箍棒就棒在特别配您的头型!');
    console.log(result); 
    //[ '大圣', ',', '您', '的', '金箍', '棒就棒在', '特别', '配', '您', '的', '头型', '!' ]


    除了分词以外,我们可以利用 nodejieba 提取关键词:

    const content = `
    HTTP、HTTP/2与性能优化

    本文的目的是通过比较告诉大家,为什么应该从HTTP迁移到HTTPS,以及为什么应该添加到HTTP/2的支持。在比较HTTP和HTTP/2之前,先看看什么是HTTP。

    什么是HTTP
    HTTP是在万维网上通信的一组规则。HTTP属于应用层协议,跑在TCP/IP层之上。用户通过浏览器请求网页时,HTTP负责处理请求并在Web服务器与客户端之间建立连接。

    有了HTTP/2,不使用雪碧图、压缩、拼接,也可以提升性能。然而,这不代表不应该使用这些技术。不过这已经清楚表明了我们从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: '万维网'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: '网页'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: '万维网'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: '网页'weight: 9.53122979951 },
      { word: '服务器'weight: 9.41204128224 },
      { word: '使用'weight: 9.03259988558 } ]


    在这个基础上,我们采用白名单的方式过滤出一些可以作为 tag 的词:

    const content = `
    HTTP、HTTP/2与性能优化

    本文的目的是通过比较告诉大家,为什么应该从HTTP迁移到HTTPS,以及为什么应该添加到HTTP/2的支持。在比较HTTP和HTTP/2之前,先看看什么是HTTP。

    什么是HTTP
    HTTP是在万维网上通信的一组规则。HTTP属于应用层协议,跑在TCP/IP层之上。用户通过浏览器请求网页时,HTTP负责处理请求并在Web服务器与客户端之间建立连接。

    有了HTTP/2,不使用雪碧图、压缩、拼接,也可以提升性能。然而,这不代表不应该使用这些技术。不过这已经清楚表明了我们从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 基本的使用方法,在将来我们可以利用它对众成翻译发布的译文自动分析添加相应的 tag,以为各位译者和读者提供更好的用户体验。

    ❤️爱心三连击

    1.看到这里了就点个在看支持下吧,你的点赞在看是我创作的动力。

    2.关注公众号程序员成长指北,回复「1」加入高级前端交流群!「在这里有好多 前端 开发者,会讨论 前端 Node 知识,互相学习」!

    3.也可添加微信【ikoala520】,一起成长。

    “在看转发”是最大的支持

    浏览 28
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报
    文本抽取解决方案
    薄言文本抽取平台可以对客户所提供文档的目标要素进行智能抽取,同时抽取部分在文档内高亮提示,有助于提高业务效率。
    薄言超脑
    0
    NLPer 如何做关键词抽取
    NLP从入门到放弃
    0
    TAMS Analyzer文本抽取和分析
    TAMS(TextAnalysisMarkupSystem)Analyzer是一个定性的文本数据抽取和分析系统。
    TAMS Analyzer文本抽取和分析
    0
    TAMS Analyzer文本抽取和分析
    TAMS (Text Analysis Markup System) Analyzer 是一个定性的
    TAMS Analyzer文本抽取和分析
    0
    教你如何使用 awk 处理文本内容
    良许Linux
    0
    文本内容审核
    图普科技
    0
    Toxy.NET 文本数据抽取库
    .NET下的文本数据抽取库,能够支持许多常用文件格式,如 docx,xlsx,xls,pdf,csv,txt,vcf,html等,是数据挖掘领域不可多得利器。类似于Java的Tika项目。Toxy由N
    Toxy.NET 文本数据抽取库
    0
    Toxy.NET 文本数据抽取库
    .NET下的文本数据抽取库,能够支持许多常用文件格式,如 docx, xlsx, xls, pdf,
    Toxy.NET 文本数据抽取库
    0
    TextRank4ZH中文文本关键词和摘要提取库
    TextRank4ZH用于自动从中文文本中提取关键词和摘要,基于TextRank算法,使用Python编写。TextRank算法可以用来从文本中提取关键词和摘要(重要的句子)。TextRank4ZH是
    TextRank4ZH中文文本关键词和摘要提取库
    0
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报

    深圳SEO优化公司大连规模大的教育行业网站优化网站优化收录平台上海专业网站优化机构北海哪家网站优化好廊坊网站关键优化百度网站关键词优化哈尔滨百度快照网站优化许昌网站优化湖南优化网站网站优化观点有哪些仁怀怎么优化网站兰州新区网站优化推广夏邑专业网站seo优化电话呈贡网站优化策划成都网站优化多少钱西峰网站优化怎么样优化网站择火15星精湛承德海外网站优化哪些网站缓存有利于优化吾魏众联网站优化绍兴越城网站优化普宁优化网站东营做网站优化密云外贸网站优化建设网站排名优化效果如何网站优化排行榜在线咨询壹起航网站优化怎么样重庆放心的网站优化推广河南网站优化商城类网站怎么优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化