fastNLP.io.loader.conll module

undocumented

class fastNLP.io.loader.conll.ConllLoader(headers, sep=None, indexes=None, dropna=True)[源代码]

基类:fastNLP.io.loader.loader.Loader

基类 fastNLP.io.Loader

别名 fastNLP.io.ConllLoader fastNLP.io.loader.ConllLoader

ConllLoader支持读取的数据格式: 以空行隔开两个sample,除了分割行,每一行用空格或者制表符隔开不同的元素。如下例所示:

Example:

# 文件中的内容
Nadim NNP B-NP B-PER
Ladki NNP I-NP I-PER

AL-AIN NNP B-NP B-LOC
United NNP B-NP B-LOC
Arab NNP I-NP I-LOC
Emirates NNPS I-NP I-LOC
1996-12-06 CD I-NP O
...

# 如果用以下的参数读取,返回的DataSet将包含raw_words和pos两个field, 这两个field的值分别取自于第0列与第1列
dataset = ConllLoader(headers=['raw_words', 'pos'], indexes=[0, 1])._load('/path/to/train.conll')
# 如果用以下的参数读取,返回的DataSet将包含raw_words和ner两个field, 这两个field的值分别取自于第0列与第2列
dataset = ConllLoader(headers=['raw_words', 'ner'], indexes=[0, 3])._load('/path/to/train.conll')
# 如果用以下的参数读取,返回的DataSet将包含raw_words, pos和ner三个field
dataset = ConllLoader(headers=['raw_words', 'pos', 'ner'], indexes=[0, 1, 3])._load('/path/to/train.conll')

ConllLoader返回的DataSet的field由传入的headers确定。

数据中以”-DOCSTART-“开头的行将被忽略,因为该符号在conll 2003中被用为文档分割符。

__init__(headers, sep=None, indexes=None, dropna=True)[源代码]
参数
  • headers (list) – 每一列数据的名称,需为List or Tuple of str。headerindexes 一一对应

  • sep (list) – 指定分隔符,默认为制表符

  • indexes (list) – 需要保留的数据列下标,从0开始。若为 None ,则所有列都保留。Default: None

  • dropna (bool) – 是否忽略非法数据,若 False ,遇到非法数据时抛出 ValueError 。Default: True

class fastNLP.io.loader.conll.Conll2003Loader[源代码]

基类:fastNLP.io.loader.conll.ConllLoader

基类 fastNLP.io.ConllLoader

别名 fastNLP.io.Conll2003Loader fastNLP.io.loader.Conll2003Loader

用于读取conll2003任务的数据。数据的内容应该类似与以下的内容, 第一列为raw_words, 第二列为pos, 第三列为chunking,第四列为ner。

Example:

Nadim NNP B-NP B-PER
Ladki NNP I-NP I-PER

AL-AIN NNP B-NP B-LOC
United NNP B-NP B-LOC
Arab NNP I-NP I-LOC
Emirates NNPS I-NP I-LOC
1996-12-06 CD I-NP O
...

返回的DataSet的内容为

下面是Conll2003Loader加载后数据具备的结构。

raw_words

pos

chunk

ner

[Nadim, Ladki]

[NNP, NNP]

[B-NP, I-NP]

[B-PER, I-PER]

[AL-AIN, United, Arab, …]

[NNP, NNP, NNP, …]

[B-NP, B-NP, I-NP, …]

[B-LOC, B-LOC, I-LOC, …]

[…]

[…]

[…]

[…]

class fastNLP.io.loader.conll.Conll2003NERLoader[源代码]

基类:fastNLP.io.loader.conll.ConllLoader

基类 fastNLP.io.ConllLoader

别名 fastNLP.io.Conll2003NERLoader fastNLP.io.loader.Conll2003NERLoader

用于读取conll2003任务的NER数据。每一行有4列内容,空行意味着隔开两个句子

支持读取的内容如下 Example:

Nadim NNP B-NP B-PER
Ladki NNP I-NP I-PER

AL-AIN NNP B-NP B-LOC
United NNP B-NP B-LOC
Arab NNP I-NP I-LOC
Emirates NNPS I-NP I-LOC
1996-12-06 CD I-NP O
...

返回的DataSet的内容为

下面是Conll2003Loader加载后数据具备的结构, target是BIO2编码

raw_words

target

[Nadim, Ladki]

[B-PER, I-PER]

[AL-AIN, United, Arab, …]

[B-LOC, B-LOC, I-LOC, …]

[…]

[…]

class fastNLP.io.loader.conll.OntoNotesNERLoader[源代码]

基类:fastNLP.io.loader.conll.ConllLoader

基类 fastNLP.io.ConllLoader

别名 fastNLP.io.OntoNotesNERLoader fastNLP.io.loader.OntoNotesNERLoader

用以读取OntoNotes的NER数据,同时也是Conll2012的NER任务数据。将OntoNote数据处理为conll格式的过程可以参考 https://github.com/yhcc/OntoNotes-5.0-NER。OntoNoteNERLoader将取第4列和第11列的内容。

读取的数据格式为:

Example:

bc/msnbc/00/msnbc_0000   0   0          Hi   UH   (TOP(FRAG(INTJ*)  -   -   -    Dan_Abrams  *   -
bc/msnbc/00/msnbc_0000   0   1    everyone   NN              (NP*)  -   -   -    Dan_Abrams  *   -
...

返回的DataSet的内容为

raw_words

target

[‘Hi’, ‘everyone’, ‘.’]

[‘O’, ‘O’, ‘O’]

[‘first’, ‘up’, ‘on’, ‘the’, ‘docket’]

[‘O’, ‘O’, ‘O’, ‘O’, ‘O’]

[…]

[…]

class fastNLP.io.loader.conll.CTBLoader[源代码]

基类:fastNLP.io.loader.loader.Loader

基类 fastNLP.io.Loader

别名 fastNLP.io.CTBLoader fastNLP.io.loader.CTBLoader

支持加载的数据应该具备以下格式, 其中第二列为词语,第四列为pos tag,第七列为依赖树的head,第八列为依赖树的label

Example:

1       印度    _       NR      NR      _       3       nn      _       _
2       海军    _       NN      NN      _       3       nn      _       _
3       参谋长  _       NN      NN      _       5       nsubjpass       _       _
4             _       SB      SB      _       5       pass    _       _
5       解职    _       VV      VV      _       0       root    _       _

1       新华社  _       NR      NR      _       7       dep     _       _
2       新德里  _       NR      NR      _       7       dep     _       _
3       12  _       NT      NT      _       7       dep     _       _
...

读取之后DataSet具备的格式为

raw_words

pos

dep_head

dep_label

[印度, 海军, …]

[NR, NN, SB, …]

[3, 3, …]

[nn, nn, …]

[新华社, 新德里, …]

[NR, NR, NT, …]

[7, 7, 7, …]

[dep, dep, dep, …]

[…]

[…]

[…]

[…]

download()[源代码]

由于版权限制,不能提供自动下载功能。可参考

https://catalog.ldc.upenn.edu/LDC2013T21

返回

class fastNLP.io.loader.conll.MsraNERLoader[源代码]

基类:fastNLP.io.loader.conll.CNNERLoader

基类 fastNLP.io.CNNERLoader

别名 fastNLP.io.MsraNERLoader fastNLP.io.loader.MsraNERLoader

读取MSRA-NER数据,数据中的格式应该类似与下列的内容

Example:

把       O
欧       B-LOC

美       B-LOC
、       O

港       B-LOC
台       B-LOC

流       O
行       O

的       O

食       O

...

读取后的DataSet包含以下的field

raw_chars

target

[‘把’, ‘欧’]

[‘O’, ‘B-LOC’]

[‘美’, ‘、’]

[‘B-LOC’, ‘O’]

[…]

[…]

download(dev_ratio: float = 0.1, re_download: bool = False) → str[源代码]

自动下载MSAR-NER的数据,如果你使用该数据,请引用 Gina-Anne Levow, 2006, The Third International Chinese Language Processing Bakeoff: Word Segmentation and Named Entity Recognition.

根据dev_ratio的值随机将train中的数据取出一部分作为dev数据。下载完成后在output_dir中有train.conll, test.conll, dev.conll三个文件。

参数
  • dev_ratio (float) – 如果路径中没有dev集,从train划分多少作为dev的数据. 如果为0,则不划分dev。

  • re_download (bool) – 是否重新下载数据,以重新切分数据。

返回

str, 数据集的目录地址

返回

class fastNLP.io.loader.conll.WeiboNERLoader[源代码]

基类:fastNLP.io.loader.conll.CNNERLoader

基类 fastNLP.io.CNNERLoader

别名 fastNLP.io.WeiboNERLoader fastNLP.io.loader.WeiboNERLoader

读取WeiboNER数据,数据中的格式应该类似与下列的内容

Example:

       B-PER.NOM
       I-PER.NOM
       I-PER.NOM

       O

...

读取后的DataSet包含以下的field

.. csv-table::

    :header: "raw_chars", "target"

    "['老', '百', '姓']", "['B-PER.NOM', 'I-PER.NOM', 'I-PER.NOM']"
    "['心']", "['O']"
    "[...]", "[...]"
download() → str[源代码]

自动下载Weibo-NER的数据,如果你使用了该数据,请引用 Nanyun Peng and Mark Dredze, 2015, Named Entity Recognition for Chinese Social Media with Jointly Trained Embeddings.

返回

str

class fastNLP.io.loader.conll.PeopleDailyNERLoader[源代码]

基类:fastNLP.io.loader.conll.CNNERLoader

基类 fastNLP.io.CNNERLoader

别名 fastNLP.io.PeopleDailyNERLoader fastNLP.io.loader.PeopleDailyNERLoader

支持加载的数据格式如下

Example:

 B-ORG
 I-ORG
 I-ORG
 I-ORG

 O
 B-ORG
...

读取后的DataSet包含以下的field

target列是基于BIO的编码方式

raw_chars

target

[‘中’, ‘共’, ‘中’, ‘央’]

[‘B-ORG’, ‘I-ORG’, ‘I-ORG’, ‘I-ORG’]

[…]

[…]