2013-02-24 8 views
25

Ich benutze nltk, also möchte ich meine eigenen benutzerdefinierten Texte wie die Standard auf nltk.books erstellen. Allerdings habe ich mich sehr auf das Verfahren auf wieWie tunkiere ich einen String-Satz in NLTK?

my_text = ['This', 'is', 'my', 'text'] 

Ich möchte jede mögliche Weise zur Eingabe meiner „Text“, wie entdecken: die

my_text = "This is my text, this is a nice way to input text." 

Welche Methode, Python oder von nltk erlaubt ich, das zu tun. Und noch wichtiger: Wie kann ich Interpunktionssymbole unterschätzen?

+0

Können Sie klären, was meinst du mit 'unterschätzen punctation symbols'? – quetzalcoatl

+1

ich denke, er meinte – alvas

+1

den eingegebenen Satz tokenize Ja, zum Beispiel, wenn ich tue: sentente = „Dies ist mein Satz, ein Satz ist ein kurzer Ausdruck“ Also, ‚Satz‘ und ‚Satz‘ wäre zwei verschiedene Elemente ... – diegoaguilar

Antwort

95

Dies ist eigentlich auf der main page of nltk.org:

>>> import nltk 
>>> sentence = """At eight o'clock on Thursday morning 
... Arthur didn't feel very good.""" 
>>> tokens = nltk.word_tokenize(sentence) 
>>> tokens 
['At', 'eight', "o'clock", 'on', 'Thursday', 'morning', 
'Arthur', 'did', "n't", 'feel', 'very', 'good', '.'] 
+2

das Problem ist, dass es nicht split /. Wenn Sie "Heute und/oder Morgen sind gute Tage" haben, gibt es standardmäßig "und/oder" als ein einzelnes Token. – thang

+1

Wie konvertieren wir "nicht" zu "nicht"? – Omayr

-9

Als @PavelAnossov beantwortet, die kanonische Antwort, verwenden Sie die word_tokenize Funktion in nltk:

from nltk import word_tokenize 
sent = "This is my text, this is a nice way to input text." 
word_tokenize(sent) 

Wenn Ihr Satz ist wirklich einfach genug:

die string.punctuation Satz Entfernen Sie mit Interpunktion dann das Leerzeichen Trennzeichen aufgeteilt:

import string 
x = "This is my text, this is a nice way to input text." 
y = "".join([i for i in x if not in string.punctuation]).split(" ") 
print y 
+2

@ pavels Antwort löst Probleme wie 'didn't' -' 'did' +' n't' – alvas