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


    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()<<'
    ';
        set<string>::iterator it;
        for(it = c.begin(); it != c.end(); it++){
            cout<<"echo "<<(*it)<<'
    ';
            cout<<"(tdic "<<(*it)<<") >> ans.txt
    ";
            cout<<"echo . >> ans.txt"<<endl;
        }
        return 0;
    }

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

    1.因为编码炸锅,所以安装后他的代码还要做一两处修改。
    2.打开目录(这里是你termdic软件的安装目录,,,找不到的话终端运行一下报错了就位置了)C:DevelopmentPython36Libsite-packages	ermdic
    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通配符

  • 相关阅读:
    操作系统概述总结
    string类的用法总结
    stack的简单用法总结
    递归用法总结
    C语言中常见的图形打印总结
    C++中list的用法总结
    STL中find和sort的用法总结
    unity Physics/Physics2DProjectSettings中LayerCollisionMatrix的存储方式
    UnityEvent<T> 系列化
    十字相乘法
  • 原文地址:https://www.cnblogs.com/gwj1314/p/9444639.html
Copyright © 2020-2023  润新知