基于java的英文翻译字典

news2024/10/7 16:18:24

基于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秒

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

查询接口如下

在这里插入图片描述

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

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

相关文章

金石传拓非遗技艺端午专场活动之精彩瞬间

6月10日端午节下午&#xff0c;由致公党润州区基层委二支部举办的“凝心铸魂强根基&#xff0c;端午追远贺盛世”金石传拓体验活动在镇江万达广场隆重举行。近30名党员及其家属参加了本次活动&#xff0c;活动由润州区二支部主委吴娉主持。 端午节&#xff0c;又称端阳节&#…

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…

【机器学习】GANs网络在图像和视频技术中的应用前景

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 1. &#x1f525;引言 背景介绍 研究意义 2. &#x1f388;GANs的基本概念和工作原理 生成对抗网络简介 工作原理 3. &#x1f916;GANs在图像生成中的应用 图像超分辨率 工作原理 图像去噪 工作原理 图…

【附带源码】机械臂MoveIt2极简教程(五)、第二个demo - rviz可视化

系列文章目录 【附带源码】机械臂MoveIt2极简教程(一)、moveit2安装 【附带源码】机械臂MoveIt2极简教程(二)、move_group交互 【附带源码】机械臂MoveIt2极简教程(三)、URDF/SRDF介绍 【附带源码】机械臂MoveIt2极简教程(四)、第一个入门demo 【附带源码】机械臂Move…

森林(fsc)认证的主要目的是什么?

森林认证&#xff08;Forest Certification&#xff09;的目的主要是为了确保森林的可持续经营&#xff0c;同时保护生态环境、生物多样性和社区权益。以下是森林认证的主要目的&#xff1a; 促进可持续森林管理&#xff1a; 森林认证鼓励采用可持续的森林管理方法&#xff0c…

(CVPR,2024)Adversarial Prompt Tuning:只需一个提示词就足以提升预训练视觉-语言模型的对抗性鲁棒性

文章目录 相关资料摘要引言对抗性鲁棒性的文本提示CLIP回顾 方法提示参数化提示优化 实验 相关资料 论文&#xff1a;[2403.01849] One Prompt Word is Enough to Boost Adversarial Robustness for Pre-trained Vision-Language Models (arxiv.org) 代码&#xff1a;TreeLLi…

私生子女是否拥有平等的继承权

私生子女&#xff0c;是否拥有平等的继承权&#xff1f;在当今社会&#xff0c;随着人们思想观念的不断开放和变化&#xff0c;家庭结构也日益多样化。其中&#xff0c;私生子女的存在成为了一个不可回避的话题。那么&#xff0c;私生子女是否应该享有与婚生子女同等的继承权呢…

解读surging 的内存过高的原因

前言 对于.NET开发人员来讲&#xff0c;一个程序占用内存过高&#xff0c;是极其糟糕&#xff0c;是一款不合格的程序软件&#xff0c;.NET开发人员也不会去使用服务器垃圾收集器(ServerGarbageCollection),而是选用工作站垃圾收集器&#xff0c;而是对于一款低内存的程序更能给…

【丝滑的LangChain】我用python问gpt认不认识小范大人,它告诉我认识个der~

前言 嗨&#xff0c;大家好&#xff01;我是海鸽。 《庆余年2》刚刚完结&#xff0c;热度不减&#xff0c;我忍不住好奇&#xff1a;我们的AI伙伴GPT&#xff0c;是否也对剧中那位机智过人的小范大人有所耳闻&#xff1f; 最近我们尝试了LangChain的调用&#xff0c;体验了一…

单目标应用:基于人工原生动物优化器APO的微电网优化(MATLAB代码)

一、微电网模型介绍 微电网多目标优化调度模型简介_vmgpqv-CSDN博客 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、人工原生动物优化算法求解微电网 2.1算法简介 人工原生动物优化器&am…

NewStarCTF_RE(week1,2)

[NewStarCTF 2023 公开赛道]easy_RE ida 可能会把 一个数组或字符串拆开&#xff0c;可以通过计算地址&#xff0c;知道是一起的 也有的会藏在汇编窗口 Segments IDA的Segments窗口 &#xff1a;shiftf7 https://www.cnblogs.com/sch01ar/p/9477697.html ida 各种窗口也是需要…

C++ 10 之 引用

c10引用.cpp #include <iostream>using namespace std;int main() {// 引用的语法&#xff1a;类型 &别名 原名// int a 10;// int &b a; // 此时a,b指向同一块内存// cout << "a: " << a << endl;// cout << "b: &…

安装sqlserver2022 express

1、下载 SQL Server 下载 | Microsoft 双击sql2022-ssei-expr 2、安装 下载完成以后&#xff0c;将会出现以下对话框 &#xff1a; 点击【全新SQL Server独立安装或向现有安全添加功能】 下一步&#xff0c;下一步&#xff1a; 下一步&#xff1a; 下一步&#xff0c;这里我…

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

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

【星海随笔】云解决方案学习日志篇(一) ELK,kibana,Logstash安装

心路历程 本来想最近再研究研究DPDK的。但是自己做一个东西很多时候没有回报。因为自己的低学历问题&#xff0c;类似工作的面试都没有。所以很多东西学了很快就忘了&#xff0c;没有地方可以用。 今天看到了一个大佬,除了发型外,很多想法还是很共鸣的。 Shay Banon 决定开始跟…

2024年6月11日 (周二) 叶子游戏新闻

万能嗅探: 实测 网页打开 某视频号、某音、某红薯、某站&#xff0c;可以做到无水印的视频和封面下载功能哦&#xff0c;具体玩法大家自行发挥吧。 WPS免登录一键修改器: 去除烦人的登录且能正常使用 日本一首部游戏《拼图世界》上架Steam 30年PS名作日本游戏厂商日本一的首部品…

Keil一键添加.c文件和头文件路径脚本--可遍历添加整个文件夹

最近想移植个LVGL玩玩&#xff0c;发现文件实在是太多了&#xff0c;加的手疼都没搞完&#xff0c;实在不想搞了就去找脚本和工具&#xff0c;基本没找到一个。。。。。。 主要是自己也懒得去研究写脚本&#xff0c;偶然搜到了一个博主写的脚本&#xff0c;原博客地址:https:/…

前端传递bool型后端用int收不到

文章目录 背景模拟错误点解决方法 背景 我前几天遇到一个低级错误&#xff0c;就是我前端发一个请求&#xff0c;把参数送到后端&#xff0c;但是我参数里面无意间传的布尔型&#xff08;刚开始一直没注意到&#xff0c;因为当时参数有十几个&#xff09;&#xff0c;但是我后…

CMS与AI的融合:构建万能表单小程序系统

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;MyCMS作为一款功能强大的内容管理系统&#xff0c;通过集成AI技术&#xff0c;进一步拓展了其应用范围和智能化水平。本文将探讨如何利用MyCMS结合AI技术&#xff0c;构建一个能够将用户提交的万能表单数据转化为智能提…

【Nginx系列】基于请求头的分发

文章目录 一、HTTP请求头和响应头二、基于请求头的分发2.1、基于host分发2.2、基于域名的分发测试&#xff1a;2.3、基于开发语言分发2.4、基于浏览器分发2.5、基于源IP分发 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能…