在自然语言处理领域中,关键词提取是一项非常基础和重要的任务。而 textrank 就是一种基于图论算法的关键词提取方法,他能够有效的从文本中提取出关键词。本文将介绍如何使用 npm 包 textrank 实现关键词提取,帮助前端开发人员更好的处理文本数据。
安装 textrank
在使用 npm 包 textrank 之前,需要先安装它。可以通过以下命令进行安装:
npm install textrank
安装完成后,就可以在项目中使用它了。
使用示例
通过一道数学题来演示如何使用 textrank 提取关键词:
题目:假设有任务需要你实现课程评分,已知有一份评分反馈文本数据,如何从文本中提取出最重要的评价关键词?
评分反馈文本数据:好评,老师讲解清晰,PPT制作精美,题目贴近实际场景,让我收获颇丰。
const { TextRank } = require('textrank'); const tr = new TextRank(); tr.addDocument('好评,老师讲解清晰,PPT制作精美,题目贴近实际场景,让我收获颇丰。'); tr.getTopKTerms(3).forEach(term => { console.log(term); });
在代码中,首先引入了 textrank,然后通过 new TextRank()
创建一个 TextRank 实例。接着使用 addDocument()
方法将评分反馈文本数据传入实例中进行处理。最后调用 getTopKTerms()
方法,获取前三个最重要的评价关键词,并打印输出。
执行代码,可以得到以下结果:
老师 讲解 冰红茶
可以看到,通过 textrank 帮助我们成功的从文本中提取出了关键词。但我们会发现提取出来的关键词并不完全正确,原因是因为我们并没有对关键词进行有效的筛选和处理。下面,本文将介绍如何对关键词进行处理筛选,得到更准确的结果。
处理筛选
textrank 提取出的关键词可能包含了一些无用或者无意义的词汇,比如“的”、“和”、“或”等。所以我们需要对提取出来的关键词进行筛选和处理,得到更准确和更有意义的结果。
在 textrank 包中,可以通过 extractSentences()
方法提取句子。同时,为了过滤掉无用或者无意义的词汇,我们可以使用 stopwords.${lang}
属性,其中 lang
表示单词表的语言。
下面是一个完整的示例代码:
-- -------------------- ---- ------- ----- - -------- - - -------------------- ----- -------- - -------------------- ----- -- - --- ----------- -- -------- --------------- - --- ----- -------------- --- ----- -------- - - ------------- ----------------------------------------------- -- ---------------------------------------------- -- - ------------------------ - ------ -- ---------- ---------------- -- ----- --------- ---- -- ------------------------------------------- - ----- --- --- ------------------------------- -- - ------------------ ---
在代码中,第 6 行加载了中文停用词表,帮助我们过滤掉无用或者无意义的词汇。接着,通过 extractSentences()
方法提取出了句子。将提取出来的句子添加到 TextRank 实例中进行处理,可以看到,我们使用了 keepN
参数来保留每个单词的前 3 个字符,这样有助于提取出更有意义的关键词。同时,我们还使用了 stopwords 属性来过滤无用或者无意义的词汇。
最后,调用 getTopKTerms()
方法获取前三个最重要的评价关键词,并打印输出。执行代码,可以得到以下结果:
老师 讲解 学习
通过关键词的翻译,可以发现,“学习”是这段评价中另外一个重要的关键词。而 textrank 提取出的关键词已经非常准确,能够帮助我们更好地处理文本数据。
总结
本文介绍了如何使用 npm 包 textrank 实现关键词提取,并对关键词进行处理筛选,得到更准确和更有意义的结果。透过 textrank,我们可以更好的处理文本数据,提高处理效率和效果。同时,本文也希望能为前端开发人员提供有深度、有学习和指导意义的文章。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600556d981e8991b448d3b36