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#include #include #include using namespace std;const int maxn = 11000;set 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< <<'\n'; set ::iterator it; for(it = c.begin(); it != c.end(); it++){ cout<<"echo "<<(*it)<<'\n'; cout<<"(tdic "<<(*it)<<") >> ans.txt\n"; cout<<"echo . >> ans.txt"<
3、cmd环境下运行pip install termdic
安装hzwer的终端查词(您也可以自己写,或者也可以用其他地方的API,修改上一步具体代码即可)
1.因为编码炸锅,所以安装后他的代码还要做一两处修改。2.打开目录(这里是你termdic软件的安装目录,,,找不到的话终端运行一下报错了就位置了)C:\Development\Python36\Lib\site-packages\termdic3.打开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、 3、 4、 5、