2017-06-28 5 views
1

Ich versuche, Artikel mit Article von newspaper zu downloaden, und versuchen, die Wörter mit nltkword_tokenizer zu tokenisieren. Das Problem ist, wenn ich versuche, den geparsten Artikel Text zu drucken, einige dieser Artikel haben spezielle Anführungszeichen wie , , , die nicht durch den Tokenizer ausgefiltert werden, wie es eine regelmäßige ' und " wäre.Entfernen Sie spezielle Anführungszeichen und andere Zeichen

Gibt es eine Möglichkeit, diese speziellen Anführungszeichen durch normale Anführungszeichen zu ersetzen, oder besser noch, alle möglichen Sonderzeichen zu entfernen, die der Tokenizer möglicherweise auslässt?

Ich habe versucht, diese Sonderzeichen durch explizite Erwähnung in Code zu entfernen, aber es gibt mir den Fehler Non-UTF-8 code starting with '\x92'.

Antwort

1

Die Verwendung des unidecode-Pakets würde diese Zeichen normalerweise durch utf-8 ersetzen.

from unidecode import unidecode 
text = unidecode(text) 

Ein Nachteil ist jedoch, dass Sie auch einige Zeichen ändern würde (zum Beispiel akzentuiert sind), die Sie behalten möchten. Wenn das der Fall ist, ist eine Option regular expressions zu verwenden, um gezielt zu löschen (oder ersetzen) einige voridentifiziert Sonderzeichen:

import re 
exotic_quotes = ['\\x92'] # fill this up 
text = re.sub(exotic_quotes, "'", text) # changing the second argument to fill the kind of quote you want to replace the exotic ones with 

Ich hoffe, das hilft!

+0

Danke! Das funktioniert perfekt. Gibt es eine Möglichkeit, irgendwelche Wörter mit diesen nicht utf-8 Zeichen vollständig zu entfernen? Weil für meine spezielle Anwendung, brauche ich keine Sonderzeichen oder Interpunktion, nur die tatsächlichen utf-8 Wörter aus dem Artikel. –

+1

Sie sind herzlich willkommen. Die Verwendung von "unidecode" sollte alle nicht utf-8 Zeichen ersetzen, aber Interpunktionszeichen usw. beibehalten. Wenn Sie nur Buchstaben (und Leerzeichen) behalten möchten, verwenden Sie einen regulären Ausdruck: 'text = re ('[^ A- Za-z] ',' ', Text) '. Und wenn Sie Wörter mit einem Nicht-UTF8-Zeichen loswerden wollen, verwenden Sie komplexere reguläre Ausdrücke! – Archeo

Verwandte Themen