首页 > 编程语言 >NLP segment-03-基于 TF-IDF 实现关键词提取 java 开源实现

NLP segment-03-基于 TF-IDF 实现关键词提取 java 开源实现

时间:2024-11-01 20:30:31浏览次数:1  
标签:NLP keyword 03 开源 IDF segment 分词

拓展阅读

分词系列专题

jieba-fenci 01 结巴分词原理讲解 segment

jieba-fenci 02 结巴分词原理讲解之数据归一化 segment

jieba-fenci 03 结巴分词与繁简体转换 segment

jieba-fenci 04 结巴分词之词性标注实现思路 speechTagging segment

关键词系列专题

NLP segment-01-聊一聊分词

NLP segment-02-聊一聊关键词提取 keyword

NLP segment-03-基于 TF-IDF 实现关键词提取 java 开源实现

NLP segment-04-自动摘要 auto-summary java 开源实现

NLP segment-20-分词开源项目介绍 HanLP 未来十年的自然语言处理

NLP segment-21-分词开源项目介绍 ansj_seg

倒排索引原理与实现 reverse-index

TF-IDF 自动生成文章摘要

TF-IDF 自动提取关键词

相似文章算法之语义指纹-文本内容去重

TF-IDF 找出相似文章算法

NLP segment-21-分词开源项目介绍 ansj_seg

开源项目

为了便于大家学习,项目开源地址如下,欢迎 fork+star 鼓励一下老马~

nlp-keyword 关键词

pinyin 汉字转拼音

segment 高性能中文分词

opencc4j 中文繁简体转换

nlp-hanzi-similar 汉字相似度

word-checker 拼写检测

sensitive-word 敏感词

前言

前面一些内容,我们介绍了分词。

以及 TF-IDF 的实现原理。

当然,这些都是知识,但不是工具。

我们将其转换为方便可用的 java 工具。

nlp-keyword

nlp-keyword 高性能的 java 分词关键词提取实现,基于分词 segment

愿景:成为 java 最好用的关键词工具。

特性

  • 基于 TF-IDF 算法的关键字算法

  • 灵活的条件指定

变更日志

快速开始

maven 引入

<dependency>
    <groupId>com.github.houbb</groupId>
    <artifactId>keyword</artifactId>
    <version>1.0.0</version>
</dependency>

快速开始

  • 获取关键词
final String text = "这是一个伸手不见五指的黑夜,夜太美。";

List<IKeywordResult> keywords =  KeywordHelper.keyword(text);
Assert.assertEquals("[伸手不见|0.86879235325, 太美|0.70848301840625, 伸手不见五指|0.63371734601875, 黑夜|0.509854654010625, 伸手|0.43563643037625]", keywords.toString());
  • 指定返回的个数
final String text = "这是一个伸手不见五指的黑夜,夜太美。";

List<IKeywordResult> keywords =  KeywordHelper.keyword(text, 1);
Assert.assertEquals("[伸手不见|0.86879235325]", keywords.toString());
  • 指定返回的格式
final String text = "这是一个伸手不见五指的黑夜,夜太美。";

List<String> keywords =  KeywordHelper.keyword(text, 1, KeywordResultHandlers.words());
Assert.assertEquals("[伸手不见]", keywords.toString());

ROAD-MAP

  • [] 字典数据独立,便于用户自定义选择

  • [] 文本相似度

  • [] auto-summary 自动摘要

标签:NLP,keyword,03,开源,IDF,segment,分词
From: https://www.cnblogs.com/houbbBlogs/p/18521221

相关文章

  • 五上数学第3单元考试情况反馈203班
    五上数学第3单元考试情况反馈203班上周进行了数学第3单元的综合练习,已经进行了讲评。试卷已经下发,请学生带回家改完错误,家长签字。签字在试卷的左上角,签字示范:家长阅,11月1日,或者再写一些建议与意见都可以。下面分析一下考试情况:第3单元数学测验:因数与倍数下面是具体的数据:3......
  • POLIR-Mind-Cognition-Neural Models-NLP(Neural Logic Levels) 思维逻辑层级-能给你
    百知思维模型-NLP理解层次能给你无敌洞察力https://v.douyin.com/iS74bMKr/POLIR-Mind-CognitionNeuralModelsNLP(NeuralLogicLevels)思维逻辑层级能给你无敌洞察力GregoryBertson(格雷歌理,贝特森)RobertDiertz(罗伯特,迪尔磁)终于在1991年成为理解问题和解决问题......
  • AT 经典90题(031-060)
    31.VSAtCoder考虑sg函数,每次异或上\((w_i,b_i)\)的sg函数看最后是不是\(0\)即可。注意\(b\)那一位的上界为\(1500\)而不是\(50\)。32.AtCoderEkiden考虑全排列枚举跑步顺序并判断不合法即可。33.NotTooBright先特判\(n\)或\(m\)为\(1\)的情况。对于其......
  • SS241031D. 后缀数组(sa)
    SS241031D.后缀数组(sa)题意重题:NOD2308D.飒妃客厮·啊瑞(array)给你一个初始\(a_i=i\)的长度为\(n\)的序列,\(n\le10^9\)。有\(m\)次操作。\(m\le10^5\)。把区间\([l,r]\)移到最前面。翻转区间\([l,r]\)。最终得到序列\(\{a_i'\}\)。求满足长度为\(n\)的......
  • C++之OpenCV入门到提高003:矩阵的掩膜(Mask)处理
    一、介绍今天是这个系列《C++之Opencv入门到提高》得第三篇文章。今天这篇文章也不难,主要介绍如何使用Opencv对图像进行掩膜处理,提高图像的对比度。在这个过程中,我们可以学到如何获取图像指针、如何处理像素值越界等问题。我们一步一个脚印的走,收获就会越来越多。虽然......
  • DPaRL:耶鲁+AWS出品,开放世界持续学习场景的新解法 | ECCV'24
    来源:晓飞的算法工程笔记公众号,转载请注明出处论文:Open-WorldDynamicPromptandContinualVisualRepresentationLearning论文地址:https://arxiv.org/abs/2409.05312创新点在开放世界中建立了一种新的持续视觉表征学习的实用设置。提出了一种简单而强大的方法,动......
  • 当访问该网站时失败,提示Forbidden或HTTP 错误 403.14 - Forbidden报错信息
    当您遇到“Forbidden”或“HTTP错误403.14-Forbidden”时,这通常意味着服务器理解了请求,但拒绝执行。这种错误可能由多种原因引起,以下是一些常见的解决方法:检查URL:确保输入的网址正确无误。检查是否有任何多余的字符或拼写错误。服务器配置问题:对于IIS服务器,403.14......
  • 每日计划-1031
    1. 完成160.相交链表/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode(intx):val(x),next(NULL){}*};*/classSolution{public:ListNode*getIntersectionNode(ListNode*head......
  • SS241031C. 博弈(game)
    SS241031C.博弈(game)题意博弈的规则是,有\(3\)个数字\(x,y,z\),每次可以选择其中两个数字\(x,y\),改成\(x',y'\),满足和不变差严格变小,即\(x+y=x'+y',|x-y|>|x'-y'|\)。无法操作的失败。给你\(n\)个数字,问有多少种选\(3\)个数字的方案使得先手必胜。solution首先可以设......
  • STM32F103C8T6学习笔记1--新建工程模板
    1、简介STM32是一系列由STMicroelectronics(瑞士意法半导体)公司设计和生产的32位微控制器产品线。这些微控制器基于ARMCortex-M内核,并具有高性能、低功耗和多种外设接口的特点。STM32处理器被广泛应用于各种嵌入式系统领域,包括工业控制、消费电子、汽车电子、物联网等。STM32......