2013-02-24 58 views
25

我正在使用nltk,因此我想創建自己的自定義文本,就像nltk.books上的默認文本一樣。不過,我剛剛起牀的方法類似如何在NLTK中標記字符串句子?

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

我想發現任何方式輸入我的「文本」爲:

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

哪種方法,python的或允許NLTK我這樣做。更重要的是,我該如何低估標點符號?

+0

你能否澄清一下,你這是什麼意思'低估punctation symbols'? – quetzalcoatl 2013-02-25 14:01:33

+1

我想他的意思來標記輸入句子 – alvas 2013-02-25 14:03:33

+1

呀,比如如果我這樣做: sentente =「這是我的句子,句子很短的表達式」 所以,「句子」和「一句」會兩個不同的元素... – diegoaguilar 2013-03-02 18:15:55

回答

95

這實際上是對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

問題是它不會分裂/。如果你有「今天和/或明天是好日子」,默認情況下它將「和/或」作爲單個標記。 – thang 2016-10-21 18:05:16

+1

我們如何將「不」轉換爲「不」? – Omayr 2017-04-12 13:50:28

-9

由於@PavelAnossov回答,規範的答案,使用word_tokenize功能NLTK:

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

如果你的句子是真正的夠簡單:

使用 string.punctuation

,刪除標點然後用空格分隔符分割:

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

@ pavel的答案將解決像'didn't''''''''''''''''' – alvas 2013-06-17 07:03:20