Übersetzer programmieren?


15.06.2022, 22:54

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.

https://media.springernature.com/full/springer-static/image/art%3A10.1038%2Fs41467-020-18073-9/MediaObjects/41467_2020_18073_Fig1_HTML.png

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.

Woher ich das weiß:eigene Erfahrung

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


Ohohnnnein  17.02.2023, 22:42

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!

covid69  18.02.2023, 02:04
@Ohohnnnein

Ihr braucht keinen RAM sondern GPUs. Und Azure ist Mist. Benutzt lieber Google Cloud oder AWS.

covid69  18.02.2023, 13:19
@Ohohnnnein

Weil die Lineare Algebra Operationen unterstützen die für deep learning wichtig sind. GPT wurde beispielsweise auf 64 GPUs trainiert.

DataPicardSpock 
Beitragsersteller
 16.06.2022, 21:55

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 :/")

DataPicardSpock 
Beitragsersteller
 15.06.2022, 22:55

Erstmal vielen dann und wie wäre es dann mit ganzen Sätzen?

shitposter  15.06.2022, 22:56
@DataPicardSpock

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.

DataPicardSpock 
Beitragsersteller
 15.06.2022, 22:58
@shitposter

Ja, man übersetzt jedes Wort sozusagen einzeln. Wo es hängen bleibt, ist der Zusammenbau des Satzes. Google Übersetzer kriegt es nicht hin

shitposter  15.06.2022, 22:59
@DataPicardSpock

Ja, aber sowas löst man am Besten mit KI siehe deepl.
Das ist sehr aufwändig und davon habe ich auch keine Ahnung.

DataPicardSpock 
Beitragsersteller
 15.06.2022, 23:04
@shitposter

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

FaTech  15.06.2022, 23:10
@shitposter

Übersetzer und KI? Naja. Ich würde es nicht gerade als KI bezeichnen

shitposter  15.06.2022, 23:11
@FaTech

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.

FaTech  15.06.2022, 23:12
@shitposter

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?

FaTech  15.06.2022, 23:20
@shitposter

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

shitposter  15.06.2022, 23:21
@FaTech

Dann glaub halt nicht daran... Ich arbeite nicht für DeepL. Ist mir vollkommen egal.

EinTyppie  15.06.2022, 23:31
@FaTech

Also wenn du hier jetzt sagen willst das Übersetzter wie von Google oder anderen kein Deep Learning benutzen bist du echt lost, denn ansonsten wirst du echt keinen guten übersetzer machen. Die vokabeln zu hard coded kannst du vergessen

FaTech  15.06.2022, 23:34
@EinTyppie

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

Ohohnnnein  17.02.2023, 22:45
@FaTech

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!