Browse Source

更新DataSetLoader的文档以及对应教程

tags/v0.4.10
xuyige 5 years ago
parent
commit
579bdb1356
15 changed files with 82 additions and 56 deletions
  1. +7
    -0
      docs/source/fastNLP.io.data_loader.rst
  2. +1
    -0
      docs/source/fastNLP.io.rst
  3. +47
    -53
      docs/source/tutorials/tutorial_2_load_dataset.rst
  4. +1
    -0
      fastNLP/io/__init__.py
  5. +1
    -1
      fastNLP/io/data_loader/__init__.py
  6. +1
    -1
      fastNLP/io/data_loader/conll.py
  7. +3
    -0
      fastNLP/io/data_loader/imdb.py
  8. +2
    -0
      fastNLP/io/data_loader/mnli.py
  9. +3
    -0
      fastNLP/io/data_loader/mtl.py
  10. +2
    -0
      fastNLP/io/data_loader/qnli.py
  11. +2
    -0
      fastNLP/io/data_loader/quora.py
  12. +2
    -0
      fastNLP/io/data_loader/rte.py
  13. +2
    -0
      fastNLP/io/data_loader/snli.py
  14. +3
    -1
      fastNLP/io/data_loader/sst.py
  15. +5
    -0
      fastNLP/io/data_loader/yelp.py

+ 7
- 0
docs/source/fastNLP.io.data_loader.rst View File

@@ -0,0 +1,7 @@
fastNLP.io.data\_loader
==========================

.. automodule:: fastNLP.io.data_loader
:members:
:undoc-members:
:show-inheritance:

+ 1
- 0
docs/source/fastNLP.io.rst View File

@@ -12,6 +12,7 @@ fastNLP.io
.. toctree:: .. toctree::
:titlesonly: :titlesonly:


fastNLP.io.data_loader
fastNLP.io.base_loader fastNLP.io.base_loader
fastNLP.io.dataset_loader fastNLP.io.dataset_loader
fastNLP.io.embed_loader fastNLP.io.embed_loader


+ 47
- 53
docs/source/tutorials/tutorial_2_load_dataset.rst View File

@@ -6,7 +6,7 @@


教程目录: 教程目录:


- `Part I: 数据集信息`_
- `Part I: 数据集容器`_
- `Part II: 数据集的使用方式`_ - `Part II: 数据集的使用方式`_
- `Part III: 不同数据类型的DataSetLoader`_ - `Part III: 不同数据类型的DataSetLoader`_
- `Part IV: DataSetLoader举例`_ - `Part IV: DataSetLoader举例`_
@@ -14,11 +14,11 @@




---------------------------- ----------------------------
Part I: 数据集信息
Part I: 数据集容器
---------------------------- ----------------------------


在fastNLP中,我们使用 :class:`~fastNLP.io.base_loader.DataInfo` 来存储数据集信息。 :class:`~fastNLP.io.base_loader.DataInfo`
类包含了两个重要内容: `datasets` 和 `vocabs` 。
在fastNLP中,我们使用 :class:`~fastNLP.io.base_loader.DataBundle` 来存储数据集信息。
:class:`~fastNLP.io.base_loader.DataBundle` 类包含了两个重要内容: `datasets` 和 `vocabs` 。


`datasets` 是一个 `key` 为数据集名称(如 `train` , `dev` ,和 `test` 等), `value` 为 :class:`~fastNLP.DataSet` 的字典。 `datasets` 是一个 `key` 为数据集名称(如 `train` , `dev` ,和 `test` 等), `value` 为 :class:`~fastNLP.DataSet` 的字典。


@@ -113,21 +113,13 @@ Part IV: DataSetLoader举例


.. code-block:: python .. code-block:: python


def _load(self, path):
ds = JsonLoader._load(self, path) # SNLI数据集原始文件为Json格式,可以采用JsonLoader来读取数据集文件
data = SNLILoader().process(
paths='path/to/snli/data', to_lower=False, seq_len_type=arg.seq_len_type,
get_index=True, concat=False,
)


parentheses_table = str.maketrans({'(': None, ')': None})
# 字符串匹配格式:SNLI数据集的文本中由括号分割开的,组成树结构,因此
# 我们将这些括号去除。
这里的data即可直接传入 :class:`~fastNLP.Trainer` 进行


ds.apply(lambda ins: ins[Const.INPUTS(0)].translate(parentheses_table).strip().split(),
new_field_name=Const.INPUTS(0))
# 把第一句话的内容用上面的字符串匹配格式进行替换,并将句子分割为一个由单词组成的list
ds.apply(lambda ins: ins[Const.INPUTS(1)].translate(parentheses_table).strip().split(),
new_field_name=Const.INPUTS(1))
# 对第二句话的内容进行同样的预处理
ds.drop(lambda x: x[Const.TARGET] == '-') # 将标签为'-'的样本丢掉
return ds


------------------------------------------ ------------------------------------------
Part V: fastNLP封装好的数据集加载器 Part V: fastNLP封装好的数据集加载器
@@ -138,56 +130,58 @@ fastNLP封装好的数据集加载器可以适用于多种类型的任务:
- `文本分类任务`_ - `文本分类任务`_
- `序列标注任务`_ - `序列标注任务`_
- `Matching任务`_ - `Matching任务`_
- `指代消解任务`_
- `摘要任务`_




文本分类任务 文本分类任务
------------------- -------------------


文本分类任务
========================== ==================================================================
数据集名称 数据集加载器
-------------------------- ------------------------------------------------------------------
IMDb :class:`~fastNLP.io.data_loader.IMDBLoader`
-------------------------- ------------------------------------------------------------------
SST :class:`~fastNLP.io.data_loader.SSTLoader`
-------------------------- ------------------------------------------------------------------
SST-2 :class:`~fastNLP.io.data_loader.SST2Loader`
-------------------------- ------------------------------------------------------------------
Yelp Polarity :class:`~fastNLP.io.data_loader.YelpLoader`
-------------------------- ------------------------------------------------------------------
Yelp Full :class:`~fastNLP.io.data_loader.YelpLoader`
-------------------------- ------------------------------------------------------------------
MTL16 :class:`~fastNLP.io.data_loader.MTL16Loader`
========================== ==================================================================






序列标注任务 序列标注任务
------------------- -------------------


序列标注任务


Matching任务
-------------------

:class:`~fastNLP.io.data_loader.matching.SNLILoader`
一个关于SNLI数据集的DataSetLoader。SNLI数据集来自
`SNLI Data Set <https://nlp.stanford.edu/projects/snli/snli_1.0.zip>`_ .

:class:`~fastNLP.io.data_loader.matching.MNLILoader`
一个关于MultiNLI数据集的DataSetLoader。MultiNLI数据集来自 `GLUE benchmark <https://gluebenchmark.com/tasks>`_

:class:`~fastNLP.io.data_loader.matching.QNLILoader`
一个关于QNLI数据集的DataSetLoader。QNLI数据集来自 `GLUE benchmark <https://gluebenchmark.com/tasks>`_

:class:`~fastNLP.io.data_loader.matching.RTELoader`
一个关于Recognizing Textual Entailment数据集(RTE)的DataSetLoader。RTE数据集来自
`GLUE benchmark <https://gluebenchmark.com/tasks>`_
========================== ==================================================================
数据集名称 数据集加载器
-------------------------- ------------------------------------------------------------------
Conll :class:`~fastNLP.io.data_loader.ConllLoader`
-------------------------- ------------------------------------------------------------------
Conll2003 :class:`~fastNLP.io.data_loader.Conll2003Loader`
-------------------------- ------------------------------------------------------------------
人民日报数据集 :class:`~fastNLP.io.data_loader.PeopleDailyCorpusLoader`
========================== ==================================================================


:class:`~fastNLP.io.data_loader.matching.QuoraLoader`
一个关于Quora数据集的DataSetLoader。






指代消解任务
-------------------

指代消解任务



摘要任务
Matching任务
------------------- -------------------


摘要任务

========================== ==================================================================
数据集名称 数据集加载器
-------------------------- ------------------------------------------------------------------
SNLI :class:`~fastNLP.io.data_loader.SNLILoader`
-------------------------- ------------------------------------------------------------------
MultiNLI :class:`~fastNLP.io.data_loader.MNLILoader`
-------------------------- ------------------------------------------------------------------
QNLI :class:`~fastNLP.io.data_loader.QNLILoader`
-------------------------- ------------------------------------------------------------------
RTE :class:`~fastNLP.io.data_loader.RTELoader`
-------------------------- ------------------------------------------------------------------
Quora Pair Dataset :class:`~fastNLP.io.data_loader.QuoraLoader`
========================== ==================================================================



+ 1
- 0
fastNLP/io/__init__.py View File

@@ -23,6 +23,7 @@ __all__ = [


'ConllLoader', 'ConllLoader',
'Conll2003Loader', 'Conll2003Loader',
'IMDBLoader',
'MatchingLoader', 'MatchingLoader',
'PeopleDailyCorpusLoader', 'PeopleDailyCorpusLoader',
'SNLILoader', 'SNLILoader',


+ 1
- 1
fastNLP/io/data_loader/__init__.py View File

@@ -1,5 +1,5 @@
""" """
用于读数据集的模块, 具体包括:
用于读数据集的模块, 可以读取文本分类、序列标注、Matching任务的数据集


这些模块的使用方法如下: 这些模块的使用方法如下:
""" """


+ 1
- 1
fastNLP/io/data_loader/conll.py View File

@@ -10,7 +10,7 @@ class ConllLoader(DataSetLoader):
别名::class:`fastNLP.io.ConllLoader` :class:`fastNLP.io.data_loader.ConllLoader` 别名::class:`fastNLP.io.ConllLoader` :class:`fastNLP.io.data_loader.ConllLoader`


读取Conll格式的数据. 数据格式详见 http://conll.cemantix.org/2012/data.html. 数据中以"-DOCSTART-"开头的行将被忽略,因为 读取Conll格式的数据. 数据格式详见 http://conll.cemantix.org/2012/data.html. 数据中以"-DOCSTART-"开头的行将被忽略,因为
该符号在conll 2003中被用为文档分割符。
该符号在conll 2003中被用为文档分割符。


列号从0开始, 每列对应内容为:: 列号从0开始, 每列对应内容为::




+ 3
- 0
fastNLP/io/data_loader/imdb.py View File

@@ -13,9 +13,12 @@ from ..utils import get_tokenizer


class IMDBLoader(DataSetLoader): class IMDBLoader(DataSetLoader):
""" """
别名::class:`fastNLP.io.IMDBLoader` :class:`fastNLP.io.data_loader.IMDBLoader`

读取IMDB数据集,DataSet包含以下fields: 读取IMDB数据集,DataSet包含以下fields:


words: list(str), 需要分类的文本 words: list(str), 需要分类的文本

target: str, 文本的标签 target: str, 文本的标签


""" """


+ 2
- 0
fastNLP/io/data_loader/mnli.py View File

@@ -12,7 +12,9 @@ class MNLILoader(MatchingLoader, CSVLoader):
读取MNLI数据集,读取的DataSet包含fields:: 读取MNLI数据集,读取的DataSet包含fields::


words1: list(str),第一句文本, premise words1: list(str),第一句文本, premise

words2: list(str), 第二句文本, hypothesis words2: list(str), 第二句文本, hypothesis

target: str, 真实标签 target: str, 真实标签


数据来源: 数据来源:


+ 3
- 0
fastNLP/io/data_loader/mtl.py View File

@@ -10,9 +10,12 @@ from ..utils import check_dataloader_paths


class MTL16Loader(CSVLoader): class MTL16Loader(CSVLoader):
""" """
别名::class:`fastNLP.io.MTL16Loader` :class:`fastNLP.io.data_loader.MTL16Loader`

读取MTL16数据集,DataSet包含以下fields: 读取MTL16数据集,DataSet包含以下fields:


words: list(str), 需要分类的文本 words: list(str), 需要分类的文本

target: str, 文本的标签 target: str, 文本的标签


数据来源:https://pan.baidu.com/s/1c2L6vdA 数据来源:https://pan.baidu.com/s/1c2L6vdA


+ 2
- 0
fastNLP/io/data_loader/qnli.py View File

@@ -12,7 +12,9 @@ class QNLILoader(MatchingLoader, CSVLoader):
读取QNLI数据集,读取的DataSet包含fields:: 读取QNLI数据集,读取的DataSet包含fields::


words1: list(str),第一句文本, premise words1: list(str),第一句文本, premise

words2: list(str), 第二句文本, hypothesis words2: list(str), 第二句文本, hypothesis

target: str, 真实标签 target: str, 真实标签


数据来源: 数据来源:


+ 2
- 0
fastNLP/io/data_loader/quora.py View File

@@ -12,7 +12,9 @@ class QuoraLoader(MatchingLoader, CSVLoader):
读取MNLI数据集,读取的DataSet包含fields:: 读取MNLI数据集,读取的DataSet包含fields::


words1: list(str),第一句文本, premise words1: list(str),第一句文本, premise

words2: list(str), 第二句文本, hypothesis words2: list(str), 第二句文本, hypothesis

target: str, 真实标签 target: str, 真实标签


数据来源: 数据来源:


+ 2
- 0
fastNLP/io/data_loader/rte.py View File

@@ -12,7 +12,9 @@ class RTELoader(MatchingLoader, CSVLoader):
读取RTE数据集,读取的DataSet包含fields:: 读取RTE数据集,读取的DataSet包含fields::


words1: list(str),第一句文本, premise words1: list(str),第一句文本, premise

words2: list(str), 第二句文本, hypothesis words2: list(str), 第二句文本, hypothesis

target: str, 真实标签 target: str, 真实标签


数据来源: 数据来源:


+ 2
- 0
fastNLP/io/data_loader/snli.py View File

@@ -12,7 +12,9 @@ class SNLILoader(MatchingLoader, JsonLoader):
读取SNLI数据集,读取的DataSet包含fields:: 读取SNLI数据集,读取的DataSet包含fields::


words1: list(str),第一句文本, premise words1: list(str),第一句文本, premise

words2: list(str), 第二句文本, hypothesis words2: list(str), 第二句文本, hypothesis

target: str, 真实标签 target: str, 真实标签


数据来源: https://nlp.stanford.edu/projects/snli/snli_1.0.zip 数据来源: https://nlp.stanford.edu/projects/snli/snli_1.0.zip


+ 3
- 1
fastNLP/io/data_loader/sst.py View File

@@ -104,7 +104,9 @@ class SSTLoader(DataSetLoader):


class SST2Loader(CSVLoader): class SST2Loader(CSVLoader):
""" """
数据来源"SST":'https://firebasestorage.googleapis.com/v0/b/mtl-sentence-representations.appspot.com/o/data%2FSST-2.zip?alt=media&token=aabc5f6b-e466-44a2-b9b4-cf6337f84ac8',
别名::class:`fastNLP.io.SST2Loader` :class:`fastNLP.io.data_loader.SST2Loader`

数据来源 SST: https://firebasestorage.googleapis.com/v0/b/mtl-sentence-representations.appspot.com/o/data%2FSST-2.zip?alt=media&token=aabc5f6b-e466-44a2-b9b4-cf6337f84ac8
""" """


def __init__(self): def __init__(self):


+ 5
- 0
fastNLP/io/data_loader/yelp.py View File

@@ -13,12 +13,17 @@ from ..utils import check_dataloader_paths, get_tokenizer


class YelpLoader(DataSetLoader): class YelpLoader(DataSetLoader):
""" """
别名::class:`fastNLP.io.YelpLoader` :class:`fastNLP.io.data_loader.YelpLoader`
读取Yelp_full/Yelp_polarity数据集, DataSet包含fields: 读取Yelp_full/Yelp_polarity数据集, DataSet包含fields:

words: list(str), 需要分类的文本 words: list(str), 需要分类的文本

target: str, 文本的标签 target: str, 文本的标签

chars:list(str),未index的字符列表 chars:list(str),未index的字符列表


数据集:yelp_full/yelp_polarity 数据集:yelp_full/yelp_polarity

:param fine_grained: 是否使用SST-5标准,若 ``False`` , 使用SST-2。Default: ``False`` :param fine_grained: 是否使用SST-5标准,若 ``False`` , 使用SST-2。Default: ``False``
:param lower: 是否需要自动转小写,默认为False。 :param lower: 是否需要自动转小写,默认为False。
""" """


Loading…
Cancel
Save