52matlab技术网站,matlab教程,matlab安装教程,matlab下载

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4980|回复: 0
打印 上一主题 下一主题

matlab调用google翻译

[复制链接]

125

主题

209

帖子

3078

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3078
跳转到指定楼层
楼主
发表于 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技术网站 ( 粤ICP备14005920号-5 )

GMT+8, 2024-11-29 14:55 , Processed in 0.080116 second(s), 19 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

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