Ich versuche, Zahlen in Wortform aus einer Zeichenfolge zu extrahieren. Zum Beispiel könnte eine Eingabezeichenfolge so etwas wie:Regulärer Ausdruck, um große Zahlen in Wortform zu finden
"What is 3 million 6 hundred 5 divided by 5 hundred?"
Von diesem Eingang, würde ich, um herauszufinden, wie wie die beiden Zahlen als Gruppen zu erhalten.
["3 million 6 hundred 5", "5 hundred"]
Hinweis: Es ist möglich, dass es auch in anderen Eingabeketten ergab mehr Zahlen.
Ich glaube, Regex ist der richtige Weg, um dieses Problem zu lösen. Ich könnte im Idealfall in einer Liste der Waage passieren wie:
["hundred", "thousand", "million", "billion", ...]
Bisher ist das, was ich habe:
scales= ["hundred", "thousand", "million", "billion"]
scale_pattern = '|'.join(scales)
regex = re.compile('\b(d+' + scale_pattern + 'd+)+\b')
Ich weiß, dass mein Muster ist nicht ganz richtig, die psudeocode für das, was ich ‚für werde ist:
for any number of the following occurrences:
find the pattern [int word_from_list optional_int]
Wow, viele Stimmen kommen schnell herein, um diese Frage zu beenden. Irgendwelche Rückmeldungen was ich tun könnte um es zu verbessern? – Gunther
Zeigen Sie, was Sie bisher versucht haben. – ArieKanarie
Sicher, danke. Ich werde es mit dem, was ich bisher habe, aktualisieren. – Gunther