将文件数据转换为nltk.Text的常用方法如下:
f=open('my-file.txt','rU')
raw=f.read()
tokens = nltk.word_tokenize(raw)
text = nltk.Text(tokens)
现在,'text'(nltk.Text对象)只是一个单词列表。 如何从中获取句子列表? 基本上希望将“文本”分成句子列表。怎么样?
答案 0 :(得分:0)
您可以使用" sent_tokenize()'和' line_tokenize()'原始文本上的方法(取决于您是否要分割行(\ n),句子(通过'。','?'等)或两者兼有):
f=open('my-file.txt','rU')
raw=f.read()
# tokenize lines first and then by sentence markers
sents = [nltk.tokenize.sent_tokenize(l) for l in nltk.tokenize.line_tokenize(raw)]
tokens = nltk.word_tokenize(raw)
text = nltk.Text(tokens)
另一种方法是只使用其中一个选项:
sents = nltk.tokenize.sent_tokenize(l) # tokenize only by sentence markers
或
sents = nltk.tokenize.line_tokenize(l) # tokenize only by line markers
并回答您原来的问题 - 在将原始文本转换为nltk.Text()结构后,您无法真正对句子进行标记。当然你可以做一些解决方法来制作它,但它将远非漂亮(假设你有原始的原始文本,远非有用)。