个人英文小词典--抽取英文阅读重要的名词、动词、形容词、副词并输出其翻译结果
主要实现将英文文本拆分,调用有道词典查询接口查询重点名词,动词,形容词,副词的功能。对重点单词的界定比较有待商榷,这里只是将小于5个字符长度的单词去除,但实际中肯定不是这样的。
package com.utopian.thankyou.end;import org.apache.http.client.HttpClient;
import java.io.IOException;
import java.util.List;import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;/*** Created by Mrs.Utopian on 2019/1/3.*/
public class CommonUtil {/*** 空格逗号句号分号拆分字符串*/public String [] wordArray(String str){String [] arr = str.split("(\\,|\\.|\\;)*[\\s+]");for(String ss : arr){System.out.println(ss);}return arr;}/*** 查询词义*/public static String [] getMeansByYouDao(String [] words){String word = null;int i = 0;HttpClient client = HttpClients.createDefault();String [] means = new String[words.length];int meansCount = -1; //用来控制需要查询的单词的个数while (i<words.length) {if(words[i].length()<5){//设定长度小于5个字符的单词为简单词 不查简单词i++;continue;}word = words[i++];meansCount++;HttpGet get = new HttpGet("http://fanyi.youdao.com/openapi.do?keyfrom=youdao111&key=60638690&type=data&doctype=xml&version=1.1&q="+ word);try {HttpResponse response = client.execute(get);HttpEntity entity = response.getEntity();String str = EntityUtils.toString(entity, "UTF-8");Element root = DocumentHelper.parseText(str).getRootElement();Element query = root.element("query");List clist = root.elements();Element paragraph = (Element) root.element("translation").element("paragraph");//用来判断返回的是翻译,还是单词if (clist.size() > 3) {means[meansCount] = word+":";List<Element> exlists = root.element("basic").element("explains").elements();for (Element e : exlists) {means[meansCount] = means[meansCount]+e.getText();}}else {means[meansCount] = word+":"+paragraph.getText();}} catch (ClientProtocolException e) {i = words.length;e.printStackTrace();} catch (IOException e) {i = words.length;e.printStackTrace();} catch (DocumentException e1) {i = words.length;e1.printStackTrace();}}return means;}public static void main(String args[]){//System.out.print(isSubject("Chinese"));CommonUtil commonUtil = new CommonUtil();String text="Cherish all your happy moments; they make a fine cushion for old age.";//原文String words[] = commonUtil.wordArray(text);String means[] = commonUtil.getMeansByYouDao(words);String nouns[] = new String[means.length]; //名词String verbs[] = new String[means.length]; //动词String ads[] = new String[means.length]; //形容词或副词int nounsCount=0;int verbsCount=0;int adsCount=0;for(int i = 0; i < means.length&&means[i]!=null;i++){//System.out.println(means[i]);//整理出名词n. 动词vt./vi./v. 形容词/副词 adj./adv.if(means[i].contains("n.")){nouns[nounsCount++] = means[i];}if(means[i].contains("vt.")||means[i].contains("vi.")||means[i].contains("v.")){verbs[verbsCount++] = means[i];}if(means[i].contains("adj.")||means[i].contains("adv.")){ads[adsCount++] = means[i];}}System.out.println("原文" + text);System.out.println("输出所有的名词");for(int i = 0;i<nounsCount;i++){System.out.println(nouns[i]);}System.out.println("输出所有的动词");for(int i = 0;i<verbsCount;i++){System.out.println(verbs[i]);}System.out.println("输出所有的形容词、副词");for(int i = 0;i<adsCount;i++){System.out.println(ads[i]);}}
}
输出的结果如下:
个人英文小词典--抽取英文阅读重要的名词、动词、形容词、副词并输出其翻译结果相关推荐
- 英文小论文怎么查重?
小论文以发表在期刊杂志上为主,虽然内容相对其他论文而言较短,但其写作难度并不低,而且不仅写作有难度,后面进行的论文查重难度更大.那英文小论文要怎么查重呢? 一.英文小论文怎么查重 由于是期刊需要发表的 ...
- python英语字典程序-Pyqt5实现英文学习词典
运用Python语言编写程序制作英文学习词典,词典有4个基本功能:添加.查询.删除和退出.程序读取源文件路径下的txt格式词典文件,若没有就创建一个.词典文件存储方式为"英文单词 中文单词& ...
- 英文文本关系抽取(fine-tune Huggingface XLNet)
本文主要是基于英文文本关系抽取比赛,讲解如何fine-tune Huggingface的预训练模型,同时可以看作是关系抽取的一个简单案例 数据预览 训练数据包含两列.第一列是文本,其中<e1&g ...
- NLP实践——基于SIFRank的英文关键短语抽取
NLP实践--基于SIFRank的英文关键短语抽取 1. 回顾 2. 英文关键词抽取 2.1 预训练词汇权重 2.2 分词/词性标注模型 2.3 候选短语抽取模型 2.4 编码模型 1. 回顾 之前的 ...
- Python基础(编写程序制作英文学习词典)
制作英文学习词典.编写程序制作英文学习词典,词典有3个基本功能:添加.查询和退出.程序读取源文件路径下的txt格式词典文件,若没有就创建一个.词典文件存储方式为"英文单词 中文单词" ...
- Python制作英文学习词典
编写程序制作英文学习词典,实现3个基本功能.添加,查询和退出. 以下是该词典的Python代码: dict = {} digits = '0123456789' path = 'dict.txt'de ...
- 5-RNN-03_双向rnn_英文小短文
import os import numpy as np import tensorflow as tfdef load_data(file_path):"""加载原始数 ...
- python语言程序设计基础程序练习题7.5制作英文学习词典
7.5 制作英文学习词典.编写程序制作英文学习词典,词典有3个基本功能添加.查询和退出.程序读取源文件路径下的txt格式词典文件,若没有就创建一个.词典文件存储方式为"英文单词 中文单词& ...
- python制作英语字典_Pyqt5实现英文学习词典
运用Python语言编写程序制作英文学习词典,词典有4个基本功能:添加.查询.删除和退出.程序读取源文件路径下的txt格式词典文件,若没有就创建一个.词典文件存储方式为"英文单词 中文单词& ...
最新文章
- kali高速更新源以及主题修改方法
- Java基础:JVM垃圾回收算法
- excel连接mysql 数据库
- ubuntu16.04安装opencv3.1.0(包含opencv_contrib模块)
- Python+tkinter根据窗体大小自动缩放并显示图像
- asp.net mvc(九)
- 计算机对用户的操作做出反应,云南省计算机二级VB考试真题题库
- vue 前端 增加取色器/拾色器
- 《伯克毕生发展心理学1》
- mac安装win10_VMware mac虚拟机安装Win10系统的详细教程
- 进军AR领域,这一次罗永浩能成吗?
- 外贸常用术语_外贸常用术语总结.doc
- 牛客 | C 选择颜色
- 中国电信再发力:推出最新七大惠民惠企新举措
- Unity 游戏加载进度条的开发
- hp打印机一直显示正在打印中_HP打印机提示文档正在打印,但就是打印不了?...
- 10个最佳企业移动支付APP应用和酷站欣赏
- 第一次作业——————打印沙漏
- 【GXOI/GZOI2019】与或和【单调栈】
- 【mycat】mycat水平分表