我试图用32 MB的大小来标记这个文件。我试着用谷歌Colab和视觉代码来做这件事。它适用于一个较小的文件,但我想知道如何以一种可行的方式处理一个更大的文件(它已经超过一个小时了)。
我在google Colab的代码:
import nltk
nltk.download('punkt')
from nltk import word_tokenize
from google.colab import drive
drive.mount('/drive')
raw = open('../drive/MyDrive/NLTK/data.txt').read()
tokens = word_tokenize(raw)我做错了什么吗?
发布于 2022-09-15 17:07:55
您正在以字符串的形式读取和传递整个文件,这不是nltk的错。事实上,nltk隐藏了对增量读取的支持,因此您应该能够使用迭代器。
使用PlaintextCorpusReader读取数据,然后通过循环在mycorpus.words()上递增地检索数据。通过这种方式,您甚至可以检索句子(使用sents()),这些句子确实跨越多条线。除非您真的需要,否则不要尝试收集所有令牌的列表。这样做应该是对的。
https://stackoverflow.com/questions/73568865
复制相似问题