根据Gödel、Escher、Bach提供的图表,我已经构建了一个 Python 脚本来使用普林斯顿英语 Wordnet 中的数据随机创建句子。Callingpython GEB.py会生成一系列无意义的英语句子,例如:
复苏的不美观成本。苔藓指甲。厌恶四十桃。星光隐藏。翻译礼服的面粉,敢于在苹果木上打一拳,重新提出要求。金枪鱼旁边的半叶状货轮。
并将它们保存到 gibberish.txt。这个脚本工作正常。
另一个脚本 ( translator.py) 接受 gibberish.txt 并通过 py-googletrans Python 模块尝试将这些随机句子翻译成葡萄牙语:
from googletrans import Translator
import json
tradutor = Translator()
with open('data.json') as dataFile:
data = json.load(dataFile)
def buscaLocal(keyword):
if keyword in data:
print(keyword + data[keyword])
else:
buscaAPI(keyword)
def buscaAPI(keyword):
result = tradutor.translate(keyword, dest="pt")
data.update({keyword: result.text})
with open('data.json', 'w') as fp:
json.dump(data, fp)
print(keyword + result.text)
keyword = open('/home/user/gibberish.txt', 'r').readline()
buscaLocal(keyword)
目前,第二个脚本仅输出 gibberish.txt 中第一句话的翻译。就像是:
复苏的不美观成本。财产保险。
我曾尝试使用readlines()而不是readline(),但出现以下错误:
Traceback (most recent call last):
File "main.py", line 28, in <module>
buscaLocal(keyword)
File "main.py", line 11, in buscaLocal
if keyword in data:
TypeError: unhashable type: 'list'
我在这里阅读了有关此错误的类似问题,但我不清楚应该使用什么来阅读 gibberish.txt 中包含的整个句子列表(新句子从新行开始)。
如何阅读 gibberish.txt 中包含的整个句子列表?我应该如何调整代码translator.py以实现这一目标?如果问题有点混乱,我很抱歉,如有必要,我可以进行编辑,我是 Python 新手,如果有人能帮助我,我将不胜感激。
慕斯王
芜湖不芜
相关分类