lambada_multilingual.py 2.07 KB
Newer Older
1
"""
bzantium's avatar
bzantium committed
2
The LAMBADA (OpenAI) dataset: Word prediction requiring a broad discourse context∗
3
4
https://arxiv.org/pdf/1606.06031.pdf

bzantium's avatar
bzantium committed
5
The LAMBADA OpenAI dataset machine-translated to other languages.
6
7
8
9
10
11
12
13
14
LAMBADA is a dataset to evaluate the capabilities of computational models for text
understanding by means of a word prediction task. LAMBADA is a collection of narrative
passages sharing the characteristic that human subjects are able to guess their last
word if they are exposed to the whole passage, but not if they only see the last
sentence preceding the target word. To succeed on LAMBADA, computational models
cannot simply rely on local context, but must be able to keep track of information
in the broader discourse.

Homepage: https://zenodo.org/record/2630551#.X4Xzn5NKjUI
bzantium's avatar
bzantium committed
15
16

Reference (OpenAI): https://github.com/openai/gpt-2/issues/131#issuecomment-497136199
17
"""
bzantium's avatar
bzantium committed
18
from .lambada import LambadaOpenAI
sdtblck's avatar
sdtblck committed
19

20

21
22
_CITATION = """
@misc{
bzantium's avatar
bzantium committed
23
    author={Paperno, Denis and Kruszewski, Germán and Lazaridou, Angeliki and Pham, Quan Ngoc and Bernardi, Raffaella and Pezzelle, Sandro and Baroni, Marco and Boleda, Gemma and Fernández, Raquel},
24
25
26
27
28
29
30
31
32
    title={The LAMBADA dataset},
    DOI={10.5281/zenodo.2630551},
    publisher={Zenodo},
    year={2016},
    month={Aug}
}
"""


bzantium's avatar
bzantium committed
33
class LambadaOpenAIMultilingualEnglish(LambadaOpenAI):
sdtblck's avatar
sdtblck committed
34
    VERSION = 0
bzantium's avatar
bzantium committed
35
    DATASET_NAME = "en"
Jonathan Tow's avatar
Jonathan Tow committed
36

sdtblck's avatar
sdtblck committed
37

bzantium's avatar
bzantium committed
38
39
40
class LambadaOpenAIMultilingualFrench(LambadaOpenAI):
    VERSION = 0
    DATASET_NAME = "fr"
Jonathan Tow's avatar
Jonathan Tow committed
41

sdtblck's avatar
sdtblck committed
42

bzantium's avatar
bzantium committed
43
44
45
class LambadaOpenAIMultilingualGerman(LambadaOpenAI):
    VERSION = 0
    DATASET_NAME = "de"
Jonathan Tow's avatar
Jonathan Tow committed
46

sdtblck's avatar
sdtblck committed
47

bzantium's avatar
bzantium committed
48
49
50
class LambadaOpenAIMultilingualItalian(LambadaOpenAI):
    VERSION = 0
    DATASET_NAME = "it"
Jonathan Tow's avatar
Jonathan Tow committed
51

sdtblck's avatar
sdtblck committed
52

bzantium's avatar
bzantium committed
53
54
55
class LambadaOpenAIMultilingualSpanish(LambadaOpenAI):
    VERSION = 0
    DATASET_NAME = "es"
Jonathan Tow's avatar
Jonathan Tow committed
56
57


bzantium's avatar
bzantium committed
58
59
60
61
62
63
64
LANG_CLASSES = [
    LambadaOpenAIMultilingualEnglish,
    LambadaOpenAIMultilingualFrench,
    LambadaOpenAIMultilingualGerman,
    LambadaOpenAIMultilingualItalian,
    LambadaOpenAIMultilingualSpanish,
]
sdtblck's avatar
sdtblck committed
65
66


sdtblck's avatar
sdtblck committed
67
68
def construct_tasks():
    tasks = {}
Jonathan Tow's avatar
Jonathan Tow committed
69
    for lang_class in LANG_CLASSES:
bzantium's avatar
bzantium committed
70
        tasks[f"lambada_openai_mt_{lang_class.DATASET_NAME}"] = lang_class
sdtblck's avatar
sdtblck committed
71
    return tasks