Wie man ungültige Unicode-Zeichen aus Strings in Java entfernt
Ich benutze dasCoreNLP Neural Network Dependency Parser, um einige Social-Media-Inhalte zu analysieren. Leider enthält die Datei Zeichen, die laut fileformat.info, ungültige Unicode-Zeichen oder Unicode-Ersatzzeichen. Dies sind zum Beispiel U + D83D oder U + FFFD. Befinden sich diese Zeichen in der Datei, antwortet coreNLP mit Fehlermeldungen wie der folgenden:
Nov 15, 2015 5:15:38 PM edu.stanford.nlp.process.PTBLexer next
WARNING: Untokenizable: ? (U+D83D, decimal: 55357)
Beyogen aufDie Antwort, ich habe versuchtdocument.replaceAll("\\p{C}", "");
, um nur diese Zeichen zu entfernen.document
hier ist nur das Dokument als String. Aber das hat nicht geholfen.
Wie kann ich diese Zeichen aus der Zeichenfolge entfernen, bevor ich sie an coreNLP übergebe?
UPDATE (16. November):
Der Vollständigkeit halber sollte ich erwähnen, dass ich diese Frage nur gestellt habe, um die große Menge an Fehlermeldungen durch Vorverarbeitung der Datei zu vermeiden. CoreNLP ignoriert nur Zeichen, die es nicht verarbeiten kann. Das ist also nicht das Problem.