基于java的英文翻译字典

基于java的英文翻译字典,附有源代码,源数据库初始化文件

源码地址

dict_demo: 提取一段英文对话中的英文词汇,输出为英文单词字典形式

解析json字条
    private void readFile(String pathname) {
        long start = System.currentTimeMillis();
//        String pathname = ;
        int count = 0;
        int errcount = 0;

        try (FileReader reader = new FileReader(pathname);
             BufferedReader br = new BufferedReader(reader)
        ) {
            String line;
            while ((line = br.readLine()) != null) {
                EnglishDictVo englishDictVo = JSONObject.parseObject(line, EnglishDictVo.class);
                String headWord = englishDictVo.getHeadWord();
                String bookId = englishDictVo.getBookId();
                Object sentence = englishDictVo.getContent().getWord().getContent().getSentence();
                String ukphone = englishDictVo.getContent().getWord().getContent().getUkphone();
                String usphone = englishDictVo.getContent().getWord().getContent().getUsphone();
                String tranCn = englishDictVo.getContent().getWord().getContent().getTrans().get(0).getTranCn();
                EnglishDict englishDict = new EnglishDict();
                englishDict.setEnglishWord(headWord);
                englishDict.setBritishSound(ukphone);
                englishDict.setAmericanSound(usphone);
                englishDict.setChineseWord(tranCn);
                englishDict.setTag(bookId);
                if (sentence != null) {
                    englishDict.setSentence(JSONObject.toJSONString(sentence));
                }
                if (headWord == null || bookId == null || ukphone == null || usphone == null || tranCn == null) {
                    errcount++;
                    continue;
                }
                // 这里可以不做单词唯一的校验。导入多本词汇。给出多个单词书的实例
                EnglishDict englishDictQuery = englishDictMapper.selectOne(
                        Wrappers.<EnglishDict>lambdaQuery()
                                .eq(EnglishDict::getEnglishWord, headWord)
                                .last("limit 1"));
                if (englishDictQuery == null) {
                    englishDictMapper.insert(englishDict);
                    count++;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        long end = System.currentTimeMillis();

        System.out.println("====== 入库 " + count + "   错误" + errcount);
        System.out.println("====== 耗时 " + (end - start));
    }


从内容中提取词汇
  public ReportVo extractKeywords(String contentString) {
        ReportVo reportVo = new ReportVo();
        String[] s = contentString.replace(" ", ",").split(",");
        HashSet<String> strings = new HashSet<String>(Arrays.asList(s));
        if (CollUtil.isNotEmpty(strings)) {
            Set<String> queryWords = strings.stream().map(vo -> {
                String s1 = vo.replaceAll("[^a-zA-Z]", ""); // 去掉无用的符号
                String lowerCase = s1.toLowerCase();
                return lowerCase;
            }).collect(Collectors.toSet());
            List<EnglishDict> englishDicts = englishDictMapper.selectList(
                    Wrappers.<EnglishDict>lambdaQuery()
                            .in(EnglishDict::getEnglishWord, queryWords)
            );
            reportVo.setWordNum(englishDicts.size());
            List<ReportVo.WordVo> words = englishDicts.stream().map(vo -> {
                ReportVo.WordVo wordVo = new ReportVo.WordVo();
                wordVo.setAmericanSound(vo.getAmericanSound());
                wordVo.setBritishSound(vo.getBritishSound());
                wordVo.setChinese(vo.getChineseWord());
                wordVo.setEnglish(vo.getEnglishWord());
                return wordVo;
            }).collect(Collectors.toList());
            reportVo.setWords(words);
        } else {
            reportVo.setWordNum(0);
            reportVo.setWords(Collections.EMPTY_LIST);
        }
        return reportVo;
    }


初始化接口如下

在这里插入图片描述

一千条耗时5秒

在这里插入图片描述
在这里插入图片描述
把剩下的也插入
在这里插入图片描述

查询接口如下

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记——路由网络基础——路由优先级(preference)

1、路由优先级(preference) 路由优先级(preference)代表路由的优先程度。当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时&#xff0c;路由器会比较这些路由的优先级&#xff0c;优选优先级值最小的路由。 路由来源的优先…

Goby 漏洞发布|XAMPP Windows PHP-CGI 代码执行漏洞

漏洞名称&#xff1a;XAMPP Windows PHP-CGI 代码执行漏洞 English Name&#xff1a;XAMPP PHP-CGI Windows Code Execution Vulnerability CVSS core: 9.8 漏洞描述&#xff1a; PHP是一种在服务器端执行的脚本语言,在 PHP 的 8.3.8 版本之前存在命令执行漏洞,由于 Window…

SpringMVC框架学习笔记(七):处理 json 和 HttpMessageConverter 以及文件的下载和上传

1 处理 JSON-ResponseBody 说明: 项目开发中&#xff0c;我们往往需要服务器返回的数据格式是按照 json 来返回的 下面通过一个案例来演示SpringMVC 是如何处理的 &#xff08;1&#xff09; 在web/WEB-INF/lib 目录下引入处理 json 需要的 jar 包&#xff0c;注意 spring5.x…

MYSQL数据库下载和安装(详细)

1.点击MySQL官网(后续照着图走) 2.软件下载完点击进入安装 设置要安装的路径然后点击OK,后面点击下一步 再点击下一步 MySQL推荐使用最新的数据库和相关客户端&#xff0c;mysql8换了加密插件&#xff0c;所以如果选第一种方式&#xff0c;很可能导致你的navicat等客户端连不上…

基于C#开发web网页管理系统模板流程-主界面密码维护功能完善

点击返回目录-> 基于C#开发web网页管理系统模板流程-总集篇-CSDN博客 前言 紧接上篇->基于C#开发web网页管理系统模板流程-主界面统计功能完善-CSDN博客 一个合格的管理系统&#xff0c;至少一定存在一个功能——用户能够自己修改密码&#xff0c;理论上来说密码只能有用…

使用Hadoop MapReduce分析邮件日志提取 id、状态 和 目标邮箱

使用Hadoop MapReduce分析邮件日志提取 id、状态 和 目标邮箱 在大数据处理和分析的场景中&#xff0c;Hadoop MapReduce是一种常见且高效的工具。本文将展示如何使用Hadoop MapReduce来分析邮件日志&#xff0c;提取邮件的发送状态&#xff08;成功、失败或退回&#xff09;和…

【云原生】使用kubekey部署k8s多节点及kubesphere

kubesphere官方部署文档 https://github.com/kubesphere/kubesphere/blob/master/README_zh.md kubuctl命令文档 https://kubernetes.io/zh-cn/docs/reference/kubectl/ k8s资源类型 https://kubernetes.io/zh-cn/docs/reference/kubectl/#%E8%B5%84%E6%BA%90%E7%B1%BB%E5%9E…

Nginx配置详细解释:(6)实现反向代理服务器,动静分离,负载均衡

作为代理服务器是当客户端访问代理服务器时&#xff0c;代理服务器代理客户端去访问真实web服务器。proxy_pass; 用来设置将客户端请求转发给的后端服务器的主机。 需要模块ngx_http_upstream_module支持。 单台反向代理 在第三台主机上下载安装httpd&#xff0c;在主页面/v…

VMware Ubuntu虚拟机上设置SSH连接,win直接用ssh连接虚拟机

要在Ubuntu虚拟机上设置SSH连接&#xff0c;并进行一些特定配置&#xff0c;您可以按照以下步骤进行操作&#xff1a; 步骤 1&#xff1a;安装OpenSSH Server 打开终端。 更新包列表并安装OpenSSH Server&#xff1a; sudo apt update sudo apt install openssh-server安装完…

讯飞星火高考中英文作文双料第一,力压GPT-4o

随着2024届高考落幕&#xff0c;近日&#xff0c;各家大模型的高考评测结果陆续出炉&#xff0c;多家媒体和专业人士用高考中英文作文题和数学题对大模型能力进行测评&#xff0c;讯飞星火不仅占据榜首&#xff0c;并超过GPT-4o&#xff0c;在本届的“大模型高考”中&#xff0…

Django之云存储(一)

一、介绍 用户上传的文件以及项目中使用的静态文件,除了保存在本地服务器,还在可以保存在云服务中,比如: 阿里云七牛云(课程选用)亚马逊云等1.1、使用方式 注册账号 七牛云开发者平台 实名认证 创建空间

Unity 集成 FMOD 音频管理插件 2.02

Unity 集成 FMOD 音频管理插件 2.02 3. 集成教程&#xff1a;3.1 设置Unity项目3.2 设置FMOD项目3.3 设置 FMOD for Unity3.4 添加声音&#xff1a;卡丁车引擎3.5 添加声音&#xff1a;氛围3.6 添加声音&#xff1a;音乐3.7 删除现有音频3.8 下一步 10. 脚本 API 参考10.1 基础…

2024年6月12日 (周三) 叶子游戏新闻

万能嗅探: 实测 网页打开 某视频号、某音、某红薯、某站&#xff0c;可以做到无水印的视频和封面下载功能哦&#xff0c;具体玩法大家自行发挥吧。 WPS免登录一键修改器: 去除烦人的登录且能正常使用 杨奇试戴《黑神话&#xff1a;悟空》豪华版金箍 效果还不错&#xff01;最近…

181.二叉树:验证二叉树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

3-哈希表-71-三数之和-LeetCode15

3-哈希表-71-三数之和-LeetCode15 参考&#xff1a;代码随想录 LeetCode: 题目序号15 更多内容欢迎关注我&#xff08;持续更新中&#xff0c;欢迎Star✨&#xff09; Github&#xff1a;CodeZeng1998/Java-Developer-Work-Note 技术公众号&#xff1a;CodeZeng1998&#xff…

【人工智能】文本提取技术的算法延伸

✍&#x1f3fb;记录学习过程中的输出&#xff0c;坚持每天学习一点点~ ❤️希望能给大家提供帮助~欢迎点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;指点&#x1f64f; 文本提取技术中用到的算法 TF-IDF&#xff08;Term Frequency-Inverse Document Frequency…

数据分类分级,误把起点当终点

数据分类分级 吉祥学安全知识星球&#x1f517;除了包含技术干货&#xff1a;Java代码审计、web安全、应急响应等&#xff0c;还包含了安全中常见的售前护网案例、售前方案、ppt等&#xff0c;同时也有面向学生的网络安全面试、护网面试等。 01 — 数据分类分级的定义 数据分…

Tuxera NTFS for Mac 2023软件:超级详细安装步骤(最新版软件下载)

软件简介&#xff1a; 在 Mac 上打开、编辑、复制、移动或删除存储在 Windows NTFS 格式 USB 驱动器上的文件。当您获得一台新 Mac 时&#xff0c;它只能读取 Windows NTFS 格式的 USB 驱动器。要将文件添加、保存或写入您的 Mac&#xff0c;您需要一个附加的 NTFS 驱动程序。…

论文Abstract怎么写

摘要是你要写的最后一项内容 步骤 首先先通读自己的文章&#xff0c;清楚自己写的文章是研究型还是技术型&#xff0c;适合描述性的摘要还是知识性。 描述性摘要内含研究目的、目标及方向等&#xff0c;不讲研究结果。字数大约100-200字。知识性摘要则包含研究结果&#xff0c…

语法05 C++ 浮点型/实数类型

什么是实数类型 实数类型是一种数据类型&#xff0c;实数类型变量里能存放小数和整数。 定义格式&#xff1a;double a; 赋值&#xff1a;a0.4; 输入&#xff1a;cin>>a; 输出&#xff1a;cout<<a; 训练&#xff1a;尺子的价格 小知在文具店买铅笔&#xff…