登录    |    注册

NLTK--data 模块

2021-02-21 13:48:41

函数来查找和加载NLTK资源文件,如语料库、语法和保存的处理对象。资源文件使用URL标识,例如 nltk:corpora/abc/rural.txt 或 http://nltk.org/sample/toy.cfg . 支持以下URL协议:

file:path :指定路径为的文件 path . 可以使用相对路径和绝对路径。http://host/path :指定存储在Web服务器上的文件 host 在路径上 path .nltk:path :指定存储在NLTK数据包中的文件 path . NLTK将在指定的目录中搜索这些文件 nltk.data.path .

如果未指定协议,则默认协议 nltk: 将被使用。

此模块提供可用于访问资源文件的函数,给定其URL: load() 加载给定资源,并将其添加到资源缓存;以及 retrieve() 将给定资源复制到本地文件。

nltk.data.AUTO_FORMATS = {'cfg': 'cfg', 'fcfg': 'fcfg', 'fol': 'fol', 'json': 'json', 'logic': 'logic', 'pcfg': 'pcfg', 'pickle': 'pickle', 'text': 'text', 'txt': 'text', 'val': 'val', 'yaml': 'yaml'}

从文件扩展名到格式名的字典映射,当format=“auto”决定给定资源URL的格式时,由load()使用。

nltk.data.BufferedGzipFile(*args**kwargs)

GzipFile 子类以与旧的nltk版本兼容。

使用 GzipFile 因为它还可以在所有支持的Python版本中进行缓冲。

@不推荐:使用gzip.gzip文件相反,因为它也使用缓冲区。

  1. nltk.data.FORMATS = {'cfg': 'A context free grammar.', 'fcfg': 'A feature CFG.', 'fol': 'A list of first order logic expressions, parsed with nltk.sem.logic.Expression.fromstring.', 'json': 'A serialized python object, stored using the json module.', 'logic': 'A list of first order logic expressions, parsed with nltk.sem.logic.LogicParser. Requires an additional logic_parser parameter', 'pcfg': 'A probabilistic CFG.', 'pickle': 'A serialized python object, stored using the pickle module.', 'raw': 'The raw (byte string) contents of a file.', 'text': 'The raw (unicode string) contents of a file. ', 'val': 'A semantic valuation, parsed by nltk.sem.Valuation.fromstring.', 'yaml': 'A serialized python object, stored using the yaml module.'}

描述由nltk的load()方法支持的格式的字典。键是格式名,值是格式描述。

class nltk.data.FileSystemPathPointer(**kwargs)[源代码]

基类:nltk.data.PathPointerstr

一种路径指针,用于标识可通过给定的绝对路径直接访问的文件。

file_size()[源代码]

返回此路径指针指向的文件的大小(字节)。

引发

IOError -- 如果此指针指定的路径不包含可读文件。

join(fileid)[源代码]

返回一个新的路径指针,该指针从由该指针标识的路径开始,然后按照 fileid . 的路径组件 fileid 应该用正斜杠分隔,而不管底层文件系统的路径分隔符是什么。

open(encoding=None)[源代码]

返回可查找的只读流,该流可用于读取此路径指针标识的文件的内容。

引发

IOError -- 如果此指针指定的路径不包含可读文件。

property path

此路径指针标识的绝对路径。

class nltk.data.GzipFileSystemPathPointer(**kwargs)[源代码]

基类:nltk.data.FileSystemPathPointer

一个子类 FileSystemPathPointer 它标识位于给定绝对路径的gzip压缩文件。 GzipFileSystemPathPointer 适用于大型gzip压缩pickle对象的高效加载。

open(encoding=None)[源代码]

返回可查找的只读流,该流可用于读取此路径指针标识的文件的内容。

引发

IOError -- 如果此指针指定的路径不包含可读文件。

class nltk.data.GzipFileSystemPathPointer(**kwargs)[源代码]

基类:nltk.data.FileSystemPathPointer

一个子类 FileSystemPathPointer 它标识位于给定绝对路径的gzip压缩文件。 GzipFileSystemPathPointer 适用于大型gzip压缩pickle对象的高效加载。

open(encoding=None)[源代码]

返回可查找的只读流,该流可用于读取此路径指针标识的文件的内容。

引发

IOError -- 如果此指针指定的路径不包含可读文件。

class nltk.data.GzipFileSystemPathPointer(**kwargs)[源代码]

基类:nltk.data.FileSystemPathPointer

一个子类 FileSystemPathPointer 它标识位于给定绝对路径的gzip压缩文件。 GzipFileSystemPathPointer 适用于大型gzip压缩pickle对象的高效加载。

open(encoding=None)[源代码]

返回可查找的只读流,该流可用于读取此路径指针标识的文件的内容。

引发

IOError -- 如果此指针指定的路径不包含可读文件。

class nltk.data.LazyLoader(**kwargs)[源代码]

基类:object

class nltk.data.OpenOnDemandZipFile(**kwargs)[源代码]

基类:zipfile.ZipFile

一个子类 zipfile.ZipFile 它在不使用文件指针时关闭文件指针;当需要从zipfile读取数据时重新打开文件指针。这对于减少同时访问许多zip文件时打开的文件句柄的数量非常有用。 OpenOnDemandZipFile 必须使用文件名而不是类似文件的对象构造(以允许重新打开)。 OpenOnDemandZipFile 是只读的(即 write() 和 writestr() 已禁用。

read(name)[源代码]

返回名称的文件字节。

write(*args**kwargs)[源代码]
引发

NotImplementedError -- OpenOnDemandZipFile是只读的

writestr(*args**kwargs)[源代码]
引发

NotImplementedError -- OpenOnDemandZipFile是只读的

class nltk.data.PathPointer[源代码]

基类:object

“path pointers”的抽象基类,由NLTK的数据包用于标识特定路径。存在两个子类: FileSystemPathPointer 标识可通过给定绝对路径直接访问的文件。 ZipFilePathPointer 标识包含在zipfile中的文件,可以通过读取该zipfile来访问该文件。

abstract file_size()[源代码]

返回此路径指针指向的文件的大小(字节)。

引发

IOError -- 如果此指针指定的路径不包含可读文件。

abstract join(fileid)[源代码]

返回一个新的路径指针,该指针从由该指针标识的路径开始,然后按照 fileid . 的路径组件 fileid 应该用正斜杠分隔,而不管底层文件系统的路径分隔符是什么。

abstract open(encoding=None)[源代码]

返回可查找的只读流,该流可用于读取此路径指针标识的文件的内容。

引发

IOError -- 如果此指针指定的路径不包含可读文件。

class nltk.data.SeekableUnicodeStreamReader(**kwargs)[源代码]

基类:object

将源字节流自动编码为Unicode(如 codecs.StreamReader )但仍然支持 seek() 和 tell() 操作正确。这与 codecs.StreamReader 提供 破碎的 seek() 和 tell() 方法。

这门课的动机是 StreamBackedCorpusView ,广泛利用 seek() 和 tell() ,并且需要能够处理Unicode编码的文件。

注意:这个类需要无状态解码器。据我所知,这不会导致任何Python内置的Unicode编码出现问题。

DEBUG = True
bytebuffer

使用已读取但尚未解码的字节的缓冲区。这仅在读取的最后字节不构成字符的完整编码时使用。

char_seek_forward(offset)[源代码]

向前移动读取指针 offset 字符。

close()[源代码]

关闭基础流。

property closed

如果基础流已关闭,则为true。

decode

用于将字节字符串解码为Unicode字符串的函数。

discard_line()[源代码]
encoding

应用于对基础流进行编码的编码的名称。

errors

从基础流解码数据时应使用的错误模式。可以是“strict”、“ignore”或“replace”。

linebuffer

使用的缓冲区 readline() 保留已被读取但尚未被返回的字符 read() 或 readline() . 这个缓冲区由一个Unicode字符串列表组成,其中每个字符串对应一行。列表的最后一个元素可能是完整的行,也可能不是完整的行。注意,linebuffer的存在使得 tell() 操作更复杂,因为它必须回溯到缓冲区的开头,以确定底层字节流中的正确文件位置。

property mode

基础流的模式。

property name

基础流的名称。

next()[源代码]

从基础流返回下一个解码行。

read(size=None)[源代码]

读到 size 字节,使用该读卡器的编码对其进行解码,并返回生成的Unicode字符串。

参数

size (int) -- 要读取的最大字节数。如果未指定,则读取尽可能多的字节。

返回类型

unicode

readline(size=None)[源代码]

读取一行文本,使用该读卡器的编码对其进行解码,然后返回生成的Unicode字符串。

参数

size (int) -- 要读取的最大字节数。如果之前没有遇到换行符 size 字节已被读取,则返回的值可能不是完整的文本行。

readlines(sizehint=Nonekeepends=True)[源代码]

读取此文件的内容,使用此读取器的编码对其进行解码,并将其作为Unicode行的列表返回。

返回类型

list(unicode)

参数
  • sizehint -- 忽略。

  • keepends -- 如果为false,则去掉换行符。

seek(offsetwhence=0)[源代码]

将流移动到新的文件位置。如果读卡器正在维护任何缓冲区,那么它们将被清除。

参数
  • offset -- 字节计数偏移量。

  • whence -- 如果为0,则偏移量是从文件开始的偏移量(偏移量应为正),如果为1,则偏移量是从当前位置开始的偏移量(偏移量可以为正或负);如果为2,则偏移量是从文件结束的偏移量(偏移量通常应为负)。

stream

底层流。

tell()[源代码]

返回基础字节流上的当前文件位置。如果此读卡器维护任何缓冲区,则返回的文件位置将是这些缓冲区开头的位置。

xreadlines()[源代码]

回归自我

nltk.data.clear_cache()[源代码]

从资源缓存中删除所有对象。参见:Load()

nltk.data.find(resource_namepaths=None)[源代码]

通过搜索路径中的目录和zip文件来查找给定的资源,其中无或空字符串指定绝对路径。返回相应的路径名。如果找不到给定的资源,则引发 LookupError ,其消息提供指向NLTK下载程序安装说明的指针。

压缩文件处理:

  • 如果 resource_name 包含具有 .zip 扩展名,然后假设它是一个zipfile;剩下的路径组件用于查看zipfile内部。

  • 如果 nltk.data.path 有一个 .zip 扩展名,则假定为zipfile。

  • 如果最初找不到不包含任何zipfile组件的给定资源名,则 find() 将再次尝试查找该资源,方法是替换每个组件 p 在道路上与 p.zip/p . 例如,这允许 find() 映射资源名称 corpora/chat80/cities.pl 指向zip文件路径指针 corpora/chat80.zip/chat80/cities.pl .

  • 使用时 find() 要定位zipfile中包含的目录,资源名称必须以正斜杠字符结尾。否则, find() 将找不到目录。

参数

resource_name (str or unicode) -- 要搜索的资源的名称。资源名是POSIX样式的相对路径名,例如 corpora/brown . 目录名将自动转换为平台相应的路径分隔符。

返回类型

str

nltk.data.load(resource_urlformat='auto'cache=Trueverbose=Falselogic_parser=Nonefstruct_reader=Noneencoding=None)[源代码]

从NLTK数据包加载给定的资源。当前支持以下资源格式:

  • pickle

  • json

  • yaml

  • cfg (上下文无关语法)

  • pcfg (概率CFG)

  • fcfg (基于特征的CFG)

  • fol (一阶逻辑公式)

  • logic (逻辑公式由给定的逻辑分析器解析)

  • val (一阶逻辑模型的估值)

  • text (文件内容为Unicode字符串)

  • raw (原始文件内容作为字节字符串)

如果未指定格式, load() 将尝试根据资源名的文件扩展名确定格式。如果失败了, load() 将提高 ValueError 例外。

对于所有文本格式(除 pickle , json , yaml 和 raw ,它尝试使用utf-8解码原始内容,如果这不起作用,它将尝试使用iso-8859-1(拉丁语-1),除非 encoding 指定。

参数
  • resource_url (str) -- 指定从何处加载资源的URL。默认协议是“nltk:”,它在nltk数据包中搜索文件。

  • cache (bool) -- 如果为true,请将此资源添加到缓存中。如果load()在其缓存中找到资源,则它将从缓存中返回该资源,而不是加载它。

  • verbose (bool) -- 如果为真,则在加载资源时打印消息。从缓存中检索资源时不显示消息。

  • logic_parser (LogicParser) -- 将用于分析逻辑表达式的分析器。

  • fstruct_reader (FeatStructReader) -- 将用于分析FCFG的功能结构的分析器。

  • encoding (str) -- 输入的编码;仅用于文本格式。

nltk.data.path = ['/home/bk/nltk_data', '/tmp/vpy_rst_x/nltk_data', '/tmp/vpy_rst_x/share/nltk_data', '/tmp/vpy_rst_x/lib/nltk_data', '/usr/share/nltk_data', '/usr/local/share/nltk_data', '/usr/lib/nltk_data', '/usr/local/lib/nltk_data']

NLTK数据包可能驻留的目录列表。在数据包中查找资源时,将按顺序检查这些目录。请注意,这允许用户在自己的资源版本中替换资源(例如,在其主目录的~/nltk_data下)。

nltk.data.retrieve(resource_urlfilename=Noneverbose=True)[源代码]

将给定的资源复制到本地文件。如果未指定文件名,则使用URL的文件名。如果已经有一个名为 filename 然后举起一个 ValueError .

参数

resource_url (str) -- 指定从何处加载资源的URL。默认协议是“nltk:”,它在nltk数据包中搜索文件。

nltk.data.show_cfg(resource_urlescape='##')[源代码]

写出语法文件,忽略转义和空行。

参数
  • resource_url (str) -- 指定从何处加载资源的URL。默认协议是“nltk:”,它在nltk数据包中搜索文件。

  • escape (str) -- 指示要忽略的行的预结束字符串


想要了解NLTK,请点击这里

想要了解安装NLTK,请点击这里