Ich versuche, die Kommentare einiger Kunden in Sätze unter Verwendung nltk.sent_tokenize
zu teilen. Ich habe bereits versucht, einige der Probleme mit dem folgenden Code zu lösen:Sätze mit nltk.sent_tokenize teilen, liefert kein korrektes Ergebnis
comment = comment.replace('?', '? ').replace('!', '! ').replace('..','.').replace('.', '. ')
Aber ich weiß nicht, wie die folgenden Probleme zu lösen:
Kunden verwendeten
"."
nach einigen Sätzen mehr. Zum Beispiel:Think tool is a huge factor in this....i have only
Kunden verwendet, um mehr
"!"
nach einigen Sätzen, wieauditory subject everyday!!!!!
einig sie Kombination von
"!"
und"."
am Ende der Sätze verwendet.Weil ich schon
replace('.', '. ')
verwendet, es verursacht auch folgendes Problem:Gewicht
(20lbs.)
gewinnen, wurde aufgeteilt(20lbs.
)
Jeder Vorschlag? Ich benutze Python.
Vollständig freier Text ist extrem problematisch, daher ist es unwahrscheinlich, dass ein einziger Satz von statischen Fixes überall funktioniert. Aber die Probleme, die Sie beschreiben, könnten behoben werden, indem Sie wiederholte Interpunktionszeichen auf eine einzige Instanz reduzieren, dann Leerzeichen nachher hinzufügen und dann Leerzeichen entfernen, bevor Sie die Klammern schließen. – tripleee
@tripleee, danke! Können Sie eine Lösung geben, mit der ich die Anzahl der wiederholten Zeichenfolgen reduzieren kann, z. B. "." oder "!". ? – Mary
Einfach genug mit einer Regex. 're (r '([;.::!?]) \ 1+', r '\ 1', 'Hallo ..... wie geht es dir ????')' – tripleee