Browse Source

Merge branch 'dev0.5.0' of https://github.com/fastnlp/fastNLP into dev0.5.0

tags/v0.4.10
yh 6 years ago
parent
commit
c0904ed10a
4 changed files with 35 additions and 26 deletions
  1. +2
    -2
      fastNLP/io/__init__.py
  2. +2
    -2
      fastNLP/io/file_utils.py
  3. +25
    -18
      fastNLP/io/loader/__init__.py
  4. +6
    -4
      fastNLP/io/pipe/__init__.py

+ 2
- 2
fastNLP/io/__init__.py View File

@@ -3,9 +3,9 @@


1. 用于读入 embedding 的 :doc:`EmbedLoader <fastNLP.io.embed_loader>` 类, 1. 用于读入 embedding 的 :doc:`EmbedLoader <fastNLP.io.embed_loader>` 类,


2. 用于读入不同格式数据的 :doc:`DataSetLoader <fastNLP.io.dataset_loader>` 类
2. 用于读入不同格式数据的 :doc:`Loader <fastNLP.io.loader>` 类


3. 用于读入不同数据集并进行预处理的 :doc:`DataLoader <fastNLP.io.data_loader>` 类
3. 用于处理读入数据的 :doc:`Pipe <fastNLP.io.pipe>` 类


4. 用于保存和载入模型的类, 参考 :doc:`model_io文档</fastNLP.io.model_io>` 4. 用于保存和载入模型的类, 参考 :doc:`model_io文档</fastNLP.io.model_io>`




+ 2
- 2
fastNLP/io/file_utils.py View File

@@ -9,7 +9,7 @@ import shutil
from requests import HTTPError from requests import HTTPError


PRETRAINED_BERT_MODEL_DIR = { PRETRAINED_BERT_MODEL_DIR = {
'en': 'bert-large-cased-wwm.zip',
'en': 'bert-base-cased.zip',
'en-large-cased-wwm': 'bert-large-cased-wwm.zip', 'en-large-cased-wwm': 'bert-large-cased-wwm.zip',
'en-large-uncased-wwm': 'bert-large-uncased-wwm.zip', 'en-large-uncased-wwm': 'bert-large-uncased-wwm.zip',


@@ -30,7 +30,7 @@ PRETRAINED_BERT_MODEL_DIR = {
} }


PRETRAINED_ELMO_MODEL_DIR = { PRETRAINED_ELMO_MODEL_DIR = {
'en': 'elmo_en_Medium.tar.gz',
'en': 'elmo_en_Medium.zip',
'en-small': "elmo_en_Small.zip", 'en-small': "elmo_en_Small.zip",
'en-original-5.5b': 'elmo_en_Original_5.5B.zip', 'en-original-5.5b': 'elmo_en_Original_5.5B.zip',
'en-original': 'elmo_en_Original.zip', 'en-original': 'elmo_en_Original.zip',


+ 25
- 18
fastNLP/io/loader/__init__.py View File

@@ -1,38 +1,45 @@
""" """
Loader用于读取数据,并将内容读取到 :class:`~fastNLP.DataSet` 或者 :class:`~fastNLP.io.DataBundle` 中。所有的Loader都支持以下的 Loader用于读取数据,并将内容读取到 :class:`~fastNLP.DataSet` 或者 :class:`~fastNLP.io.DataBundle` 中。所有的Loader都支持以下的
三个方法: ``__init__`` , ``_load`` , ``loads`` . 其中 ``__init__(...)`` 用于申明读取参数,以及说明该Loader支持的数据格式, 三个方法: ``__init__`` , ``_load`` , ``loads`` . 其中 ``__init__(...)`` 用于申明读取参数,以及说明该Loader支持的数据格式,
读取后 :class:`~fastNLP.Dataset` 中的 `field` ; ``_load(path)`` 方法传入文件路径读取单个文件,并返回 :class:`~fastNLP.Dataset` ;
读取后 :class:`~fastNLP.DataSet` 中的 `field` ; ``_load(path)`` 方法传入文件路径读取单个文件,并返回 :class:`~fastNLP.DataSet` ;
``load(paths)`` 用于读取文件夹下的文件,并返回 :class:`~fastNLP.io.DataBundle` 类型的对象 , load()方法支持以下几种类型的参数: ``load(paths)`` 用于读取文件夹下的文件,并返回 :class:`~fastNLP.io.DataBundle` 类型的对象 , load()方法支持以下几种类型的参数:


0.传入None 0.传入None
将尝试自动下载数据集并缓存。但不是所有的数据都可以直接下载。 将尝试自动下载数据集并缓存。但不是所有的数据都可以直接下载。


1.传入一个文件path
返回的 data_bundle 包含一个名为 `train` 的 dataset ,可以通过 data_bundle.datasets['train']获取
1.传入一个文件path
返回的 `data_bundle` 包含一个名为 `train` 的 dataset ,可以通过 ``data_bundle.datasets['train']`` 获取


2.传入一个文件夹目录 2.传入一个文件夹目录
将读取的是这个文件夹下文件名中包含'train', 'test', 'dev'的文件,其它文件会被忽略。假设某个目录下的文件为::
将读取的是这个文件夹下文件名中包含 `train` , `test` , `dev` 的文件,其它文件会被忽略。假设某个目录下的文件为::


-train.txt
-dev.txt
-test.txt
-other.txt
|
+-train.txt
+-dev.txt
+-test.txt
+-other.txt


Loader().load('/path/to/dir')读取,返回的 data_bundle 中可以用 data_bundle.datasets['train'], data_bundle.datasets['dev'],
data_bundle.datasets['test'] 获取对应的DataSet,其中other.txt的内容会被忽略。假设某个目录下的文件为::
在 Loader().load('/path/to/dir') 返回的 `data_bundle` 中可以用 ``data_bundle.datasets['train']`` , ``data_bundle.datasets['dev']`` ,
``data_bundle.datasets['test']`` 获取对应的 `dataset` ,其中 `other.txt` 的内容会被忽略。假设某个目录下的文件为::


-train.txt
-dev.txt
|
+-train.txt
+-dev.txt


Loader().load('/path/to/dir')读取,返回的 data_bundle 中可以用 data_bundle.datasets['train'],
data_bundle.datasets['dev'] 获取对应的DataSet。
在 Loader().load('/path/to/dir') 返回的 `data_bundle` 中可以用 ``data_bundle.datasets['train']`` ,
``data_bundle.datasets['dev']`` 获取对应的 dataset。


3.传入一个dict
key为 dataset 的名称,value 是该 dataset 的文件路径::
3.传入一个字典
字典的的 key `dataset` 的名称,value 是该 `dataset` 的文件路径::


paths = {'train':'/path/to/train', 'dev': '/path/to/dev', 'test':'/path/to/test'} paths = {'train':'/path/to/train', 'dev': '/path/to/dev', 'test':'/path/to/test'}
Loader().load(paths) # 返回的data_bundle可以通过以下的方式获取相应的DataSet, data_bundle.datasets['train'], data_bundle.datasets['dev'],
data_bundle.datasets['test']
在 Loader().load(paths) 返回的 `data_bundle` 中可以用 ``data_bundle.datasets['train']`` , ``data_bundle.datasets['dev']`` ,
``data_bundle.datasets['test']`` 来获取对应的 `dataset`

fastNLP 目前提供了如下的 Loader




""" """




+ 6
- 4
fastNLP/io/pipe/__init__.py View File

@@ -1,8 +1,10 @@
""" """
Pipe用于处理数据,所有的Pipe都包含一个 process(data_bundle) 方法,传入一个 :class:`~fastNLP.io.DataBundle` 类型的对象,
在传入 data_bundle 上进行原位修改,并将其返回; process_from_file(paths) 传入的文件路径,返回一个 :class:`~fastNLP.io.DataBundle` 。
process(data_bundle) 或者 process_from_file(paths)的返回 :class:`~fastNLP.io.DataBundle` 中的 :class:`~fastNLP.DataSet`
一般都包含原文与转换为index的输入以及转换为index的target;除了 :class:`~fastNLP.DataSet` 之外,还会包含将field转为index时所建立的词表。
Pipe用于处理通过 Loader 读取的数据,所有的 Pipe 都包含 ``process`` 和 ``process_from_file`` 两种方法。
``process(data_bundle)`` 传入一个 :class:`~fastNLP.io.DataBundle` 类型的对象, 在传入的 `data_bundle` 上进行原位修改,并将其返回;
``process_from_file(paths)`` 传入的文件路径,返回一个 :class:`~fastNLP.io.DataBundle` 类型的对象。
``process(data_bundle)`` 或者 ``process_from_file(paths)`` 的返回 `data_bundle` 中的 :class:`~fastNLP.DataSet`
一般都包含原文与转换为index的输入以及转换为index的target;除了 :class:`~fastNLP.DataSet` 之外,
`data_bundle` 还会包含将field转为index时所建立的词表。


""" """
__all__ = [ __all__ = [


Loading…
Cancel
Save