对于我的学士学位,我正在研究统计机器翻译。目前,我需要一本包含所有可能翻译的英语单词词典。例如:
[EN] Food -> [RO] Mancare
或
[EN] Food -> [RO] Hrana
为了构建我需要的字典,我修改了一个python脚本(原始here),它从英文单词列表中取出每个单词并将其发送到谷歌翻译,然后将结果写入文件。但是,我每个单词只收到一个结果,这是最常见的翻译。
我如何收到罕见且罕见的翻译? Google翻译网站列出了其他可能的翻译,但它们不会出现在我的结果中。 link used in the script与常规Google翻译不同。我尝试将请求发送到常规Google翻译链接,但返回页面并不包含我需要的信息。
或者,你知道一个已经存在的英语 - 罗马尼亚语词典,每个单词有多个可能的翻译吗?
谢谢!
这是我的Google翻译脚本:
import urllib2
def translate(word, sourceLanguage, targetLanguage):
agents = {'User-Agent':"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"}
before_trans = 'class="t0">'
link = "http://translate.google.com/m?hl=%s&sl=%s&q=%s" % (targetLanguage, sourceLanguage, word)
request = urllib2.Request(link, headers=agents)
page = urllib2.urlopen(request).read()
result = page[page.find(before_trans)+len(before_trans):]
result = result.split("<")[0]
return (result,page)
def main():
englishWords = open('englishWords.txt', 'r')
romanianWords = open('romanianWords.txt', 'w')
studyHTML = open('studyHTML.html', 'w')
studyTXT = open('studyTXT.txt', 'w')
for englishWord in englishWords:
translation = translate(englishWord, 'en', 'ro')
romanianWord = translation[0]
page = translation[1]
if romanianWord != "d>":
romanianWords.write(romanianWord)
romanianWords.write("\n")
studyHTML.write(page)
studyTXT.write(page)
if __name__ == '__main__':
main()
我想要获得的例子:
Food: Mancare, Hrana, Aliment
Car: Masina, Autovehicul
Cat: Pisica, Felina