nltk_data/corpora
正如您引用的段落所暗示的,您可以将语料库文件保存在本地目录中,只需将文件夹中的符号链接添加到语料库的位置即可。但是,如果您无法修改nltk_data
或者只是不喜欢在目录中进行不必要的往返nltk_data
,请继续阅读。
该对象ptb
只是使用 Penn Treebank 语料库的适当设置初始化的语料库阅读器对象的快捷方式。它是这样定义的(in nltk/corpus/__init__.py
):
ptb = LazyCorpusLoader( # Penn Treebank v3: WSJ and Brown portions
'ptb', CategorizedBracketParseCorpusReader, r'(WSJ/\d\d/WSJ_\d\d|BROWN/C[A-Z]/C[A-Z])\d\d.MRG',
cat_file='allcats.txt', tagset='wsj')
您可以忽略该LazyCorpusLoader
部分;之所以使用它,是因为 nltk 定义了很多语料库端点,其中大多数从未在任何一个 python 程序中加载。相反,通过直接实例化来创建语料库阅读器CategorizedBracketParseCorpusReader
。如果您的语料库看起来与ptb
语料库完全一样,您可以这样称呼它:
from nltk.corpus.reader import CategorizedBracketParseCorpusReader
myreader = CategorizedBracketParseCorpusReader(r"<path to your corpus>",
r'(WSJ/\d\d/WSJ_\d\d|BROWN/C[A-Z]/C[A-Z])\d\d.MRG',
cat_file='allcats.txt', tagset='wsj')
如您所见,您提供了文件实际位置的路径,其余参数保持不变:它们是要包含在语料库中的文件名的正则表达式、将语料库文件映射到类别的文件以及要使用的标记集. ptb
您创建的对象将是与or完全相同的语料库阅读器treebank
(除了它不是延迟创建的)。