Java 结合中文分词库 jieba 统计一堆文本中各个词语的出现次数【代码记录】

news2024/9/30 17:21:58

文章目录

    • 1、需求
    • 2、代码
    • 3、结果

1、需求

在这里插入图片描述

2、代码

package com.zibo.main;

import com.huaban.analysis.jieba.JiebaSegmenter;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class WordCount {

    public static void main(String[] args) {
        String file = "C:\\Users\\Administrator\\Desktop\\video_film_no_spaces.txt";

        try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
            // 读取文本
            StringBuilder content = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null) {
                content.append(line);
            }
            String text = content.toString();
            // 创建一个HashMap用于存储词语和出现次数
            Map<String, Integer> wordCounts = new HashMap<>();

            // 使用"jieba"分词库进行中文分词
            JiebaSegmenter segmenter = new JiebaSegmenter();
            List<String> words = segmenter.sentenceProcess(text);

            // 遍历每个词语并统计出现次数
            for (String word : words) {
                // 如果词语已经在HashMap中,则将其计数加1
                if (wordCounts.containsKey(word)) {
                    int count = wordCounts.get(word);
                    wordCounts.put(word, count + 1);
                }
                // 如果词语不在HashMap中,则将其添加到HashMap并设置计数为1
                else {
                    wordCounts.put(word, 1);
                }
            }

            // 输出每个词语及其出现次数
            for (Map.Entry<String, Integer> entry : wordCounts.entrySet()) {
                String word = entry.getKey();
                // 如果文字长度小于 2 ,跳过
                if (word.length() < 2) {
                    continue;
                }
                // 如果文字不是中文,跳过
                if (!word.matches("[\\u4e00-\\u9fa5]+")) {
                    continue;
                }
                int count = entry.getValue();
                System.out.println(word + " 出现了 " + count + " 次");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3、结果

D:\MySoft\Environment\Java\jdk-17.0.5\bin\java.exe "-javaagent:D:\MySoft\JetBrains\IntelliJ IDEA 2022.3.1\lib\idea_rt.jar=54655:D:\MySoft\JetBrains\IntelliJ IDEA 2022.3.1\bin" -Dfile.encoding=UTF-8 -classpath 
......
com.zibo.main.WordCount
main dict load finished, time elapsed 603 ms
model load finished, time elapsed 29 ms.
惊栗 出现了 2 次
经典 出现了 9 次
剧情片 出现了 1 次
音乐喜剧 出现了 32 次
儿童 出现了 23 次
灾难 出现了 39 次
同性 出现了 23 次
犯罪 出现了 963 次
喜剧片 出现了 1 次
动画 出现了 81 次
传记 出现了 57 次
惊悚 出现了 804 次
冒险 出现了 548 次
奇幻 出现了 490 次
爱情喜剧 出现了 370 次
枪战 出现了 1 次
历史 出现了 120 次
伦理 出现了 18 次
其他 出现了 1 次
音乐 出现了 30 次
剧情 出现了 1725 次
爱情 出现了 502 次
家庭 出现了 205 次
动作 出现了 3004 次
喜剧 出现了 2807 次
情色 出现了 4 次
性喜剧 出现了 28 次
脱口秀 出现了 9 次
科幻 出现了 347 次
运动 出现了 74 次
恐怖 出现了 291 次
戏曲 出现了 2 次
黑色 出现了 1 次
电影 出现了 1 次
西部 出现了 53 次
悬疑剧 出现了 33 次
纪录片 出现了 8 次
歌舞 出现了 38 次
文艺 出现了 6 次
纪录 出现了 2 次
悬疑 出现了 252 次
古装 出现了 208 次
古装剧 出现了 92 次
短片 出现了 9 次
歌舞剧 出现了 7 次
武侠 出现了 194 次
战争 出现了 212 次
鬼怪 出现了 1 次

Process finished with exit code 0


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/670375.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Picker, ColorPicker, DatePicker 的使用

1. Picker 选择器的使用 1.1 实现 /// 选择器 struct PickerBootcamp: View {State var selection: String "Most Recent"let filterOptions:[String] ["Most Recent", "Most Popular", "Most Liked"]init(){UISegmentedControl.ap…

Python基础(16)——Python集合(set)

Python基础&#xff08;16&#xff09;——Python集合&#xff08;set&#xff09; 文章目录 Python基础&#xff08;16&#xff09;——Python集合&#xff08;set&#xff09;目标一. 创建集合二. 集合常见操作方法2.1 增加数据2.2 删除数据2.3 查找数据 三. 总结 目标 创建…

Python基础(17)——Python运算符、公共方法、类型转换

Python基础&#xff08;17&#xff09;——Python运算符、公共方法、类型转换 文章目录 Python基础&#xff08;17&#xff09;——Python运算符、公共方法、类型转换目标一. 运算符1.1 1.2 *1.3 in或not in 二. 公共方法2.1 len()2.2 del()2.3 max()2.4 min()2.5 range()2.6 e…

4个重要的云安全方向

导语 伴随着云计算的不断发展和成熟&#xff0c;云安全越来越受到重视&#xff0c;每一年云安全都有不同的重点话题值得关注&#xff0c;今天我们一起来看看2023非常重要4个云安全话题 云攻击路径发现和威胁建模 随着攻击面的扩大&#xff0c;企业云安全的复杂性也会增加。为您…

一文搞懂 MySQL 中的常用函数及用法

0️⃣前言 MySQL是一种常用的关系型数据库管理系统&#xff0c;它提供了许多内置函数来处理数据。本文将介绍MySQL中的各种常用函数&#xff0c;包括字符串函数、日期函数、数学函数、聚合函数等。 文章目录 0️⃣前言1️⃣字符串函数1.1CONCAT函数1.2SUBSTRING函数1.3REPLACE函…

测试用例常用方法和选择原则

目录 前言&#xff1a; 一、等价类划分法 等价类思考步骤&#xff1a; 二、边界值 边界值的方法小结&#xff1a; 三、因果图法 因果图中的符号&#xff1a; 利用因果导出测试用例需要经过以下几个步骤&#xff1a; 四、判定表法 组成部分&#xff1a; 书写步骤&#xff1a; 五…

神经网络笔记

多分类问题 Softmax 高级优化算法 Adam Algorithm Intuition 每个参数有不同的学习率 卷积层 每个神经元只看前一层输入的一部分 原因&#xff1a; 1.更快的计算 2.需要更少的训练数据&#xff08;不容易过度拟合&#xff09; 模型评估 成本函数 分类 训练集用来训练…

【Python】数据库(创建库 访问 连接 创建表 编辑记录 案例:客户管理实现)

文章目录 * 库表与管理1.访问数据库1.1 连接与创建数据库1.2 创建表1.3 编辑表记录1.3.1 添加记录1.3.2 修改记录1.3.3 返回所有记录1.3.4 删除记录1.3.5 查询记录 1.4 案例&#xff1a;客户管理 SQLite 实现 * 库表与管理 1.访问数据库 SQLite 是 Python 自带的数据库管理模…

SpringBoot 如何使用 Spring Cloud Stream 处理事件

SpringBoot 如何使用 Spring Cloud Stream 处理事件 在分布式系统中&#xff0c;事件驱动架构&#xff08;Event-Driven Architecture&#xff0c;EDA&#xff09;已经成为一种非常流行的架构模式。事件驱动架构将系统中的各个组件连接在一起&#xff0c;以便它们可以相互协作…

【深度学习】5-4 与学习相关的技巧 - 正则化解决过拟合(权值衰减,Dropout)

机器学习的问题中&#xff0c;过拟合是一个很常见的问题。过拟合指的是只能拟合训练数据&#xff0c;但不能很好地拟合不包含在训练数据中的其他数据的状态。机器学习的目标是提高泛化能力&#xff0c;即便是没有包含在训练数据里的未观测数据也希望模型可以进行正确的识别。 …

皓文电子 | 智能制造领先企业的安全服务经验分享

皓文电子是一家为客户提供设计、生产、销售高端开关电源及各类功率变换产品的国家级高新技术企业&#xff0c;是国内智能制造领域的代表企业。其核心产品能与国际主流电源厂商竞争&#xff0c;达到国内外领先水平&#xff0c;并在国家多个重点项目中批量生产装备。 遭遇安全事件…

2023年湖北孝感初、中级工程师职称报名条件和要求是什么?启程别

2023年湖北孝感初、中级工程师职称报名条件和要求是什么&#xff1f;启程别 初级职称对于找工作很有帮助。现在&#xff0c;学历越来越高&#xff0c;仅有学历已经不能满足应聘需求。初级职称的获得并不难&#xff0c;有了职称也会让自己在找工作时更有竞争力。威信公号搜一下启…

2023年最新智能优化算法之——IBI逻辑优化算法(IBL),附MATLAB代码

今天给大家带来一个有意思的智能优化算法&#xff0c;IBL算法。 先说效果&#xff1a;在CEC2005函数集测试&#xff0c;基本上毫无压力&#xff0c;把把都能预测的很准确&#xff0c;而且速度极快。大家可以自行尝试哈。 为啥说这个算法有意思呢&#xff0c;大家看IBL的英文全…

史上最大图灵测试实验完成150万人类参与1000万次对话,判断对面是人还是AI

本文 介绍 了AI 21实验室推出了一个好玩的社交图灵游戏——「人类还是机器人&#xff1f;」 【导读】这个「人类还是AI?」的游戏一经推出&#xff0c;就被广大网友们玩疯了&#xff01;如今全世界已有150万人参与&#xff0c;网友们大方分享自己鉴AI的秘诀。 历上规模最大的…

解决:torch.cuda.is_available()一直返回False,显卡是NVIDA GeForce MX250

目录 1. 背景2. 发现问题根源3. 解决问题 1. 背景 AI时代了&#xff0c;之前一直不怎么用到的小米笔记本Pro的 NVIDA GeForce MX250独显&#xff0c;就想着让它发挥余热&#xff0c;免得买了这么多年&#xff0c;一直闲置&#xff0c;浪费。 无脑按照chatGPT给的例子&#x…

为什么Django要引入CSRF令牌?答:主要是为了防止跨站伪造请求攻击,那么什么是跨站伪造请求攻击呢?

“CSRF”的英文全称是&#xff1a;“Cross-Site Request Forgery”&#xff0c;翻译过来就是&#xff1a;“跨站请求伪造”。 那么什么是跨站伪造请求攻击呢&#xff1f;看下面这张图就够了。 注意&#xff1a;看上面这张图请按图中标注的1到6的顺序阅读。 Django通过引入CS…

一文详解!接口自动化的关键思路和解决方案

目录 引言 正文 一.接口传参 二. 外部数据源 三. 测试断言 四. 环境切换 五. 批量测试 总结 一.接口自动化的工具思维和测试思维 二.贯穿整个接口自动化项目的三个基本思路&#xff1a; 引言 与UI相比&#xff0c;接口一旦研发完成&#xff0c;通常变更或重构的频率…

使用nps搭建内网穿透服务

使用nps搭建内网穿透服务 如何使用nps搭建内网穿透服务前提准备操作流程配置服务端配置客户端 P2P模式&#xff0c;大流量低延迟 正式开始之前呢&#xff0c;先介绍一下什么是内网穿透&#xff1a; 内网穿透&#xff08;NAT穿透&#xff09;是一种技术&#xff0c;它允许您通过…

软件测试简历编写以及软件测试面试题大全

目录 前言&#xff1a; 一、简历重要性以及编写原则 二、简历模板 三、简历包装 四、互联网公司常用接口测试面试题 五、互联网公司常面自动化测试面试题 前言&#xff1a; 软件测试是软件开发过程中必不可少的一环&#xff0c;也是一个不断发展和变化的领域。在寻找软件测试职…

广角积分球均匀光源

现阶段&#xff0c;摄影测量技术已涉及多行多业&#xff0c;其在交通、考古以及景物三维重建中的应用尤为显著&#xff0c;但是普通相机取景范围有限&#xff0c;不能全面捕获整个空间信息&#xff0c;因此一种新型相机--全景相机逐步被应用到实际当中。80年代初&#xff0c;国…