Ich habe eine lange Tabelle unter oo calc.
Sie enthält Zeilen wie
Ich nehme 4 Eier
50 Leute nahmen teil
Das soll konvertiert werden in
Ich nehme vier Eier
Fünfzig Leute nahmen teil
Wie kann ich das in oo calc oder irgendeinem Onlineprogramm schnell
automatisch ändern?
Die Zahlen in absteigender Reihenfolge abarbeiten.
Nicht dass es so rauskommt:
Die Hose war eine 501. --> Die Hose war eine fünfzigeins. ## NEIN!
Mit folgendem Suchmuster arbeiten: '[^\d]501[^\d]'
Christoph Haus schrieb:> Ich nehme 4 Eier> 50 Leute nahmen teil>> Das soll konvertiert werden in>> Ich nehme vier Eier> Fünfzig Leute nahmen teil
Soll das wirklich so?
Ich habe mal gelernt, dass Zahlen bis zehn ausgeschrieben werden,
größere bleiben als Ziffern stehen.
> Ich habe mal gelernt, dass Zahlen bis zehn ausgeschrieben werden,> größere bleiben als Ziffern stehen.
Vor dieser "Regel" warnt der Duden schon seit über 100 Jahren ;-)
http://faql.de/typographie.html#zahlen
>Kann man net dafür einfach die gute alte "Suchen und Ersetzen">Funktion verwenden?
Genau das kann sed.exe mit regulären Ausdrücken in einem Script
vollautomatisch.
Tolles command line tool.
iop schrieb:> Kann man net dafür einfach die gute alte "Suchen und Ersetzen"> Funktion verwenden?>> Genau das kann sed.exe mit regulären Ausdrücken in einem Script> vollautomatisch.> Tolles command line tool.
sed.exe?
Das wird für die exe-Generation aber sehr schwierig / zumal die bisher
kaum was von regular expressions gehört haben
foobar schrieb:>> Ich habe mal gelernt, dass Zahlen bis zehn ausgeschrieben werden,>> größere bleiben als Ziffern stehen.
Zahlen bis zwölf.
> Vor dieser "Regel" warnt der Duden schon seit über 100 Jahren ;-)
Sie wird aber doch erstaunlich häufig penibel befolgt, was besonders
dämlich aussieht bei Zahlenbereichen, die im "ausgeschriebenen Bereich"
beginnen und im "Ziffernbereich" enden, wie "zwischen acht und 16"...
"Vier Jugendliche im Alter zwischen zehn und 15 Jahren haben beim Lotto
"sechs aus 49" den Jackpot gewonnen. Nun bekommt jeder drei komma fünf
von den 14 Millionen."
iop schrieb:>>Kann man net dafür einfach die gute alte "Suchen und Ersetzen">>Funktion verwenden?> Genau das kann sed.exe mit regulären Ausdrücken in einem Script> vollautomatisch.
In oo-Calc-Dateien? Ganz automatisch mit allen Zahlen von - sagen wir
mal - Null bis eine Million, also ohne dabei das Schreiben des regulären
Ausdrucks zu einer Lebensaufgabe zu machen? Oder was meinst du genau mit
"vollautomatisch"?
> Tolles command line tool.
Das ist es. Aber dass es das kann, glaub ich nicht so ganz.
Rolf M. schrieb:> Ganz automatisch mit allen Zahlen von - sagen wir> mal - Null bis eine Million
Das gab es zu Zeiten als man Geld-Überweisungen noch real ausgedruckt
hat, da stand dann
"Einemillionzweihundertsechsundfünzigtausenddreihunderteinund achtzig".
Ist wahrscheinlich verlorengegangenes Knowhow, für einen Programmierer
aber kein ernsthaftes Problem.
Georg
Walter K. schrieb:> Das wird für die exe-Generation aber sehr schwierig / zumal die bisher> kaum was von regular expressions gehört haben
sed 's/4/vier/g; s/50/fünfzig/g' <<< 'Ich nehme 4 Eier, 50 Leute ...'
Ein script zu machen welches Ersetzungen durchführt ist nicht sonderlich
schwierig aber eine Liste der natürlichen Zahlen in Wortform zu
generieren durch die das gefundene im Zahlenraum ersetzt wird ist dann
schon anspruchsvoller ...
georg schrieb:> Rolf M. schrieb:>> Ganz automatisch mit allen Zahlen von - sagen wir>> mal - Null bis eine Million>> Das gab es zu Zeiten als man Geld-Überweisungen noch real ausgedruckt> hat, da stand dann> "Einemillionzweihundertsechsundfünzigtausenddreihunderteinund achtzig".
TTS-Systeme machen sowas auch als Teil des ersten
Preprocessing-Schrittes.
> Ist wahrscheinlich verlorengegangenes Knowhow, für einen Programmierer> aber kein ernsthaftes Problem.
Nein, das sollte recht einfach sein für Sätze wie die obigen Beispiele.
Schwieriger wird's dann schon, wenn aus einen 3. ein Dritter werden
soll. Dann muss man nämlich auch teilweise die Grammatik des Satzes
verstehen.
es wird wohl auch ein einfaches Suchen/ersetzen hinauslaufen.
Die Kunst für dich ist es irgendwie die Wörter für die Zahlen zu
bekommen.
Da gibt es zum Glück ein paar Regeln die helfen können. von 0-13 ist
unregelmäßig und muss Kodiert werden, 14-19 nennt erst denn einer dann
den Zehner also vierzehn und ab 20-100 ist "einer + 'und + 'Zehner'", ab
Hundert nennt man erst die hundert und dann folgt man den bisherigen
Regeln.
Das sollte sich Programmieren lassen, oder wenn es nicht lohnt weil es
nicht soviel unterschiedliche Zahlen sind kann man mit einer Tabelle
arbeiten. Notfalls mit einer einfachen Eingabe dannach könnte man zum
Beispiel in Python ein script schreiben was die Zahlen von groß nach
klein Konvertiert
Hier wäre ein Rumpf wie das ungefähr gehen könnte.
1
def int2string(string):
2
new = string
3
numbers = set(re.findall('\d+', string))
4
for num in sorted(numbers, reverse=True):
5
name = input('Sage mir wie heist {} :'.format(num))
6
new = new.replace(num, name.strip())
7
return ne
Wenn du statt der input Zeile dort noch was intelligentes einfügst was
den Namen bildet oder sich wenigstens merkt was es kennt sollte der Code
dir helfen können.
ooo schrieb:> Walter K. schrieb:>>> Das wird für die exe-Generation aber sehr schwierig / zumal die bisher>> kaum was von regular expressions gehört haben>>> sed 's/4/vier/g; s/50/fünfzig/g' <<< 'Ich nehme 4 Eier, 50 Leute ...'>
Wo versteckt sich da nun ein Regulärer Ausdruck?
Was geschieht mit 'Da kommen 450g Mehl rein...' und 'Die Distanz beträgt
44504km...'
$ sed -e 's/[^\d]4[^\d]/vier/g; ...'
Tipster schrieb:> Wo versteckt sich da nun ein Regulärer Ausdruck
Nirgends. Beispiel simpler Ersetzung.
Autor: imonbln
>> ein paar Regeln die helfen können. von 0-13 ist>> unregelmäßig und muss Kodiert werden, 14-19 nennt erst denn einer dann>> den Zehner also vierzehn und ab 20-100 ist "einer + 'und + 'Zehner'", ab>> Hundert nennt man erst die hundert und dann folgt man den bisherigen>> Regeln.
Und die Groß- und Kleinschreibung und ... k.A.
zuviel um das auf ein Backrezept loszulassen, wer Lust und zeit hat
kriegt das schon hin oocalc kann wohl auch basic-, phyton-, java-,
bean- Skripte wie es sich um shell-zugriffe bestellt weis ich nicht.
http://faql.de/typographie.html#zahlen
Der Hammer! Sehr detailliert
Ralph Babel hat einen recht amüsanten Schreibstil und ungewohnte Tiefe
(viele Beispiele, Erklärungen und Ausnahmen).
Die ganze Site faql.de gefällt mir.