Question Answer

squad1

SQuAD1加载函数

mindnlp.dataset.question_answer.squad1.SQuAD1(root: str = '/home/docs/.mindnlp', split: Union[Tuple[str], str] = ('train', 'dev'), proxies=None)[源代码]

加载SQuAD1数据集

参数
  • root (str) – 存放数据集的目录。

  • split (str|Tuple[str]) – 要返回的数据集分块。默认:(‘train’,’dev’)。

  • proxies (dict) – 定义代理的字典,例如:{“https”: “https://127.0.0.1:7890”}

返回

  • datasets_list (list) -加载完成的数据集分块列表。如果只加载了一个数据集分块, 如:’trian’,那么就只返回这个数据集分块,而不是一个列表。

抛出
  • TypeError – 如果 root 不是string。

  • TypeError – 如果 split 不是string或者Tuple[str]。

示例

>>> root = "~/.mindnlp"
>>> split = ('train', 'dev')
>>> dataset_train, dataset_dev = SQuAD1(root, split)
>>> train_iter = dataset_train.create_tuple_iterator()
>>> print(next(train_iter))
{'context': Tensor(shape=[], dtype=String, value= 'Architecturally, \
    the school has a Catholic character. Atop the Main Building\'s gold dome ...'),
'question': Tensor(shape=[], dtype=String, value= 'To whom did the Virgin Mary allegedly \
    appear in 1858 in Lourdes France?'),
'answers': Tensor(shape=[1], dtype=String, value= ['Saint Bernadette Soubirous']),
'answers_start': Tensor(shape=[1], dtype=Int32, value= [515])}
mindnlp.dataset.question_answer.squad1.SQuAD1_Process(dataset, char_vocab, word_vocab=None, tokenizer=<mindnlp.dataset.transforms.tokenizers.BasicTokenizer object>, max_context_len=768, max_question_len=64, max_char_len=48, batch_size=64, drop_remainder=False)[源代码]

squad1数据集的数据预处理函数。

参数
  • dataset (GeneratorDataset) – Squad1数据集。

  • tokenizer (TextTensorOperation) – 对数据集进行分词操作的分词器。

  • word_vocab (Vocab) – 词表对象,用于存储分词和索引的映射。默认为空。如果为空,一个新的词表对象将会被创建。

  • char_vocab (Vocab) – 字符词表对象,用于存储字符和索引的映射。

  • max_context_len (int) – context的最大长度。默认:768。

  • max_question_len (int) – question的最大长度。默认:64。

  • max_char_len (int) – 字符的最大长度。默认:48。

  • batch_size (int) – 指定每个批处理数据包含的数据条目。默认值:64。

  • drop_remainder (bool) – 当最后一批数据包含的数据条目小于batch_size时,是否丢弃该批次,而不将其传递到下一个操作。默认值:False,不丢弃。

返回

  • MapDataset,预处理操作后返回的Squad1数据集。

抛出
  • TypeError – 如果 word_vocab 不是text.Vocab类型。

  • TypeError – 如果 char_vocab 不是text.Vocab类型。

  • TypeError – 如果 max_context_len 不是int类型。

  • TypeError – 如果 max_question_len 不是int类型。

  • TypeError – 如果 max_char_len 不是int类型。

  • TypeError – 如果 batch_size 不是int类型。

  • TypeError – 如果 drop_remainder 不是bool类型。

示例

>>> from mindspore.dataset import text
>>> from mindnlp.dataset import SQuAD1, SQuAD1_Process
>>> char_dic = {"<unk>": 0, "<pad>": 1, "e": 2, "t": 3, "a": 4, "i": 5, "n": 6,                    "o": 7, "s": 8, "r": 9, "h": 10, "l": 11, "d": 12, "c": 13, "u": 14,                    "m": 15, "f": 16, "p": 17, "g": 18, "w": 19, "y": 20, "b": 21, ",": 22,                    "v": 23, ".": 24, "k": 25, "1": 26, "0": 27, "x": 28, "2": 29, """: 30,                     "-": 31, "j": 32, "9": 33, "'": 34, ")": 35, "(": 36, "?": 37, "z": 38,                    "5": 39, "8": 40, "q": 41, "3": 42, "4": 43, "7": 44, "6": 45, ";": 46,                    ":": 47, "–": 48, "%": 49, "/": 50, "]": 51, "[": 52}
>>> char_vocab = text.Vocab.from_dict(char_dic)
>>> dev_dataset = SQuAD1(split='dev')
>>> squad_dev = SQuAD1_Process(dataset=dev_dataset, char_vocab=char_vocab)
>>> squad_dev = squad_dev.create_tuple_iterator()
>>> print(next(squad_dev))
class mindnlp.dataset.question_answer.squad1.Squad1(path)[源代码]

基类:object

SQuAD1数据集源

squad2

SQuAD2加载函数

mindnlp.dataset.question_answer.squad2.SQuAD2(root: str = '/home/docs/.mindnlp', split: Union[Tuple[str], str] = ('train', 'dev'), proxies=None)[源代码]

加载SQuAD2数据集

参数
  • root (str) – 存放数据集的目录。

  • split (str|Tuple[str]) – 要返回的数据集分块。默认:(‘train’,’dev’)。

  • proxies (dict) – 定义代理的字典,例如:{“https”: “https://127.0.0.1:7890”}

返回

  • datasets_list (list) -加载完成的数据集分块列表。如果只加载了一个数据集分块, 如:’trian’,那么就只返回这个数据集分块,而不是一个列表。

抛出
  • TypeError – 如果 root 不是string。

  • TypeError – 如果 split 不是string或者Tuple[str]。

示例

>>> root = "~/.mindnlp"
>>> split = ('train', 'dev')
>>> dataset_train, dataset_dev = SQuAD2(root, split)
>>> train_iter = dataset_train.create_tuple_iterator()
>>> print(next(train_iter))
[Tensor(shape=[], dtype=String, value= 'Beyoncé Giselle Knowles-Carter...),
Tensor(shape=[], dtype=String, value= 'When did Beyonce start becoming popular?'),
Tensor(shape=[1], dtype=String, value= ['in the late 1990s']),
Tensor(shape=[1], dtype=Int32, value= [269])]
class mindnlp.dataset.question_answer.squad2.Squad2(path)[源代码]

基类:object

SQuAD2数据集源

问答数据集初始化