简单的语言翻译器

Simple language translator

所以我和我的朋友们为了好玩而制作了一些语言,我认为这将是练习 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,那么我将非常感激学习如何使用。

首先,您可以检查该词是否出现在每本词典中,如果出现,则打印翻译。

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

如果您想将每个单词视为潜在的任何词性,则不需要为每个词性单独的词典,只需一本大词典。

所以,让我们合并它们:

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))