Text entschlüsseln

Entscheidungsbäume, Random Forest, Support Vektor Maschinen, Neuronale Netze, ...

Moderator: consuli

Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Text entschlüsseln

Beitrag von Athomas »

Anbei noch ein Programm, in dem man eine Anwendung auf das vorliegende Problem (soweit ich es verstanden habe) sehen kann.
Ich möchte jetzt nicht alles im Voraus kommentieren, aber Fragen sind natürlich willkommen!

Code: Alles auswählen

library(data.table)
library(stringr)
library(parallel)

Kerne      <- 40

alphabet   <- c(letters[1:26],"ä","ö","ü","ß")
Transl     <- function(wort) paste0(str_count(wort, alphabet), collapse="-")

DT         <- fread("~/Buchstaben/Daten/word_list_german_spell_checked.txt", header=FALSE)
setnames(DT, "Wort")

DT.uni     <- unique(DT[  , Wort:=tolower(Wort)])

a <- proc.time()
DT.uni[  , Uebersetzung:=unlist(mclapply(Wort, Transl, mc.cores=Kerne))]
proc.time() - a

DT.uni[  , lnr:=1:.N, by=Uebersetzung]
DT.uni[  , Gruppenname:=min(Wort), by=Uebersetzung]
setkey(DT.uni, Uebersetzung)

#----------- Konstruktion eines verstellten Beispielstextes -------------------

Ursprünglicher_Satz <- "Hallo zusammen, ich habe das Problem, dass ich einen unbekannten Text entschlüsseln möchte."
Ohne_Satzzeichen <- tolower(gsub('[[:punct:] ]+',' ',Ursprünglicher_Satz))

einzelne_Wörter <- strsplit(Ohne_Satzzeichen, split=" ")[[1]]

Verstellung <- function(Wort){
  l    <- nchar(Wort)
  torw <- paste(strsplit(tolower(Wort),"")[[1]][sample(1:l)], collapse="")
}

verschwurbelt <- paste(sapply(einzelne_Wörter, Verstellung), collapse=" ")

#---------------- Auffinden von Alternativen -----------------------------------

Finder <- function(xWort){
  such <- Transl(xWort)
  Alternativen <- DT.uni[such]
  Ausgabe <- paste(Alternativen$Wort, collapse=("|"))
  if(is.na(Ausgabe)) Ausgabe <- paste0("-- NOMATCH: ", xWort, " --")
  return(Ausgabe)
  }

Einzelteile <- strsplit(verschwurbelt, " ")[[1]]
Vorschlag   <- paste(sapply(Einzelteile, Finder), collapse=" ")
Auch nett :) :

Code: Alles auswählen

Ursprünglicher_Satz <- "Hier mein erster Gedanke: ich denke, Du kannst Dir das ganze Permutieren komplett ersparen und einfach die Buchstaben in jedem Wort alphabetisch sortieren."

Code: Alles auswählen

> Vorschlag
[1] "hier|ihre mein|mine erster gedanke chi|ich denke du kannst dir das ganze|gazen|zange permutieren komplett ersparen und einfach die|eid|ide buchstaben in jedem wort alphabetisch riesentor|sortieren|torriesen|torserien"
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Text entschlüsseln

Beitrag von bigben »

Ein alphabetisches Riesentor und darin lauter Torriesen, die eine Zange permutieren? Ich bin entzückt :!: :P

Damit kannst Du einen Permutationsgedichtband erstellen :mrgreen:
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Text entschlüsseln

Beitrag von Athomas »

Noch einer zum Thema Poesie :) :

Code: Alles auswählen

Ursprünglicher_Satz <- "In einem Bächlein helle, da schoß in froher Eil
                        Die launische Forelle vorüber wie ein Pfeil
                        Ich stand an dem Gestade und sah in süßer Ruh
                        Des muntern Fischleins Bade im klaren Bächlein zu
                        Des muntern Fischleins Bade im klaren Bächlein zu"
verstellt (und von Hand formatiert):

Code: Alles auswählen

 "in meine ebänlhic helle ad ßshco ni refhor ile 
 eid ehnlsucai eeollfr üerrbvo iwe nie iplef 
 ihc adnst na mde aetdesg nud ash in eürßs ruh 
 sed nutrenm shcnsiefli dbea im anerkl bcihälen uz 
 eds uenrntm isnhilsecf bdae mi rklnae clbhänei uz"
"Übersetzungs"vorschlag:

Code: Alles auswählen

"in einem|meine|miene bächlein helle ad|da schoß in froher eli 
die|eid|ide launische forelle vorüber wie ein|nie pfeil 
chi|ich stand an dem gestade und sah in süßer uhr 
des|sed umrennt fischinsel|fischlinse|inselfisch bade im klaren bächlein zu 
des|sed umrennt fischinsel|fischlinse|inselfisch bade im klaren bächlein zu"
Antworten