将原始文本转换为nltk.Text后可以形成句子吗?

时间:2016-10-14 10:03:07

标签: python nltk

将文件数据转换为nltk.Text的常用方法如下:

f=open('my-file.txt','rU')
raw=f.read()
tokens = nltk.word_tokenize(raw)
text = nltk.Text(tokens)

现在,'text'(nltk.Text对象)只是一个单词列表。 如何从中获取句子列表? 基本上希望将“文本”分成句子列表。怎么样?

1 个答案:

答案 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()结构后,您无法真正对句子进行标记。当然你可以做一些解决方法来制作它,但它将远非漂亮(假设你有原始的原始文本,远非有用)。