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::
:titlesonly:

fastNLP.io.data_loader
fastNLP.io.base_loader
fastNLP.io.dataset_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 III: 不同数据类型的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` 的字典。

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

.. 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封装好的数据集加载器
@@ -138,56 +130,58 @@ fastNLP封装好的数据集加载器可以适用于多种类型的任务:
- `文本分类任务`_
- `序列标注任务`_
- `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',
'Conll2003Loader',
'IMDBLoader',
'MatchingLoader',
'PeopleDailyCorpusLoader',
'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`

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

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



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

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

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

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

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

target: str, 文本的标签

"""


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

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

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

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

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:`fastNLP.io.MTL16Loader` :class:`fastNLP.io.data_loader.MTL16Loader`

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

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

target: str, 文本的标签

数据来源: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::

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

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

target: str, 真实标签

数据来源:


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

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

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

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

target: str, 真实标签

数据来源:


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

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

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

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

target: str, 真实标签

数据来源:


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

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

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

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

target: str, 真实标签

数据来源: 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):
"""
数据来源"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):


+ 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:`fastNLP.io.YelpLoader` :class:`fastNLP.io.data_loader.YelpLoader`
读取Yelp_full/Yelp_polarity数据集, DataSet包含fields:

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

target: str, 文本的标签

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

数据集:yelp_full/yelp_polarity

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


Loading…
Cancel
Save