NLTK-Word-Tokenize-Verhalten für doppelte Anführungszeichen ist verwirrend

8
%Vor%

Sehen Sie, wie sich " zu einem Double '' und '' ?

ändert

Was passiert hier? Warum verändert es den Charakter? Gibt es eine Lösung? Da ich später nach jedem Token in der Zeichenfolge suchen muss.

Python 2.7.6, wenn es einen Unterschied macht.

    
Motasim 24.08.2015, 14:40
quelle

1 Antwort

9

TL; DR :

nltk.word_tokenize ändert doppelte Anführungszeichen von " -> '' und doppelte Anführungszeichen von " -> '' .

In lang :

Zuerst wird die nltk.word_tokenize basierend darauf, wie Penn TreeBank tokenisiert wurde, tokenisiert, sie kommt von nltk.tokenize.treebank , siehe Ссылка init .py # L91 und Ссылка

%Vor%

Dann kommt eine Liste von Regex-Ersatz für Kontraktionen bei Ссылка kommt es aus dem " Robert MacIntyres Tokenizer ", also Ссылка

Die Kontraktionen teilen Wörter wie "gonna", "will", etc .:

%Vor%

Danach erreichen wir den Interpunktionsteil, nach dem Sie fragen, siehe Ссылка :

%Vor%

Ah ha, Anführungszeichen ändern sich von "- & gt;" :

%Vor%

Dann sehen wir Ссылка , das sich mit endenden Anführungszeichen beschäftigt:

%Vor%

Anwenden der Regexe:

%Vor%

Wenn Sie also die Liste der Token nach double quotes nach nltk.word_tokenize durchsuchen möchten, suchen Sie einfach nach '' und '' anstelle von " .

    
alvas 25.08.2015, 06:53
quelle

Tags und Links