我正在通过nltk学习很多关于自然语言处理的知识,可以做很多事情,但是我无法找到从包中读取文本的方法。我尝试过这样的事情:
UpdateLayerTree
但它似乎不起作用,因为它没有fileid。之前似乎没有人问过这个问题,所以我认为答案应该很简单。你知道阅读这些文本的方法是什么,或者如何将它们转换成字符串? 提前致谢
答案 0 :(得分:3)
让我们深入研究代码=)
首先,nltk.book
代码位于https://github.com/nltk/nltk/blob/develop/nltk/book.py
如果我们仔细查看,则会将文本作为nltk.Text
个对象加载,例如来自https://github.com/nltk/nltk/blob/develop/nltk/book.py#L36的text6
:
text6 = Text(webtext.words('grail.txt'), name="Monty Python and the Holy Grail")
Text
对象来自https://github.com/nltk/nltk/blob/develop/nltk/text.py#L286,您可以在http://www.nltk.org/book/ch02.html
webtext
是来自nltk.corpus
的语料库,因此要获得nltk.book.text6
的原始文本,您可以直接加载网络文字,例如
>>> from nltk.corpus import webtext
>>> webtext.raw('grail.txt')
fileids
仅在您加载PlaintextCorpusReader
对象时出现,而不是从Text
对象(已处理对象)加载:
>>> type(webtext)
<class 'nltk.corpus.reader.plaintext.PlaintextCorpusReader'>
>>> for filename in webtext.fileids():
... print(filename)
...
firefox.txt
grail.txt
overheard.txt
pirates.txt
singles.txt
wine.txt
答案 1 :(得分:1)
看起来他们已经把它分解成了令牌。
from nltk.book import text6
text6.tokens
答案 2 :(得分:0)
#generate 排序标记
print(sorted(set(text6))