简单的语言翻译器
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))
所以我和我的朋友们为了好玩而制作了一些语言,我认为这将是练习 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))