Übersetzer programmieren?
Liebe Community,
ich würde gerne einen (Latein) Übersetzer programmieren. Ich glaub dafür wäre Python am besten. Ich werde ihm halt die Grammatik und die Vokabeln einprogrammieren. Leider fehlt mir heute irgendwie der Ansazt, keine Ahnung warum.
Hat jemand eine Idee wo ich beginnen könnte?
Wäre schon schön
4 Antworten
Ich kann nicht pennen und mir ist langweilig, daher Antworte ich mal. Also für einzelne Wörter empfehle ich dir die Antwort von shitposter. Was aber dann richtige Sätze angeht ... Uff.
Dieses Bild sollte die Komplexität von dem was du vorhast gut darstellen. Was meine Idee noch wäre, du kannst versuchen immer so "Beispiele" zu machen. Ich bin bisschen übermüdet aber ich versuche es mal zu erklären.
Weil ich kein Plan von Latein habe erkläre ich es mal im Englischen (Wovon ich ca. gleichviel Ahnung habe):
Input:
Der Man geht nachher nachhause.
Output:
The Man goes home later.
Nun, wir haben "goes home later". Jetzt könntest du, aufgrunf das da goes home later steht, z.B. vorschlagen:
will go home later
Ich denke, solche Übersetzer sollten eher KI Basiert sein aber wenn du es ohne KI machen willst dann würde ich auf jeden fall diesen Ansatz hier verfolgen.
Das ist sehr einfach und ein typisches Anfängerproblem für Leute in Deep Learning. Du brauchst ein paar tausend Beispielsätze die du dir recht einfach aus dem Internetz holen kannst. Dann baust du ein transformer neural netz mit Tensorflow so wie es in dem paper “attention is all you need” beschrieben ist. Du brauchst eine embedding layer für die Deutschen Wörter, dann addierst du dein sinusoidal positional embedding, gehts in das masked self attention modul, dann in den decoder der auch aus attention modulen und layer normalisation besteht. Am ende hast du linear layers die zu den Wahrscheinlichkeiten für das nächste Lateinische Wort mappen. Sowas kannst du in einer halben Stunde mit Tensorflow oder Pytorch programmieren
Ihr braucht keinen RAM sondern GPUs. Und Azure ist Mist. Benutzt lieber Google Cloud oder AWS.
Weil die Lineare Algebra Operationen unterstützen die für deep learning wichtig sind. GPT wurde beispielsweise auf 64 GPUs trainiert.
Ja, das wäre (wie in den Kommentaren beschrieben) meine Notlösung. Ich will es halt versuchen ohne KI zu machen. Als kleine Herausforderung, aber ich bin nun der Meinung dies ist nicht möglich
Wie shitposter schon sagt: Der Anfang ist recht simpel, Du kannst Wort für Wort durch Nachsehen übersetzen. Das bringt einen aber im Fall von Doppeldeutigkeiten nicht weit. Darum ist Natürlichsprachliche Datenverarbeitung/Natural Language Processing seit Jahrzehnten ein forderndes Forschungsgebiet.
Wenn Du darüber etwas lernen möchtest, besorg Dir ein Buch über natürlichsprachliche Datenverarbeitung.
Und während Du auf die Bestellung wartest kannst Du ja schonmal wie von shitposter vorgeschlagen losprogrammieren. Du wirst bestimmt dabei nützliche Erfahrungen sammeln.
eigentlich relativ simpel.
du brauchst eine datenstruktur wo das deutsche wort mit dem lateinischen verknüpft ist. in meinem beispiel einfach ein dict.
wenn der user dann ein lateinisches wort eingibt, suchst du einfach in der datenstruktur nach diesem wort. wenn es verfügbar ist, hast du ja die deutsche übersetzung daran verknüpft.
so eventuell;
words = {
"vino": "wein",
"oculus": "auge"
}
# beispiel, muss natürlich dynamisch über ein input feld erfolgen
user_input = "vino";
if user_input in words:
print("übersetzung gefunden:")
print(user_input+" = "+ words[user_input])
else:
print("Keine Übersetzung gefunden :/")
Erstmal vielen dann und wie wäre es dann mit ganzen Sätzen?
Ich bin jetzt von einzelnen Vokabeln ausgegangen. Ganze Sätze gehen natürlich auch. Müsstest jedes Wort aus dem Satz ausschneiden mit str.split(" ") und dann einzeln prüfen. Eig auch ziemlich easy.
Ja, man übersetzt jedes Wort sozusagen einzeln. Wo es hängen bleibt, ist der Zusammenbau des Satzes. Google Übersetzer kriegt es nicht hin
Ja, aber sowas löst man am Besten mit KI siehe deepl.
Das ist sehr aufwändig und davon habe ich auch keine Ahnung.
Ja, da ist das Problem dann wieder. Ich selbst bin im KI Bereich tätig und in anderen Programmiersprachen hätte ich das auch hingekriegt. Aber ich bin noch kein Python Experte, Lerne es noch (langsam so neuronale Netzwerke)
Ansonsten Tensorflow mit C++
Übersetzer und KI? Naja. Ich würde es nicht gerade als KI bezeichnen
DeepL benutzt ein neuronales Netz um den "Sinn" in einem Satz akkurat wiedergeben zu können. Die meisten Übersetzer übersetzen ja nur stumpf Wort für Wort.
Ich würde eine Grammatik Vorlage bauen. Damit wird es ziemlich genau. Ich glaube nicht, das deepl eine ki benutzt. Hast du dafür Beweise?
Also das was die Beschreiben, das klingt nach einer möchtegern KI. KI ist normalerweise etwas anderes, als ab und zu mal eine richtige Antwort zu wählen. Eine KI muss trainiert werden, doch das schafft man durch ab und zu einen Satz drücken nicht. Ich glaube nicht dran, dass irgendwas davon wahr ist. Marketing ist alles. Ich bin selber DeepL Nutzer. Ich finde es sehr gut (Außer, dass die Laut ihnen selber, eine Datenkrake sind), aber dennoch bleibe ich bei der Aussage
Dann glaub halt nicht daran... Ich arbeite nicht für DeepL. Ist mir vollkommen egal.
Hardcoden hat keiner gesagt. Doch dennoch muss man die Vokabeln eintragen in die Datenbank. Von nichts, weiß der auch nicht, was die bedeuten. Da hilft auch keine KI
Ja nun 8 Monate später ist es so weit, die KI wird begonnen zu programmieren. Ich bin DataPicardSpock und einige Freunde von mir haben begonnen mit der Programmierung. Sie nutzen die Dienste von Microsoft Azure und haben sich eine virtuelle Machinr mit 3982 GB RAM gemietet. Jetzt geht es los!
Ja nun 8 Monate später ist es so weit, die KI wird begonnen zu programmieren. Ich bin DataPicardSpock und einige Freunde von mir haben begonnen mit der Programmierung. Sie nutzen die Dienste von Microsoft Azure und haben sich eine virtuelle Machinr mit 3982 GB RAM gemietet. Jetzt geht es los!