【搞事情】英文文档单词对比&自动翻译

problem

可能的背景知识:python3;c++;dos&bat;World;Excel;PDF;

  • 给定两个英文文档(约会大作战3PDF版&高中英语词汇Word版)
  • 求两文档共同出现的单词有哪些,并翻译后输出到ans.txt文档中

在这里插入图片描述
在这里插入图片描述

solution(格式统一化)

1、对于PDF,导出得到1.txt文档。然后用文本编辑器打开把字符1234567890~!@%^&*()_+-=[]\;',./{}|:"<>? 替换为空格都。
在这里插入图片描述

2、对于Word,用替换通配符的方法把非字母的字符都替换为空格,然后再把所有空格都换行符,导出到文本2.txt。
在这里插入图片描述
(因为替换有点乱,所以很多空行)
在这里插入图片描述
【按照统计次频的方法,新建一个Excel;;从外部txt获取数据;;在列B自动填充全为1;;然后插入透视数据表】就得到了词频的统计同时完成了重复合并;;;另存为3.txt;;;
在这里插入图片描述
在这里插入图片描述
删掉前后空余的没用的行;;大约3500的高中词汇就呈现出来了。

codes

1、操作流程

1.新建4.txt;
2.复制1.txt到期中;
3.然后加入`gwj1314521`一行;
4.然后复制3.txt到期中;
5.然后加入'gwj233'一行;

2、新建cpp处理

#include<iostream>
#include<algorithm>
#include<string>
#include<set>
using namespace std;
const int maxn = 11000;
set<string>a,b,c;
int main(){
	freopen("4.txt","r",stdin);
	freopen("out.txt","w",stdout);
	string t; int flag = 1;
	while(cin>>t){
		if(t == "gwj1314521")flag = 0;
		if(flag){
			a.insert(t);
		}else{
			b.insert(t);
		}
		if(t == "gwj233")break;
	}
	set_intersection(a.begin(), a.end(), b.begin(), b.end(), inserter(c, c.begin()));
	//cout<<c.size()<<'\n';
	set<string>::iterator it;
	for(it = c.begin(); it != c.end(); it++){
		cout<<"echo "<<(*it)<<'\n';
		cout<<"(tdic "<<(*it)<<") >> ans.txt\n";
		cout<<"echo . >> ans.txt"<<endl;
	}
	return 0;
}

3、cmd环境下运行pip install termdic 安装hzwer的终端查词(您也可以自己写,或者也可以用其他地方的API,修改上一步具体代码即可)

1.因为编码炸锅,所以安装后他的代码还要做一两处修改。
2.打开目录(这里是你termdic软件的安装目录,,,找不到的话终端运行一下报错了就位置了)C:\Development\Python36\Lib\site-packages\termdic
3.打开termdic.py。在最上面加入"import io";在main中加入"sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')"
4.保存退出

在这里插入图片描述
4、修改4.txt后缀为bat,点击运行即可、
因为这里只提供解决方案,所以txt的编码有待优化。
在这里插入图片描述

5、最后数据
高中英语课本全部的词汇量大约是3600个
约会大作战13集的词汇量大约是21000个
他们有2000个相同重合的单词
在这里插入图片描述

参考资料

1、统计词频率
2、py3-UnicodeEncodeError
3、github-termidic
4、批处理脚本教程
5、word通配符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小哈里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值