请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

52matlab技术论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: 活动 交友 discuz
查看: 40|回复: 0

matlab调用google翻译

[复制链接]
  • TA的每日心情
    开心
    2015-3-12 11:57
  • 签到天数: 1 天

    [LV.1]初来乍到

    63

    主题

    116

    帖子

    904

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    904
    发表于 2018-1-9 17:05:13 | 显示全部楼层 |阅读模式
    今天在使用mobile-net时,由于显示的识别结果全是英文,突然有一个想把这些显示的识别结果改成中文冲动。打开label文件一看,1000个英文单词,手动操作不可能了,于是google查询matlab自动翻译的资料,历经一个小时终于搞定。废话不多说,上源码。
    脚本函数如下:

    clear all
    close all
    clc
    warning off%关掉警告

    readFid = fopen('elabels.txt','r+');%需要翻译的英语句子或单词
    writeFid = fopen('clabels.txt','w+');%存储翻译后的结果
    while ~feof(readFid)
        s = fgetl(readFid);%读取翻译的英语句子或单词
        tmpChiWord = e2cTranslate(s);
        fprintf(writeFid,'%s\n',tmpChiWord);%保存翻译后的结果
    end

    fclose(readFid);
    fclose(writeFid);



    调用的子函数如下:
    function chineseWord = e2cTranslate(englishWord)
    %翻译函数

    preTranslateURL = 'https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=zh&dt=t&q=';
    wordURL = sprintf('%s%s', preTranslateURL, englishWord);%将URL跟需要翻译的句子合并
    HTMLCodes = urlread(wordURL);%翻译过程

    %取出翻译的结果
    preLabel = '[[["';
    postLabel = sprintf('","%s', englishWord);
    prePosition = findstr(HTMLCodes, preLabel) + length(preLabel);
    postPosition = findstr(HTMLCodes, postLabel) - 1;
    chineseWord = HTMLCodes(prePosition:postPosition);

    end



    其中elabel.txt文件中存储的字符格式如下:
    background
    tench
    goldfish
    great white shark
    tiger shark
    hammerhead
    electric ray
    stingray

    ...
    elabel.txt文件可以自动生成。
    关于汉译英有兴趣的朋友可以仿照程序自己试试。。。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|52matlab技术论坛    

    GMT+8, 2018-2-26 09:48 , Processed in 0.491349 second(s), 27 queries .

    Powered by Discuz! X3.2 Licensed

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表