Je vais vous expliquer en détails ce que je veux réaliser.
J'ai 2 programmes sur les dictionnaires.
Le code pour le programme 1 est ici:Problèmes avec les boucles imbriquées ...
import re
words = {'i':'jeg','am':'er','happy':'glad'}
text = "I am happy.".split()
translation = []
for word in text:
word_mod = re.sub('[^a-z0-9]', '', word.lower())
punctuation = word[-1] if word[-1].lower() != word_mod[-1] else ''
if word_mod in words:
translation.append(words[word_mod] + punctuation)
else:
translation.append(word)
translation = ' '.join(translation).split('. ')
print('. '.join(s.capitalize() for s in translation))
Ce programme présente des avantages suivants: « »
- Vous pouvez écrire plus d'une phrase
- Vous obtenez la première lettre en majuscule après
- Le programme "ajoute" le mot non traduit à la sortie ("translation = []")
Voici le code de programme 2:
words = {('i',): 'jeg', ('read',): 'leste', ('the', 'book'): 'boka'}
max_group = len(max(words))
text = "I read the book".lower().split()
translation = []
position = 0
while text:
for m in range(max_group - 1, -1, -1):
word_mod = tuple(text[:position + m])
if word_mod in words:
translation.append(words[word_mod])
text = text[position + m:]
position += 1
translation = ' '.join(translation).split('. ')
print('. '.join(s.capitalize() for s in translation))
Avec ce code, vous pouvez traduire des expressions idiomatiques ou
« le livre » à « Boka ».
Voici comment le programme exécute les codes.
C'est la sortie:
1 ('i',) ['jeg'] ['read', 'the', 'book'] 0 () 1 ('read', 'the') 0 ('read',) ['jeg', 'leste'] ['the', 'book'] 1 ('the', 'book') ['jeg', 'leste', 'boka'] [] 0 () Jeg leste boka
Ce que je veux est de mettre en œuvre certains des codes du programme 1 dans le programme 2.
J'ai essayé plusieurs fois sans succès ...
Voici mon rêve ...:
Si je change le texte qui suit ...:
text = "I read the book. I read the book! I read the book? I read the book.".lower().split()
Je veux que la sortie soit:
Jeg leste boka. Jeg leste boka! Jeg leste boka? Jeg leste boka.
Alors s'il vous plaît, peaufinez votre cerveau et aidez-moi avec une solution ...
J'apprécie toute réponse beaucoup!
Merci beaucoup d'avance!