简单的语言翻译

时间:2018-06-18 22:45:20

标签: python python-3.x translate

所以我和我的朋友正在制作一些语言以获得乐趣,我认为这将是练习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,那么我将非常感谢你学习如何。

2 个答案:

答案 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 + " ")