所以我和我的朋友正在制作一些语言以获得乐趣,我认为这将是练习python和翻译的好机会。语言非常简单,所以在这一点上,我想我可以制作单独的词典来容纳所有不同的词性,然后将它们组合成一个字符串。最初我开始使用代词词典和动词词典开始只是为了让翻译部分失效。这就是我现在所拥有的,虽然它不起作用
pro = {"I":"ii"}
verb = {"am":"esti"}
noun = {"theatre":"trieto"}
adj = {"red":"reada"}
sentence = input("translate: \n")
for word in sentence.split(" "):
print(pro.get(word, word)+ verb.get(word, word))
我想制作一个主要插入字符串中特定词性的翻译器。
如果采用完全不同的方式做到这一点,那么我的所有耳朵都会变得更容易。此外,我也很难学习nltk,所以如果你知道如何使用nltk,那么我将非常感谢你学习如何。
答案 0 :(得分:2)
如果您希望将每个单词视为可能的任何词性,则不需要为每个词性单独的词典,只需要一个大词典。
所以,让我们合并它们:
translate = {}
for d in pro, verb, noun, adj:
translate.update(d)
......现在,你想做的事情是微不足道的:
for word in sentence.split(" "):
print(translate.get(word, word))
另一方面,如果你有一些逻辑来根据位置选择一个词性,你需要写出那个逻辑。
例如,也许第一个单词总是代词,然后是动词,然后是0个或更多的形容词,然后是名词。 (对于英语来说,这是一个相当愚蠢的语法,但这是一个开始的例子。)所以:
p, v, *aa, n = sentence.split()
print(pro.get(p, p))
print(verb.get(v, v))
for a in aa:
print(adj.get(a, a))
print(noun.get(n, n))
答案 1 :(得分:0)
首先,您可以检查每个词典中是否出现该词,并打印翻译(如果有)。
pro = {"I":"ii"}
verb = {"am":"esti"}
noun = {"theatre":"trieto"}
adj = {"red":"reada"}
sentence = input("translate: \n")
for word in sentence.split(" "):
if word in pro:
print(pro[word] + " ")
elif word in verb:
print(verb[word] + " ")
elif word in noun:
print(noun[word] + " ")
elif word in adj:
print(adj[word] + " ")
else:
print(word + " ")