diff --git a/docs/_src/tutorials/tutorials/15.md b/docs/_src/tutorials/tutorials/15.md index 1cacbb1369..56504aa21c 100644 --- a/docs/_src/tutorials/tutorials/15.md +++ b/docs/_src/tutorials/tutorials/15.md @@ -84,7 +84,7 @@ document_store = ElasticsearchDocumentStore( ``` ## Add Tables to DocumentStore -To quickly demonstrate the capabilities of the `TableTextRetriever` and the `TableReader` we use a subset of 1000 tables of the [Open Table-and-Text Question Answering (OTT-QA) dataset](https://github.com/wenhuchen/OTT-QA). +To quickly demonstrate the capabilities of the `TableTextRetriever` and the `TableReader` we use a subset of 1000 tables and text documents from a dataset we have published in [this paper](https://arxiv.org/abs/2108.04049). Just as text passages, tables are represented as `Document` objects in Haystack. The content field, though, is a pandas DataFrame instead of a string. @@ -95,7 +95,7 @@ Just as text passages, tables are represented as `Document` objects in Haystack. from haystack.utils import fetch_archive_from_http doc_dir = "data/tutorial15" -s3_url = "https://s3.eu-central-1.amazonaws.com/deepset.ai-farm-qa/datasets/documents/ottqa_sample.zip" +s3_url = "https://s3.eu-central-1.amazonaws.com/deepset.ai-farm-qa/datasets/documents/table_text_dataset.zip" fetch_archive_from_http(url=s3_url, output_dir=doc_dir) ``` @@ -108,7 +108,7 @@ from haystack import Document import pandas as pd -def read_ottqa_tables(filename): +def read_tables(filename): processed_tables = [] with open(filename) as tables: tables = json.load(tables) @@ -116,20 +116,13 @@ def read_ottqa_tables(filename): current_columns = table["header"] current_rows = table["data"] current_df = pd.DataFrame(columns=current_columns, data=current_rows) - current_doc_title = table["title"] - current_section_title = table["section_title"] - document = Document( - content=current_df, - content_type="table", - meta={"title": current_doc_title, "section_title": current_section_title}, - id=key, - ) + document = Document(content=current_df, content_type="table", id=key) processed_tables.append(document) return processed_tables -tables = read_ottqa_tables(f"{doc_dir}/ottqa_tables_sample.json") +tables = read_tables(f"{doc_dir}/tables.json") document_store.write_documents(tables, index=document_index) # Showing content field and meta field of one of the Documents of content_type 'table' @@ -161,7 +154,6 @@ retriever = TableTextRetriever( query_embedding_model="deepset/bert-small-mm_retrieval-question_encoder", passage_embedding_model="deepset/bert-small-mm_retrieval-passage_encoder", table_embedding_model="deepset/bert-small-mm_retrieval-table_encoder", - embed_meta_fields=["title", "section_title"], ) ``` @@ -183,7 +175,7 @@ document_store.update_embeddings(retriever=retriever) # Try the Retriever from haystack.utils import print_documents -retrieved_tables = retriever.retrieve("How many twin buildings are under construction?", top_k=5) +retrieved_tables = retriever.retrieve("Who won the Super Bowl?", top_k=5) # Get highest scored table print(retrieved_tables[0].content) ``` @@ -202,9 +194,9 @@ reader = TableReader(model_name_or_path="google/tapas-base-finetuned-wtq", max_s ```python -# Try the TableReader on one Table (highest-scored retrieved table from previous section) +# Try the TableReader on one Table -table_doc = document_store.get_document_by_id("List_of_tallest_twin_buildings_and_structures_in_the_world_1") +table_doc = document_store.get_document_by_id("36964e90-3735-4ba1-8e6a-bec236e88bb2") print(table_doc.content) ``` @@ -212,14 +204,12 @@ print(table_doc.content) ```python from haystack.utils import print_answers -prediction = reader.predict(query="How many twin buildings are under construction?", documents=[table_doc]) +prediction = reader.predict(query="Who played Gregory House in the series House?", documents=[table_doc]) print_answers(prediction, details="all") ``` The offsets in the `offsets_in_document` and `offsets_in_context` field indicate the table cells that the model predicts to be part of the answer. They need to be interpreted on the linearized table, i.e., a flat list containing all of the table cells. -In the `Answer`'s meta field, you can find the aggreagtion operator used to construct the answer (in this case `COUNT`) and the answer cells as strings. - ```python print(f"Predicted answer: {prediction['answers'][0].answer}") @@ -243,34 +233,27 @@ table_qa_pipeline.add_node(component=reader, name="TableReader", inputs=["TableT ```python -prediction = table_qa_pipeline.run("How many twin buildings are under construction?") +prediction = table_qa_pipeline.run("When was Guilty Gear Xrd : Sign released?", params={"top_k": 30}) print_answers(prediction, details="minimum") ``` -# Open-Domain QA on Text and Tables -With haystack, you not only have the possibility to do QA on texts or tables, solely, but you can also use both texts and tables as your source of information. - -To demonstrate this, we add 1,000 sample text passages from the OTT-QA dataset. - ```python -# Add 1,000 text passages from OTT-QA to our document store. +# Add 500 text passages to our document store. -def read_ottqa_texts(filename): +def read_texts(filename): processed_passages = [] with open(filename) as passages: passages = json.load(passages) - for title, content in passages.items(): - title = title[6:] - title = title.replace("_", " ") - document = Document(content=content, content_type="text", meta={"title": title}) + for key, content in passages.items(): + document = Document(content=content, content_type="text", id=key) processed_passages.append(document) return processed_passages -passages = read_ottqa_texts(f"{doc_dir}/ottqa_texts_sample.json") +passages = read_texts(f"{doc_dir}/texts.json") document_store.write_documents(passages, index=document_index) ``` @@ -321,7 +304,7 @@ display.Image("pipeline.png") ```python # Example query whose answer resides in a text passage -predictions = text_table_qa_pipeline.run(query="Who is Aleksandar Trifunovic?") +predictions = text_table_qa_pipeline.run(query="Who was Thomas Alva Edison?") ``` @@ -333,7 +316,7 @@ print_answers(predictions, details="minimum") ```python # Example query whose answer resides in a table -predictions = text_table_qa_pipeline.run(query="What is Cuba's national tree?") +predictions = text_table_qa_pipeline.run(query="Which country does the film Macaroni come from?") ``` @@ -342,6 +325,78 @@ predictions = text_table_qa_pipeline.run(query="What is Cuba's national tree?") print_answers(predictions, details="minimum") ``` +## Evaluation +To evaluate our pipeline, we can use haystack's evaluation feature. We just need to convert our labels into `MultiLabel` objects and the `eval` method will do the rest. + + +```python +from haystack import Label, MultiLabel, Answer + + +def read_labels(filename, tables): + processed_labels = [] + with open(filename) as labels: + labels = json.load(labels) + for table in tables: + if table.id not in labels: + continue + label = labels[table.id] + label = Label( + query=label["query"], + document=table, + is_correct_answer=True, + is_correct_document=True, + answer=Answer(answer=label["answer"]), + origin="gold-label", + ) + processed_labels.append(MultiLabel(labels=[label])) + return processed_labels + + +table_labels = read_labels(f"{doc_dir}/labels.json", tables) +passage_labels = read_labels(f"{doc_dir}/labels.json", passages) +``` + + +```python +eval_results = text_table_qa_pipeline.eval(table_labels + passage_labels, params={"top_k": 10}) +``` + + +```python +# Calculating and printing the evaluation metrics +print(eval_results.calculate_metrics()) +``` + +## Adding tables from PDFs +It can sometimes be hard to provide your data in form of a pandas DataFrame. For this case, we provide the `ParsrConverter` wrapper that can help you to convert, for example, a PDF file into a document that you can index. + + +```python +!docker run -d -p 3001:3001 axarev/parsr +``` + + +```python +!wget https://www.w3.org/WAI/WCAG21/working-examples/pdf-table/table.pdf +``` + + +```python +from haystack.nodes import ParsrConverter + +converter = ParsrConverter() + +docs = converter.convert("table.pdf") + +tables = [doc for doc in docs if doc["content_type"] == "table"] +``` + + +```python +print(tables) +``` + ## About us This [Haystack](https://github.com/deepset-ai/haystack/) notebook was made with love by [deepset](https://deepset.ai/) in Berlin, Germany diff --git a/haystack/nodes/reader/table.py b/haystack/nodes/reader/table.py index 4d343b1a59..8783367eb8 100644 --- a/haystack/nodes/reader/table.py +++ b/haystack/nodes/reader/table.py @@ -370,7 +370,7 @@ def _aggregate_answers(agg_operator: str, answer_cells: List[str]) -> str: else: raise KeyError("unknown aggregator") - return f"{answer_value}{' ' + unit if unit else ''}" + return f"{answer_value}{' ' + unit if unit else ''}" except KeyError as e: if "unknown aggregator" in str(e): diff --git a/haystack/schema.py b/haystack/schema.py index 5cb9cd213b..738e3c7e9d 100644 --- a/haystack/schema.py +++ b/haystack/schema.py @@ -225,7 +225,7 @@ def __repr__(self): def __str__(self): # In some cases, self.content is None (therefore not subscriptable) - if not self.content: + if self.content is None: return f"" return f" 100 else ''}'>" diff --git a/haystack/telemetry.py b/haystack/telemetry.py index 317a95feb5..5471f25348 100644 --- a/haystack/telemetry.py +++ b/haystack/telemetry.py @@ -202,7 +202,7 @@ def send_tutorial_event(url: str): "https://s3.eu-central-1.amazonaws.com/deepset.ai-farm-qa/datasets/documents/wiki_gameofthrones_txt12.zip": "12", # Tutorial 13: no dataset available yet "https://s3.eu-central-1.amazonaws.com/deepset.ai-farm-qa/datasets/documents/wiki_gameofthrones_txt14.zip": "14", - "https://s3.eu-central-1.amazonaws.com/deepset.ai-farm-qa/datasets/documents/ottqa_sample.zip": "15", + "https://s3.eu-central-1.amazonaws.com/deepset.ai-farm-qa/datasets/documents/table_text_dataset.zip": "15", # "https://nlp.stanford.edu/data/glove.6B.zip": "16", "https://s3.eu-central-1.amazonaws.com/deepset.ai-farm-qa/datasets/documents/preprocessing_tutorial16.zip": "16", } diff --git a/tutorials/Tutorial15_TableQA.ipynb b/tutorials/Tutorial15_TableQA.ipynb index a65dc82b23..5df021fb28 100644 --- a/tutorials/Tutorial15_TableQA.ipynb +++ b/tutorials/Tutorial15_TableQA.ipynb @@ -88,7 +88,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { "id": "S4PGj1A6wKWu" }, @@ -134,7 +134,7 @@ }, "source": [ "## Add Tables to DocumentStore\n", - "To quickly demonstrate the capabilities of the `TableTextRetriever` and the `TableReader` we use a subset of 1000 tables of the [Open Table-and-Text Question Answering (OTT-QA) dataset](https://github.com/wenhuchen/OTT-QA).\n", + "To quickly demonstrate the capabilities of the `TableTextRetriever` and the `TableReader` we use a subset of 1000 tables and text documents from a dataset we have published in [this paper](https://arxiv.org/abs/2108.04049).\n", "\n", "Just as text passages, tables are represented as `Document` objects in Haystack. The content field, though, is a pandas DataFrame instead of a string." ] @@ -152,13 +152,13 @@ "from haystack.utils import fetch_archive_from_http\n", "\n", "doc_dir = \"data/tutorial15\"\n", - "s3_url = \"https://s3.eu-central-1.amazonaws.com/deepset.ai-farm-qa/datasets/documents/ottqa_sample.zip\"\n", + "s3_url = \"https://s3.eu-central-1.amazonaws.com/deepset.ai-farm-qa/datasets/documents/table_text_dataset.zip\"\n", "fetch_archive_from_http(url=s3_url, output_dir=doc_dir)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -168,21 +168,30 @@ }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ - " Result ... Score\n", - "0 Winner ... 6-1 , 6-1\n", - "1 Winner ... 6-2 , 4-6 , 6-3\n", - "2 Winner ... 6-2 , 6-2\n", - "3 Runner-up ... 3-6 , 2-6\n", - "4 Winner ... 6-7 , 6-3 , 6-0\n", - "5 Winner ... 6-1 , 6-0\n", - "6 Winner ... 6-2 , 2-6 , 6-2\n", - "7 Winner ... 6-0 , 6-4\n", - "\n", - "[8 rows x 8 columns]\n", - "{'title': 'Rewa Hudson', 'section_title': 'ITF finals ( 7–3 ) -- Doubles ( 7–1 )'}\n" + " Opponent M W L T NR Win% First Last\n", + "0 Afghanistan 2 2 0 0 0 100.0 2012 2014\n", + "1 Australia 98 32 62 1 3 34.21 1975 2017\n", + "2 Bangladesh 35 31 4 0 0 88.57 1986 2015\n", + "3 Canada 2 2 0 0 0 100.0 1979 2011\n", + "4 England 82 31 49 0 2 38.75 1974 2017\n", + "5 Hong Kong 2 2 0 0 0 100.0 2004 2008\n", + "6 India 129 73 52 0 4 58.4 1978 2017\n", + "7 Ireland 7 5 1 1 0 78.57 2007 2016\n", + "8 Kenya 6 6 0 0 0 100.0 1996 2011\n", + "9 Namibia 1 1 0 0 0 100.0 2003 2003\n", + "10 Netherlands 3 3 0 0 0 100.0 1996 2003\n", + "11 New Zealand 103 53 47 1 2 52.97 1973 2018\n", + "12 Scotland 3 3 0 0 0 100.0 1999 2013\n", + "13 South Africa 73 25 47 0 1 34.72 1992 2017\n", + "14 Sri Lanka 153 90 58 1 4 60.73 1975 2017\n", + "15 United Arab Emirates 3 3 0 0 0 100.0 1994 2015\n", + "16 West Indies 133 60 70 3 0 46.24 1975 2017\n", + "17 Zimbabwe 59 52 4 1 2 92.1 1992 2018\n", + "18 Total[12] 894 474 394 8 18 54.56 1973 2018\n", + "{}\n" ] } ], @@ -194,7 +203,7 @@ "import pandas as pd\n", "\n", "\n", - "def read_ottqa_tables(filename):\n", + "def read_tables(filename):\n", " processed_tables = []\n", " with open(filename) as tables:\n", " tables = json.load(tables)\n", @@ -202,20 +211,13 @@ " current_columns = table[\"header\"]\n", " current_rows = table[\"data\"]\n", " current_df = pd.DataFrame(columns=current_columns, data=current_rows)\n", - " current_doc_title = table[\"title\"]\n", - " current_section_title = table[\"section_title\"]\n", - " document = Document(\n", - " content=current_df,\n", - " content_type=\"table\",\n", - " meta={\"title\": current_doc_title, \"section_title\": current_section_title},\n", - " id=key,\n", - " )\n", + " document = Document(content=current_df, content_type=\"table\", id=key)\n", " processed_tables.append(document)\n", "\n", " return processed_tables\n", "\n", "\n", - "tables = read_ottqa_tables(f\"{doc_dir}/ottqa_tables_sample.json\")\n", + "tables = read_tables(f\"{doc_dir}/tables.json\")\n", "document_store.write_documents(tables, index=document_index)\n", "\n", "# Showing content field and meta field of one of the Documents of content_type 'table'\n", @@ -259,7 +261,6 @@ " query_embedding_model=\"deepset/bert-small-mm_retrieval-question_encoder\",\n", " passage_embedding_model=\"deepset/bert-small-mm_retrieval-passage_encoder\",\n", " table_embedding_model=\"deepset/bert-small-mm_retrieval-table_encoder\",\n", - " embed_meta_fields=[\"title\", \"section_title\"],\n", ")" ] }, @@ -277,7 +278,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "id": "XM-ijy6Zz11L" }, @@ -290,7 +291,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -300,32 +301,22 @@ }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ - " Name ... Status\n", - "0 Twin Towers II ... Never built\n", - "1 World Trade Center ... Destroyed\n", - "2 Three Sixty West ... Under construction\n", - "3 Gateway Towers ... Under construction\n", - "4 Rustomjee Crown ... Under construction\n", - "5 Orchid Heights ... On-hold\n", - "6 Hermitage Towers ... Proposed\n", - "7 Lokhandwala Minerva ... Under construction\n", - "8 Lamar Towers ... Under construction\n", - "9 Indonesia One Towers ... Under construction\n", - "10 Sky link ... Approved\n", - "11 Vida Za'abeel ... Proposed\n", - "12 Broadway Corridor Twin Towers ... Never built\n", - "13 India Bulls Sky Forest Tower ... Under construction\n", - "14 Capital Towers ... Under construction\n", - "15 One Avighna Park ... Under construction\n", - "16 NEB Towers ... On hold\n", - "17 The Destiny ( Tower ) ... Under construction\n", - "18 Oberoi Esquire Towers ... Under construction\n", - "19 Bhoomi Celestia ... Under construction\n", - "\n", - "[20 rows x 6 columns]\n" + " Year Coach Super Bowl \\\n", + "0 1966 Vince Lombardi I \n", + "1 1967 Vince Lombardi II \n", + "2 1996 Mike Holmgren XXXI \n", + "3 2010 Mike McCarthy XLV \n", + "4 Total Super Bowls won: Total Super Bowls won: Total Super Bowls won: \n", + "\n", + " Location Opponent Score Record \n", + "0 Los Angeles, California Kansas City Chiefs 35–10 12–2 \n", + "1 Miami, Florida Oakland Raiders 33–14 9–4–1 \n", + "2 New Orleans, Louisiana New England Patriots 35–21 13–3 \n", + "3 Arlington, Texas Pittsburgh Steelers 31–25 10–6 \n", + "4 Total Super Bowls won: Total Super Bowls won: 4 4 \n" ] } ], @@ -333,7 +324,7 @@ "# Try the Retriever\n", "from haystack.utils import print_documents\n", "\n", - "retrieved_tables = retriever.retrieve(\"How many twin buildings are under construction?\", top_k=5)\n", + "retrieved_tables = retriever.retrieve(\"Who won the Super Bowl?\", top_k=5)\n", "# Get highest scored table\n", "print(retrieved_tables[0].content)" ] @@ -365,7 +356,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -375,45 +366,55 @@ }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ - " Name ... Status\n", - "0 Twin Towers II ... Never built\n", - "1 World Trade Center ... Destroyed\n", - "2 Three Sixty West ... Under construction\n", - "3 Gateway Towers ... Under construction\n", - "4 Rustomjee Crown ... Under construction\n", - "5 Orchid Heights ... On-hold\n", - "6 Hermitage Towers ... Proposed\n", - "7 Lokhandwala Minerva ... Under construction\n", - "8 Lamar Towers ... Under construction\n", - "9 Indonesia One Towers ... Under construction\n", - "10 Sky link ... Approved\n", - "11 Vida Za'abeel ... Proposed\n", - "12 Broadway Corridor Twin Towers ... Never built\n", - "13 India Bulls Sky Forest Tower ... Under construction\n", - "14 Capital Towers ... Under construction\n", - "15 One Avighna Park ... Under construction\n", - "16 NEB Towers ... On hold\n", - "17 The Destiny ( Tower ) ... Under construction\n", - "18 Oberoi Esquire Towers ... Under construction\n", - "19 Bhoomi Celestia ... Under construction\n", - "\n", - "[20 rows x 6 columns]\n" + " Name Program Role Salary Year \\\n", + "0 Simon Cowell The X Factor Judge $75 million 2012–13 \n", + "1 Britney Spears American Idol $25 million 2017–18 [15] \n", + "2 Jennifer Lopez $20 million 2011–12 [16] nan \n", + "3 Mariah Carey $18 million 2012–13 [17] nan \n", + "4 Hugh Laurie House Gregory House $15 million 2013 \n", + "5 Ryan Seacrest American Idol Host 2013–16 [14] \n", + "6 Katy Perry The X Factor Judge 2012 [17] \n", + "7 Miley Cyrus The Voice Coach $13 million 2016–17 \n", + "8 Adam Levine 2016–18 [18] nan nan \n", + "9 Blake Shelton 2016–18 [18] nan nan \n", + "10 Christina Aguilera $12.5 million 2013 [19] nan \n", + "11 Kelly Clarkson $12 million 2018 [20] nan \n", + "12 Shakira 2013 [19] nan nan \n", + "13 Gwen Stefani 2017 [21] nan nan \n", + "14 Nicki Minaj American Idol Judge 2012–13 [19] \n", + "\n", + " Ref. \n", + "0 [14] \n", + "1 nan \n", + "2 nan \n", + "3 nan \n", + "4 [14] \n", + "5 nan \n", + "6 nan \n", + "7 [18] \n", + "8 nan \n", + "9 nan \n", + "10 nan \n", + "11 nan \n", + "12 nan \n", + "13 nan \n", + "14 nan \n" ] } ], "source": [ - "# Try the TableReader on one Table (highest-scored retrieved table from previous section)\n", + "# Try the TableReader on one Table\n", "\n", - "table_doc = document_store.get_document_by_id(\"List_of_tallest_twin_buildings_and_structures_in_the_world_1\")\n", + "table_doc = document_store.get_document_by_id(\"36964e90-3735-4ba1-8e6a-bec236e88bb2\")\n", "print(table_doc.content)" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -423,42 +424,52 @@ }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", - "Query: How many twin buildings are under construction?\n", + "Query: Who played Gregory House in the series House?\n", "Answers:\n", - "[ ]\n" + "[ ]\n" ] } ], "source": [ "from haystack.utils import print_answers\n", "\n", - "prediction = reader.predict(query=\"How many twin buildings are under construction?\", documents=[table_doc])\n", + "prediction = reader.predict(query=\"Who played Gregory House in the series House?\", documents=[table_doc])\n", "print_answers(prediction, details=\"all\")" ] }, @@ -468,14 +479,12 @@ "id": "jkAYNMb7R9qu" }, "source": [ - "The offsets in the `offsets_in_document` and `offsets_in_context` field indicate the table cells that the model predicts to be part of the answer. They need to be interpreted on the linearized table, i.e., a flat list containing all of the table cells.\n", - "\n", - "In the `Answer`'s meta field, you can find the aggreagtion operator used to construct the answer (in this case `COUNT`) and the answer cells as strings." + "The offsets in the `offsets_in_document` and `offsets_in_context` field indicate the table cells that the model predicts to be part of the answer. They need to be interpreted on the linearized table, i.e., a flat list containing all of the table cells." ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -485,11 +494,11 @@ }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ - "Predicted answer: 12\n", - "Meta field: {'aggregation_operator': 'COUNT', 'answer_cells': ['Three Sixty West', 'Gateway Towers', 'Rustomjee Crown', 'Lokhandwala Minerva', 'Lamar Towers', 'Indonesia One Towers', 'India Bulls Sky Forest Tower', 'Capital Towers', 'One Avighna Park', 'The Destiny ( Tower )', 'Oberoi Esquire Towers', 'Bhoomi Celestia']}\n" + "Predicted answer: Hugh Laurie\n", + "Meta field: {'aggregation_operator': 'NONE', 'answer_cells': ['Hugh Laurie']}\n" ] } ], @@ -512,7 +521,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 12, "metadata": { "id": "G-aZZvyv4-Mf" }, @@ -528,7 +537,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/" @@ -538,244 +547,1341 @@ }, "outputs": [ { + "name": "stderr", "output_type": "stream", + "text": [ + "/opt/homebrew/lib/python3.9/site-packages/numpy/core/fromnumeric.py:3440: RuntimeWarning: Mean of empty slice.\n", + " return _methods._mean(a, axis=axis, dtype=dtype,\n", + "/opt/homebrew/lib/python3.9/site-packages/numpy/core/_methods.py:189: RuntimeWarning: invalid value encountered in double_scalars\n", + " ret = ret.dtype.type(ret / rcount)\n" + ] + }, + { "name": "stdout", + "output_type": "stream", "text": [ "\n", - "Query: How many twin buildings are under construction?\n", + "Query: When was Guilty Gear Xrd : Sign released?\n", "Answers:\n", - "[ { 'answer': '12',\n", - " 'context': Name ... Status\n", - "0 Twin Towers II ... Never built\n", - "1 World Trade Center ... Destroyed\n", - "2 Three Sixty West ... Under construction\n", - "3 Gateway Towers ... Under construction\n", - "4 Rustomjee Crown ... Under construction\n", - "5 Orchid Heights ... On-hold\n", - "6 Hermitage Towers ... Proposed\n", - "7 Lokhandwala Minerva ... Under construction\n", - "8 Lamar Towers ... Under construction\n", - "9 Indonesia One Towers ... Under construction\n", - "10 Sky link ... Approved\n", - "11 Vida Za'abeel ... Proposed\n", - "12 Broadway Corridor Twin Towers ... Never built\n", - "13 India Bulls Sky Forest Tower ... Under construction\n", - "14 Capital Towers ... Under construction\n", - "15 One Avighna Park ... Under construction\n", - "16 NEB Towers ... On hold\n", - "17 The Destiny ( Tower ) ... Under construction\n", - "18 Oberoi Esquire Towers ... Under construction\n", - "19 Bhoomi Celestia ... Under construction\n", - "\n", - "[20 rows x 6 columns]},\n", - " { 'answer': '7',\n", - " 'context': Building or structure ... Listing\n", - "0 Ford Assembly Plant Building Now Public Storage ... Seattle landmark\n", - "1 Immanuel Lutheran Church ... Seattle landmark NRHP\n", - "2 Jensen Block ... Seattle landmark\n", - "3 Lake Union Steam Plant and Hydro House Now Zymogenetics ... Seattle landmark\n", - "4 New Richmond Laundry Now part of the Alley24 development ... Seattle landmark\n", - "5 St. Spiridon Russian Orthodox Cathedral ... Seattle landmark\n", - "6 Supply Laundry Building Now part of the Stackhouse development ... Seattle landmark NRHP\n", - "\n", - "[7 rows x 3 columns]},\n", - " { 'answer': '8',\n", - " 'context': Years Venue Location\n", - "0 1989 Bamm Hollow Country Club Lincroft , New Jersey\n", - "1 1987-88 Navesink Country Club Middletown , New Jersey\n", - "2 1985-86 Fairmount Country Club Chatham , New Jersey\n", - "3 1983-84 Upper Montclair Country Club Clifton , New Jersey\n", - "4 1982 Wykagyl Country Club New Rochelle , New York\n", - "5 1981 Ridgewood Country Club Paramus , New Jersey\n", - "6 1979-80 Upper Montclair Country Club Clifton , New Jersey\n", - "7 1976-78 Forsgate Country Club Monroe Township , New Jersey},\n", - " { 'answer': '8',\n", - " 'context': Model Specification ... Prime mover Power output\n", - "0 RS-1 E-1641A ... 6-539T 1,000 hp ( 0.75 MW )\n", - "1 RS-2 E-1661 , E-1661A , E-1661B ... 12-244 1,500 hp ( 1.12 MW )\n", - "2 RS-2 E-1661C ... 12-244 1,600 hp ( 1.19 MW )\n", - "3 RS-3 E-1662 , E-1662A , E-1662B ... 12-244 1,600 hp ( 1.19 MW )\n", - "4 RS-11 DL-701 ... 12-251 1,800 hp ( 1.34 MW )\n", - "5 RS-27 DL-640 ... 16-251 2,400 hp ( 1.79 MW )\n", - "6 RS-32 DL-721 ... 12-251 2,000 hp ( 1.49 MW )\n", - "7 RS-36 DL-701XAP ... 12-251 1,800 hp ( 1.34 MW )\n", - "\n", - "[8 rows x 7 columns]},\n", - " { 'answer': '10',\n", - " 'context': Name or designation ... Notes\n", - "0 Aluminum Overcast ... One of only ten flyable B-17s\n", - "1 Avro Lancaster PA474 ... One of only two Lancasters in flying condition in the world\n", - "2 Avro Vulcan XH558 , aka Spirit of Great Britain ... The only Cold War / Falklands War -era Vulcan bomber to fly after 1986 . Res...\n", - "3 Douglas DC-7B N836D ... \n", - "4 Douglas R4D-3 N763A ... Used by the US Navy during World War II . Placed on the National Register of...\n", - "5 FIFI ... One of only two B-29s flying\n", - "6 Glacier Girl ... Forced to land in Greenland in 1942 along with five other P-38s and two B-17...\n", - "7 Hawker Hurricane PZ865 ... Last Hurricane produced . Retained by Hawker Aircraft for trials work . Give...\n", - "8 My Gal Sal ... Forced to land on the Greenland icecap during World War II and abandoned , a...\n", - "9 Piccadilly Lilly II ... Last B-17 to serve in the US Air Force , flying her last mission in 1959 . U...\n", - "10 The Pink Lady ... Only flying B-17 survivor to have seen action in Europe during World War II\n", - "11 Sally B ... Only airworthy B-17 left in Europe . Used in the 1990 film Memphis Belle\n", - "12 Sentimental Journey ... Based at the Commemorative Air Force Museum in Mesa , Arizona , and regularl...\n", - "13 Shoo Shoo Baby ... Crash-landed in Sweden in 1944 . Restored from 1978 to 1988\n", - "14 Swamp Ghost ... Ran out of fuel and crash-landed in a swamp in Papua New Guinea . Recovered ...\n", - "15 Texas Raiders ... Maintained and flown by the Commemorative Air Force ( formerly Confederate A...\n", - "16 Thunderbird ... Housed at the Lone Star Flight Museum in Galveston , Texas\n", - "17 Worry Bird ... Served in World War II and the Korean War before being retired in 1957 and p...\n", - "18 Yankee Lady ... Flyable\n", - "\n", - "[19 rows x 6 columns]},\n", - " { 'answer': '13',\n", - " 'context': N Year Country ... Link Remark K\n", - "0 003+ 2013 INDIA ... LK RK K\n", - "1 005 2006 USA ... LK RK K\n", - "2 010 2014 ZAF ... LK RK K\n", - "3 020 2010 USA ... LK RK K\n", - "4 030 201 ? USA ... LK RK K\n", - "5 040 2007 USA ... LK RK K\n", - "6 042 2004 USA ... LK Only G-S With Large Battery K\n", - "7 050 201 ? USA ... LK RK K\n", - "8 100 20 ? ? USA ... LK RK K\n", - "9 200 20 ? ? USA ... LK RK K\n", - "10 300 2013 EUR ... LK RK K\n", - "11 400 20 ? ? USA ... LK RK K\n", - "12 995 20 ? ? USA ... LK RK K\n", - "\n", - "[13 rows x 12 columns]},\n", - " { 'answer': '5',\n", - " 'context': Team ... Capacity\n", - "0 Barnsley ... 23,009\n", - "1 Blackpool ... 16,750\n", - "2 Bradford City ... 25,136\n", - "3 Burton Albion ... 6,912\n", - "4 Bury ... 11,840\n", - "5 Chesterfield ... 10,400\n", - "6 Colchester United ... 10,105\n", - "7 Coventry City ... 32,500\n", - "8 Crewe Alexandra ... 10,066\n", - "9 Doncaster Rovers ... 15,231\n", - "10 Fleetwood Town ... 5,311\n", - "11 Gillingham ... 11,582\n", - "12 Millwall ... 20,146\n", - "13 Oldham Athletic ... 13,512\n", - "14 Peterborough United ... 14,319\n", - "15 Port Vale ... 18,947\n", - "16 Rochdale ... 10,249\n", - "17 Scunthorpe United ... 9,183\n", - "18 Sheffield United ... 32,702\n", - "19 Shrewsbury Town ... 9,875\n", - "\n", - "[20 rows x 4 columns]},\n", - " { 'answer': '7',\n", - " 'context': Resource Name ... Added\n", - "0 Whitfield Estates-Broughton Street Historic District ... October 29 , 1993\n", - "1 John M. Beasley House ... March 5 , 1996\n", - "2 Whitfield Estates-Lantana Avenue Historic District ... March 8 , 1997\n", - "3 Austin House ... February 5 , 1998\n", - "4 Reid-Woods House ... August 31 , 2000\n", - "5 Villa Serena Apartments ... September 29 , 2000\n", - "6 Paul M. Souder House ... November 2 , 2000\n", - "7 Stevens-Gilchrist House ... August 17 , 2001\n", - "\n", - "[8 rows x 3 columns]},\n", - " { 'answer': '19',\n", - " 'context': Name ( Alternative names in parenthesis ) ... Carries\n", - "0 Arboretum Sewer Trestle ... Sewer and a footpath\n", - "1 Ballard Bridge ( 15th Avenue Bridge ) ... 15th Avenue NW\n", - "2 Cowen Park Bridge ... 15th Avenue NE\n", - "3 First Avenue South Bridge ... State Route 99\n", - "4 Fremont Bridge ( Fremont Avenue Bridge ) ... Road connecting Fremont Avenue N and 4th Avenue N\n", - "5 George Washington Memorial Bridge ( Aurora Bridge ) ... State Route 99\n", - "6 Homer M. Hadley Memorial Bridge ( Third Lake Washington Bridge ) ... Interstate 90\n", - "7 Jeanette Williams Memorial Bridge ( West Seattle Bridge ) ... Road connecting Fauntleroy Way SW and the Spokane Street Viaduct\n", - "8 Jose Rizal Bridge ( 12th Avenue South Bridge ) ... 12th Avenue S and Interstate 90\n", - "9 Lacey V. Murrow Memorial Bridge ... Interstate 90\n", - "10 Magnolia Bridge ... W Garfield Street\n", - "11 Montlake Bridge ... State Route 513\n", - "12 North Queen Anne Drive Bridge ... N Queen Anne Drive\n", - "13 Salmon Bay Bridge ... BNSF Railway\n", - "14 Ship Canal Bridge ... Interstate 5\n", - "15 Schmitz Park Bridge ... SW Admiral Way\n", - "16 Spokane Street Bridge ... SW Spokane Street\n", - "17 SR 520 Albert D. Rosellini Evergreen Point Floating Bridge ( Evergreen Point... ... State Route 520\n", - "18 20th Avenue NE Bridge ( Ravenna Park Bridge ) ... 20th Avenue NE ( pedestrian access only )\n", - "19 University Bridge ... Eastlake Avenue NE\n", - "\n", - "[20 rows x 6 columns]},\n", - " { 'answer': '8',\n", - " 'context': Location ... Comments\n", - "0 Ayr ... Known as Wonderwest World 1988-1998 ; operated as Craig Tara by Haven since ...\n", - "1 Bahamas ... The site is now occupied by a new hotel and marina complex known as Old Baha...\n", - "2 Barry Island ... Operated independently until closure in 1996 . Demolished in 2005\n", - "3 Bognor Regis ... Known as Southcoast World 1987-1998 . Still open as Butlins Bognor Regis\n", - "4 Clacton ... Demolished , now a housing estate . Small area yet to be redeveloped\n", - "5 Filey Holiday Camp ... Operated independently for six weeks in 1986 , but the venture failed and it...\n", - "6 Minehead ... Known as Somerwest World 1986-1998 . Still open as Butlins Minehead 30 April...\n", - "7 Mosney ... Operated independently until closure and conversion into an Irish Government...\n", - "8 Pwllheli ... Known as Starcoast World 1990-1998 ; operated as Hafan Y Mor by Haven since ...\n", - "9 Skegness ... Known as Funcoast World 1987-1998 . Still open as Butlins Skegness\n", - "\n", - "[10 rows x 4 columns]}]\n" + "[ { 'answer': 'December 16 , 2014',\n", + " 'context': Title First release \\\n", + "0 Guilty Gear Xrd : Sign December 16 , 2014 \n", + "1 BlazBlue : Chrono Phantasma Extend June 30 , 2015 \n", + "2 Aegis of Earth : Protonovus Assault March 15 , 2016 \n", + "3 BlazBlue : Central Fiction October 6 , 2016 \n", + "4 Chronicles of Teddy : Harmony of Exidus March 29 , 2016 \n", + "5 Guilty Gear Xrd : Revelator June 7 , 2016 \n", + "6 Exist Archive : The Other Side of the Sky October 18 , 2016 \n", + "7 Guilty Gear Xrd : Rev 2 May 25 , 2017 \n", + "8 Under Night In-Birth Exe : Late [ st ] Late 2017 \n", + "9 School Girl/Zombie Hunter Late 2017 \n", + "10 Tokyo Xanadu eX+ 2017 \n", + "11 Code : Realize ~Bouquet of Rainbows~ 2018 \n", + "12 Death Mark 2018 \n", + "13 NG ( Visual Novel ) 2019 \n", + "\n", + " Developer ( s ) Platform ( s ) \n", + "0 Arc System Works PlayStation 4 \n", + "1 Arc System Works PlayStation 4 \n", + "2 Acquire PlayStation 4 \n", + "3 Arc System Works PlayStation 4 \n", + "4 LookAtMyGame PlayStation 4 ( PSN ) \n", + "5 Arc System Works PlayStation 4 \n", + "6 Spike Chunsoft , tri-Ace PlayStation 4 \n", + "7 Arc System Works PlayStation 4 \n", + "8 Ecole Software , French Bread PlayStation 4 \n", + "9 Tamsoft PlayStation 4 \n", + "10 Falcom PlayStation 4 \n", + "11 Otomate PlayStation 4 \n", + "12 Experience Inc PlayStation 4 \n", + "13 Experience Inc PlayStation 4 },\n", + " { 'answer': 'October 7 , 2008',\n", + " 'context': Title \\\n", + "0 Battle Fantasia \n", + "1 Guilty Gear 2 : Overture \n", + "2 BlazBlue : Calamity Trigger \n", + "3 0-D Beat Drop \n", + "4 Record of Agarest War \n", + "5 DeathSmiles \n", + "6 BlazBlue : Continuum Shift \n", + "7 Record of Agarest War Zero \n", + "8 Bit.Trip Presents ... Runner2 : Future Legend of Rhythm Alien \n", + "9 A.R.E.S : Extinction Agenda EX \n", + "\n", + " First release Developer ( s ) Platform ( s ) \n", + "0 September 16 , 2008 Arc System Works Xbox 360 \n", + "1 October 7 , 2008 Arc System Works Xbox 360 \n", + "2 June 30 , 2009 Arc System Works Xbox 360 \n", + "3 November 11 , 2009 Cyclone Zero Xbox 360 ( XBLA ) \n", + "4 April 27 , 2010 Compile Heart , Red Entertainment Xbox 360 \n", + "5 June 28 , 2010 Cave Xbox 360 \n", + "6 July 27 , 2010 Arc System Works Xbox 360 \n", + "7 June 14 , 2011 Compile Heart , Red Entertainment Xbox 360 \n", + "8 February 27 , 2013 Gaijin Games Xbox 360 ( XBLA ) \n", + "9 October 2 , 2013 Extend Studio Xbox 360 ( XBLA ) },\n", + " { 'answer': 'April 7 , 2009',\n", + " 'context': Title First release \\\n", + "0 Guilty Gear XX Accent Core Plus April 7 , 2009 \n", + "1 BlazBlue : Calamity Trigger Portable February 25 , 2010 \n", + "2 Cho Aniki Zero March 25 , 2010 \n", + "3 Mimana Iyar Chronicle March 30 , 2010 \n", + "4 Gladiator Begins September 14 , 2010 \n", + "5 Blazing Souls Accelate October 19 , 2010 \n", + "6 Jikandia : The Timeless Land March 15 , 2011 \n", + "7 BlazBlue : Continuum Shift II May 31 , 2011 \n", + "8 Fate/Extra November 1 , 2011 \n", + "9 Hakuoki : Demon of the Fleeting Blossom February 14 , 2012 \n", + "10 Hakuoki : Warriors of the Shinsengumi November 6 , 2012 \n", + "11 Ragnarok Tactics February 19 , 2013 \n", + "12 Sweet Fuse : At Your Side August 27 , 2013 \n", + "\n", + " Developer ( s ) \\\n", + "0 Arc System Works \n", + "1 Arc System Works \n", + "2 extreme Co. , Ltd \n", + "3 Kogado Studio , Premium Agency \n", + "4 Goshow \n", + "5 Neverland \n", + "6 Opus Studio Inc \n", + "7 Arc System Works \n", + "8 Type-Moon \n", + "9 Idea Factory , Otomate \n", + "10 Idea Factory \n", + "11 GungHo Online Entertainment , Apollosoft , Chime \n", + "12 Idea Factory , Otomate , Comcept \n", + "\n", + " Platform ( s ) \n", + "0 PlayStation Portable \n", + "1 PlayStation Portable \n", + "2 PlayStation Portable ( PSN ) \n", + "3 PlayStation Portable \n", + "4 PlayStation Portable \n", + "5 PlayStation Portable \n", + "6 PlayStation Portable \n", + "7 PlayStation Portable \n", + "8 PlayStation Portable \n", + "9 PlayStation Portable \n", + "10 PlayStation Portable \n", + "11 PlayStation Portable \n", + "12 PlayStation Portable },\n", + " { 'answer': 'April 7 , 2009',\n", + " 'context': Title First release \\\n", + "0 Guilty Gear XX Accent Core Plus April 7 , 2009 \n", + "1 BlazBlue : Calamity Trigger Portable February 25 , 2010 \n", + "2 Cho Aniki Zero March 25 , 2010 \n", + "3 Mimana Iyar Chronicle March 30 , 2010 \n", + "4 Gladiator Begins September 14 , 2010 \n", + "5 Blazing Souls Accelate October 19 , 2010 \n", + "6 Jikandia : The Timeless Land March 15 , 2011 \n", + "7 BlazBlue : Continuum Shift II May 31 , 2011 \n", + "8 Fate/Extra November 1 , 2011 \n", + "9 Hakuoki : Demon of the Fleeting Blossom February 14 , 2012 \n", + "10 Hakuoki : Warriors of the Shinsengumi November 6 , 2012 \n", + "11 Ragnarok Tactics February 19 , 2013 \n", + "12 Sweet Fuse : At Your Side August 27 , 2013 \n", + "\n", + " Developer ( s ) \\\n", + "0 Arc System Works \n", + "1 Arc System Works \n", + "2 extreme Co. , Ltd \n", + "3 Kogado Studio , Premium Agency \n", + "4 Goshow \n", + "5 Neverland \n", + "6 Opus Studio Inc \n", + "7 Arc System Works \n", + "8 Type-Moon \n", + "9 Idea Factory , Otomate \n", + "10 Idea Factory \n", + "11 GungHo Online Entertainment , Apollosoft , Chime \n", + "12 Idea Factory , Otomate , Comcept \n", + "\n", + " Platform ( s ) \n", + "0 PlayStation Portable \n", + "1 PlayStation Portable \n", + "2 PlayStation Portable ( PSN ) \n", + "3 PlayStation Portable \n", + "4 PlayStation Portable \n", + "5 PlayStation Portable \n", + "6 PlayStation Portable \n", + "7 PlayStation Portable \n", + "8 PlayStation Portable \n", + "9 PlayStation Portable \n", + "10 PlayStation Portable \n", + "11 PlayStation Portable \n", + "12 PlayStation Portable },\n", + " { 'answer': '2010',\n", + " 'context': Title Year Other artist ( s ) \\\n", + "0 Count on You 2010 Big Time Rush \n", + "1 You Got ta Want It 2011 nan \n", + "2 Chocolate Brown Eyes 2013 Salaam Remi \n", + "3 Vertigo 2013 Jason Derulo \n", + "4 Vertigo 2014 Jason Derulo \n", + "5 Playing With Fire 2015 Thomas Rhett \n", + "6 Too Late for Love 2016 DJ Antoine \n", + "7 Water Guns 2016 Todrick Hall \n", + "8 Chasing 2017 Danny Gokey \n", + "\n", + " Album \n", + "0 BTR \n", + "1 Official Gameday Music of the NFL \n", + "2 One in the Chamber \n", + "3 Tattoos \n", + "4 Talk Dirty \n", + "5 Tangled Up \n", + "6 Provocateur \n", + "7 Straight Outta Oz \n", + "8 Rise },\n", + " { 'answer': '2012',\n", + " 'context': Title Year \\\n", + "0 The American Scream 2012 \n", + "1 Dead Souls 2012 \n", + "2 Ghoul 2012 \n", + "3 Beneath 2013 \n", + "4 Chilling Visions : 5 Senses of Fear 2013 \n", + "5 The Monkey 's Paw 2013 \n", + "6 Animal 2014 \n", + "7 Deep in the Darkness 2014 \n", + "8 The Boy 2015 \n", + "9 SiREN 2016 \n", + "10 Camera Obscura 2017 \n", + "11 Dementia 13 2017 \n", + "\n", + " Production Co \n", + "0 Chiller Films Brainstorm Media \n", + "1 Chiller Films Synthetic Productions \n", + "2 Chiller Films Modernciné \n", + "3 Glass Eye Pix \n", + "4 Chiller Films Synthetic Cinema International \n", + "5 TMP Films \n", + "6 Flower Films Synthetic Cinema International \n", + "7 Chiller Films Synthetic Cinema International \n", + "8 SpectreVision \n", + "9 Studio71 \n", + "10 Chiller Films Hood River Entertainment Paper Street Pictures \n", + "11 Pipeline Entertainment Haloran LLC },\n", + " { 'answer': 'November 15 , 2007',\n", + " 'context': Title First release \\\n", + "0 Hooked ! Real Motion Fishing October 30 , 2007 \n", + "1 Guilty Gear XX Accent Core November 15 , 2007 \n", + "2 MiniCopter : Adventure Flight April 11 , 2008 \n", + "3 River City Ransom April 21 , 2008 \n", + "4 Double Dragon April 28 , 2008 \n", + "5 Renegade May 5 , 2008 \n", + "6 Castle of Shikigami III May 13 , 2008 \n", + "7 Family Table Tennis May 26 , 2008 \n", + "8 Super Dodge Ball September 22 , 2008 \n", + "9 Family Glide Hockey January 19 , 2009 \n", + "10 Bit.Trip Beat March 16 , 2009 \n", + "11 Family Pirate Party May 11 , 2009 \n", + "12 Guilty Gear XX Accent Core Plus May 12 , 2009 \n", + "13 Family Mini Golf June 22 , 2009 \n", + "14 Bit.Trip Core July 6 , 2009 \n", + "15 Family Slot Car Racing August 17 , 2009 \n", + "16 Crash ' n the Boys : Street Challenge September 14 , 2009 \n", + "17 Family Tennis September 21 , 2009 \n", + "18 Family Card Games November 2 , 2009 \n", + "19 Hooked ! Again : Real Motion Fishing November 3 , 2009 \n", + "\n", + " Developer ( s ) Platform ( s ) \n", + "0 SIMS Wii \n", + "1 Arc System Works Wii \n", + "2 Sonic Powered Wii \n", + "3 Technos Wii ( Virtual Console ) \n", + "4 Technos Wii ( Virtual Console ) \n", + "5 Technos Wii ( Virtual Console ) \n", + "6 Alfa System Wii \n", + "7 Arc System Works Wii ( WiiWare ) \n", + "8 Technos Wii ( Virtual Console ) \n", + "9 Arc System Works Wii ( WiiWare ) \n", + "10 Gaijin Games Wii ( WiiWare ) \n", + "11 Arc System Works Wii ( WiiWare ) \n", + "12 Arc System Works Wii \n", + "13 Arc System Works Wii ( WiiWare ) \n", + "14 Gaijin Games Wii ( WiiWare ) \n", + "15 Arc System Works Wii ( WiiWare ) \n", + "16 Technos Wii ( Virtual Console ) \n", + "17 Arc System Works Wii ( WiiWare ) \n", + "18 Arc System Works Wii ( WiiWare ) \n", + "19 SIMS Co. , Ltd Wii },\n", + " { 'answer': '',\n", + " 'context': Game Publisher Release Date \\\n", + "0 Super Mario 64 Nintendo September 26 , 1996 \n", + "1 Wipeout XL/2097 Psygnosis September 30 , 1996 \n", + "2 Quake GT Interactive June 22 , 1996 \n", + "3 Civilization II MicroProse February 29 , 1996 \n", + "4 Tekken 2 Namco August 25 , 1996 \n", + "5 Wave Race 64 Nintendo November 1 , 1996 \n", + "6 Realms of the Haunting Interplay December 31 , 1996 \n", + "7 Tomb Raider Eidos Interactive October 25 , 1996 \n", + "8 Resident Evil Capcom March 30 , 1996 \n", + "9 Command & Conquer : Red Alert Virgin November 22 , 1996 \n", + "10 Dragon Force Sega November 30 , 1996 \n", + "11 Guardian Heroes Sega January 25 , 1996 \n", + "12 Super Mario RPG Nintendo March 9 , 1996 \n", + "13 Duke Nukem 3D GT Interactive January 29 , 1996 \n", + "14 NiGHTS into Dreams Sega July 5 , 1996 \n", + "15 Pilotwings 64 Nintendo September 26 , 1996 \n", + "16 Panzer Dragoon II Zwei Sega March 22 , 1996 \n", + "\n", + " Platform ( s ) MC score GR score \n", + "0 Nintendo 64 94/100 96.41% \n", + "1 PlayStation 93/100 94.75% \n", + "2 DOS 94/100 93.22% \n", + "3 Microsoft Windows 94/100 91.29% \n", + "4 PlayStation 89/100 92.50% \n", + "5 Nintendo 64 92/100 90.67% \n", + "6 Microsoft Windows nan 91.86% \n", + "7 PlayStation 91/100 90.02% \n", + "8 PlayStation 91/100 87.23% \n", + "9 DOS 90/100 90.91% \n", + "10 Sega Saturn nan 89.64% \n", + "11 Sega Saturn nan 89.20% \n", + "12 SNES nan 89.12% \n", + "13 DOS 89/100 88.50% \n", + "14 Sega Saturn nan 88.56% \n", + "15 Nintendo 64 80/100 87.52% \n", + "16 Sega Saturn nan 87.50% },\n", + " { 'answer': '',\n", + " 'context': Game Publisher Release Date \\\n", + "0 Super Mario 64 Nintendo September 26 , 1996 \n", + "1 Wipeout XL/2097 Psygnosis September 30 , 1996 \n", + "2 Quake GT Interactive June 22 , 1996 \n", + "3 Civilization II MicroProse February 29 , 1996 \n", + "4 Tekken 2 Namco August 25 , 1996 \n", + "5 Wave Race 64 Nintendo November 1 , 1996 \n", + "6 Realms of the Haunting Interplay December 31 , 1996 \n", + "7 Tomb Raider Eidos Interactive October 25 , 1996 \n", + "8 Resident Evil Capcom March 30 , 1996 \n", + "9 Command & Conquer : Red Alert Virgin November 22 , 1996 \n", + "10 Dragon Force Sega November 30 , 1996 \n", + "11 Guardian Heroes Sega January 25 , 1996 \n", + "12 Super Mario RPG Nintendo March 9 , 1996 \n", + "13 Duke Nukem 3D GT Interactive January 29 , 1996 \n", + "14 NiGHTS into Dreams Sega July 5 , 1996 \n", + "15 Pilotwings 64 Nintendo September 26 , 1996 \n", + "16 Panzer Dragoon II Zwei Sega March 22 , 1996 \n", + "\n", + " Platform ( s ) MC score GR score \n", + "0 Nintendo 64 94/100 96.41% \n", + "1 PlayStation 93/100 94.75% \n", + "2 DOS 94/100 93.22% \n", + "3 Microsoft Windows 94/100 91.29% \n", + "4 PlayStation 89/100 92.50% \n", + "5 Nintendo 64 92/100 90.67% \n", + "6 Microsoft Windows nan 91.86% \n", + "7 PlayStation 91/100 90.02% \n", + "8 PlayStation 91/100 87.23% \n", + "9 DOS 90/100 90.91% \n", + "10 Sega Saturn nan 89.64% \n", + "11 Sega Saturn nan 89.20% \n", + "12 SNES nan 89.12% \n", + "13 DOS 89/100 88.50% \n", + "14 Sega Saturn nan 88.56% \n", + "15 Nintendo 64 80/100 87.52% \n", + "16 Sega Saturn nan 87.50% },\n", + " { 'answer': 'April\\xa026,\\xa02018',\n", + " 'context': No. overall No. in season Title Directed by \\\n", + "0 45 1 The Conscience Code\"\" Russell Lee Fine \n", + "1 46 2 Fear and Flesh\"\" Alexandra Kalymnios \n", + "2 47 3 Hell's Gate\"\" Constantine Makris \n", + "3 48 4 Spy Games\"\" Kevin Sullivan \n", + "4 49 5 The Blood of Romeo\"\" David McWhirter \n", + "5 50 6 The Heavens Fall\"\" Russell Lee Fine \n", + "6 51 7 Bullet Train\"[10]\" Rob Bowman \n", + "7 52 8 Deep Cover\"[10]\" Jim McKay \n", + "8 53 9 Fear Feargach\"[10]\" P. J. Pesce \n", + "9 54 10 No Place Is Home\"[10]\" Kenneth Fink \n", + "10 55 11 The Art of War\"[10]\" Jennifer Phang \n", + "11 56 12 Ghosts\"[10]\" Russell Lee Fine \n", + "12 57 13 Who Are You?\"[10]\" Russell Lee Fine \n", + "\n", + " Written by Original air date [3] \\\n", + "0 Michael Seitzman April 26, 2018 \n", + "1 Dave Kalstein May 3, 2018 \n", + "2 Tom Mularz May 10, 2018 \n", + "3 Julia Cohen May 25, 2018 \n", + "4 Adam Armus June 1, 2018 \n", + "5 Michael Brandon Guercio June 15, 2018 \n", + "6 Tom Mularz & Gideon Yago June 22, 2018 \n", + "7 Cole Maliska & Joe Webb June 29, 2018 \n", + "8 Dave Kalstein & Matthew Klam July 6, 2018 \n", + "9 Gisselle Legere & Julia Cohen July 13, 2018 \n", + "10 Adam Armus & Tom Mularz July 20, 2018 \n", + "11 Julia Cohen & Matthew Klam July 27, 2018 \n", + "12 Dave Kalstein & Michael Seitzman August 3, 2018 \n", + "\n", + " U.S. viewers (millions) \n", + "0 2.66[4] \n", + "1 2.15[5] \n", + "2 1.97[6] \n", + "3 2.62[7] \n", + "4 2.99[8] \n", + "5 2.56[9] \n", + "6 TBD \n", + "7 TBD \n", + "8 TBD \n", + "9 TBD \n", + "10 TBD \n", + "11 TBD \n", + "12 TBD },\n", + " { 'answer': \"Don't Push It\",\n", + " 'context': Position Name Rider Age Weight Starting price \\\n", + "0 1st Don't Push It Tony McCoy 10 11-05 10/1 JF \n", + "1 2nd Black Apalachi Denis O'Regan 11 11-06 14/1 \n", + "2 3rd State of Play Paul Moloney 10 10-11 16/1 \n", + "3 4th Big Fella Thanks Barry Geraghty 8 10-12 10/1 JF \n", + "4 5th Hello Bud Sam Twiston-Davies 12 10-06 20/1 \n", + "5 6th Snowy Morning David Casey 10 10-13 14/1 \n", + "6 7th Character Building Nina Carberry 10 10-11 16/1 \n", + "7 8th Cloudy Lane Jason Maguire 10 11-03 25/1 \n", + "8 9th Tricky Trickster Richard Johnson 7 11-04 16/1 \n", + "9 10th Joe Lively Joe Tizzard 11 11-06 33/1 \n", + "10 11th Cerium Davy Russell 9 10-06 50/1 \n", + "11 12th Comply or Die Timmy Murphy 11 10-05 12/1 \n", + "12 13th Piraya Johnny Farrelly 7 10-07 100/1 \n", + "\n", + " Distance Prize money \n", + "0 Winner by 5 lengths £521,052 \n", + "1 5 lengths £196,285 \n", + "2 20 lengths £98,235 \n", + "3 3 lengths £49,117 \n", + "4 7 lengths £24,605 \n", + "5 1½ lengths £12,302 \n", + "6 Neck £6,105 \n", + "7 12 lengths £3,145 \n", + "8 ¾ length Nil \n", + "9 Short head Nil \n", + "10 A distance Nil \n", + "11 8 lengths Nil \n", + "12 A distance Nil },\n", + " { 'answer': '5 June 2009',\n", + " 'context': Episode First broadcast Seans team \\\n", + "0 8x01 5 June 2009 Johnny Vegas and Alex Zane \n", + "1 8x02 12 June 2009 Jeremy Clarkson and James McQuillan \n", + "2 8x03 19 June 2009 Josie Long and Jamelia \n", + "3 8x04 26 June 2009 Tom Felton and Richard E. Grant \n", + "4 8x05 3 July 2009 Yvette Fielding and David Walliams \n", + "5 8x06 10 July 2009 Reginald D. Hunter and Kelly Osbourne \n", + "6 8x07 17 July 2009 Kevin Bridges and Patrick Kielty \n", + "\n", + " Jasons team Scores \n", + "0 Ulrika Jonsson and Jack Whitehall 5–5 \n", + "1 David Walliams and Holly Walsh 2–7 \n", + "2 Mark Watson and Claudia Winkleman 4–4 \n", + "3 Alan Cumming and Lauren Laverne 4–2 \n", + "4 Reginald D. Hunter and Phil Spencer 5–4 \n", + "5 Terry Christian and Isy Suttie 4–6 \n", + "6 Rhod Gilbert and Shappi Khorsandi 3–7 },\n", + " { 'answer': '2017',\n", + " 'context': Year Title Role \\\n", + "0 2017 Mass Effect : Andromeda Various \n", + "1 2017 Lone Echo Hera \n", + "2 2017 Madden NFL 18 : Longshot Various \n", + "3 2017 FIFA 18 Beatriz Villanova \n", + "4 2017 Puzzle Fighter Additional Voices \n", + "5 2017 Need for Speed Payback Additional Voices \n", + "6 2018 Dragalia Lost Corsaint Phoenix / Kristy \n", + "7 2018 FIFA 19 Beatriz Villanova \n", + "8 2019 Crackdown 3 Additional Voices \n", + "9 2019 Anthem Princess Zhim \n", + "10 2019 FIFA 20 Beatriz Villanova \n", + "\n", + " Notes \n", + "0 Performance Capture Actor \n", + "1 Voice acting \n", + "2 Motion capture actor \n", + "3 Voice acting \n", + "4 nan \n", + "5 nan \n", + "6 Voice acting \n", + "7 Voice acting \n", + "8 nan \n", + "9 Voice acting \n", + "10 Voice acting },\n", + " { 'answer': '2017',\n", + " 'context': Year Title Role \\\n", + "0 2017 Mass Effect : Andromeda Various \n", + "1 2017 Lone Echo Hera \n", + "2 2017 Madden NFL 18 : Longshot Various \n", + "3 2017 FIFA 18 Beatriz Villanova \n", + "4 2017 Puzzle Fighter Additional Voices \n", + "5 2017 Need for Speed Payback Additional Voices \n", + "6 2018 Dragalia Lost Corsaint Phoenix / Kristy \n", + "7 2018 FIFA 19 Beatriz Villanova \n", + "8 2019 Crackdown 3 Additional Voices \n", + "9 2019 Anthem Princess Zhim \n", + "10 2019 FIFA 20 Beatriz Villanova \n", + "\n", + " Notes \n", + "0 Performance Capture Actor \n", + "1 Voice acting \n", + "2 Motion capture actor \n", + "3 Voice acting \n", + "4 nan \n", + "5 nan \n", + "6 Voice acting \n", + "7 Voice acting \n", + "8 nan \n", + "9 Voice acting \n", + "10 Voice acting },\n", + " { 'answer': '7 May 2013 (hardcover)',\n", + " 'context': # Title Publisher \\\n", + "0 1 Dead Until Dark Ace Books \n", + "1 2 Living Dead in Dallas Ace Books \n", + "2 3 Club Dead Ace Books \n", + "3 4 Dead to the World Ace Hardcover \n", + "4 5 Dead as a Doornail Ace Hardcover \n", + "5 6 Definitely Dead Ace Hardcover \n", + "6 7 All Together Dead Ace Hardcover \n", + "7 8 From Dead to Worse Ace Hardcover \n", + "8 9 Dead and Gone Ace Hardcover \n", + "9 10 Dead in the Family Ace Hardcover \n", + "10 11 Dead Reckoning Ace Hardcover \n", + "11 12 Deadlocked Ace Hardcover \n", + "12 13 Dead Ever After Ace Hardcover \n", + "\n", + " Release Length \\\n", + "0 May 2001 (paperback) January 2008 (hardcover) 291 pp \n", + "1 April 2002 (paperback) January 2009 (hardcover) 291 pp \n", + "2 May 2003 (paperback) March 2010 (hardcover) 292 pp \n", + "3 May 2004 (hardcover) May 2005 (paperback) 291 pp \n", + "4 May 2005 (hardcover) April 2006 (paperback) 295 pp \n", + "5 May 2006 (hardcover) March 2007 (paperback) 324 pp \n", + "6 May 2007 (hardcover) March 2008 (paperback) 336 pp \n", + "7 May 2008 (hardcover) March 2009 (paperback) 359 pp \n", + "8 May 2009 (hardcover) April 2010 (paperback) 312 pp \n", + "9 May 2010 (hardcover) March 2011 (paperback) 311 pp \n", + "10 May 2011 (hardcover) March 2012 (paperback) 325 pp \n", + "11 May 2012 (hardcover) March 2013 (paperback) 336 pp \n", + "12 7 May 2013 (hardcover) 352 pp \n", + "\n", + " Hardcover Paperback \n", + "0 ISBN 0-441-01597-2 ISBN 0-441-00853-4 \n", + "1 ISBN 0-441-01673-1 ISBN 0-441-00923-9 \n", + "2 ISBN 0-441-01910-2 ISBN 0-441-01051-2 \n", + "3 ISBN 0-441-01167-5 ISBN 0-441-01218-3 \n", + "4 ISBN 0-441-01279-5 ISBN 0-441-01333-3 \n", + "5 ISBN 0-441-01400-3 ISBN 0-441-01491-7 \n", + "6 ISBN 0-441-01494-1 ISBN 0-441-01581-6 \n", + "7 ISBN 0-441-01589-1 ISBN 0-441-01701-0 \n", + "8 ISBN 0-441-01715-0 ISBN 0-441-01851-3 \n", + "9 ISBN 0-441-01864-5 ISBN 0-441-02015-1 \n", + "10 ISBN 0-441-02031-3 ISBN 0-441-02060-7 \n", + "11 ISBN 1-937007-44-8 ISBN 0-425-25638-3 \n", + "12 ISBN 193700788X ISBN n/a },\n", + " { 'answer': '2',\n", + " 'context': Pos Artist \\\n", + "0 1 Daniel Lavoie , Patrick Fiori & Garou \n", + "1 2 Manau \n", + "2 3 Céline Dion \n", + "3 4 Lââm \n", + "4 5 Nomads \n", + "5 6 Hermes House Band \n", + "6 7 Brandy & Monica \n", + "7 8 Ménélik & Imane D \n", + "8 9 Ricky Martin \n", + "9 10 Des'ree \n", + "\n", + " Title Sales* \n", + "0 Belle 2,221,000 \n", + "1 La Tribu de Dana 1,415,000 \n", + "2 My Heart Will Go On 1,197,000 \n", + "3 Chanter pour ceux qui sont loin de chez eux 963,000 \n", + "4 Yakalelo 846,000 \n", + "5 I Will Survive 812,000 \n", + "6 The Boy Is Mine 662,000 \n", + "7 Bye bye 613,000 \n", + "8 La Copa De La Vida 563,000 \n", + "9 Life 555,000 },\n", + " { 'answer': '2005',\n", + " 'context': Year Title \\\n", + "0 2005 Kiss Kiss Bang Bang \n", + "1 2006 Bambi II \n", + "2 2006 Curious George \n", + "3 2006 Ice Age: The Meltdown \n", + "4 2006 Over the Hedge \n", + "5 2006 Grilled \n", + "6 2008 One Missed Call \n", + "7 2008 Horton Hears a Who! \n", + "8 2008 Speed Racer \n", + "9 2009 Tales from the Catholic Church of Elvis! \n", + "10 2009 Final Fantasy VII: Advent Children Complete \n", + "11 2009 Life Is Hot in Cracktown \n", + "12 2009 Duress \n", + "13 2009 Opposite Day \n", + "14 2009 Cloudy with a Chance of Meatballs \n", + "15 2009 Afro Samurai: Resurrection \n", + "16 2010 Killers \n", + "17 2010 Nic & Tristan Go Mega Dega \n", + "18 2010 DC Showcase: Green Arrow \n", + "19 2011 Chaperone, TheThe Chaperone \n", + "20 2011 Phineas and Ferb: Across the 2nd Dimension \n", + "21 2011 Fred 2: Night of the Living Fred \n", + "22 2012 Excision \n", + "23 2012 ParaNorman \n", + "24 2012/13 Batman: The Dark Knight Returns – Parts 1 & 2 \n", + "25 2012 Sofia the First: Once Upon a Princess \n", + "26 2013 Dora the Explorer and the Destiny Medallion \n", + "27 2013 Scooby-Doo! Stage Fright \n", + "28 2013 Sofia the First: The Floating Palace \n", + "29 2013 Tad, The Lost Explorer \n", + "30 2014 Mr. Peabody & Sherman \n", + "31 2015 Safelight \n", + "32 2016 Elena and the Secret of Avalor \n", + "33 2017 Smurfs: The Lost Village \n", + "34 2017 The Last Movie Star \n", + "\n", + " Role \\\n", + "0 Young Harmony Faith Lane \n", + "1 Thumper's sister \n", + "2 Kid \n", + "3 Various characters \n", + "4 Additional voices \n", + "5 Dolly \n", + "6 Ellie Layton \n", + "7 Various characters \n", + "8 Young Trixie Shimura \n", + "9 Little girl \n", + "10 Marlene Wallace \n", + "11 Suzie \n", + "12 Sarah Barnett \n", + "13 Carla Benson \n", + "14 Various characters \n", + "15 Young Sio \n", + "16 Sadie \n", + "17 Lisa \n", + "18 Princess Perdita \n", + "19 Sally \n", + "20 Gretchen / Various characters \n", + "21 Talia \n", + "22 Grace \n", + "23 Blithe Hollow – kid \n", + "24 Carrie Kelley/Robin (voice) \n", + "25 Sofia \n", + "26 Dora \n", + "27 Chrissy Damon \n", + "28 Sofia \n", + "29 Sara Lavrof \n", + "30 Penny Peterson \n", + "31 Kate \n", + "32 Sofia \n", + "33 Smurf Lily \n", + "34 Lil \n", + "\n", + " Notes \n", + "0 nan \n", + "1 Voice role \n", + "2 Voice role \n", + "3 Voice role \n", + "4 Voice role \n", + "5 nan \n", + "6 nan \n", + "7 Voice role \n", + "8 nan \n", + "9 nan \n", + "10 Voice role \n", + "11 nan \n", + "12 nan \n", + "13 nan \n", + "14 Voice role \n", + "15 Voice role \n", + "16 nan \n", + "17 nan \n", + "18 Voice role \n", + "19 nan \n", + "20 Voice role \n", + "21 nan \n", + "22 nan \n", + "23 Voice role \n", + "24 Direct-to-video; originally released separately \n", + "25 Voice role \n", + "26 YouTube short film series by CollegeHumor \n", + "27 Voice role \n", + "28 Voice role \n", + "29 Voice role \n", + "30 Voice role \n", + "31 nan \n", + "32 Voice role \n", + "33 Voice role \n", + "34 nan },\n", + " { 'answer': '2',\n", + " 'context': Number Album Artist \\\n", + "0 1 Tha Carter IV Lil Wayne \n", + "1 2 Take Care Drake \n", + "2 3 Watch the Throne Jay-Z & Kanye West \n", + "3 4 Thug Motivation 103 : Hustlerz Ambition Young Jeezy \n", + "4 5 Cole World : The Sideline Story J. Cole \n", + "5 6 Lasers Lupe Fiasco \n", + "6 7 Rolling Papers Wiz Khalifa \n", + "7 8 Hell : The Sequel Bad Meets Evil \n", + "8 9 Ambition Wale \n", + "9 10 Blue Slide Park Mac Miller \n", + "\n", + " 1st-week sales 1st-week position \n", + "0 964,000 1 \n", + "1 631,000 1 \n", + "2 436,000 1 \n", + "3 233,000 3 \n", + "4 217,000 1 \n", + "5 204,000 1 \n", + "6 197,000 2 \n", + "7 171,000 1 \n", + "8 164,000 2 \n", + "9 144,000 1 },\n", + " { 'answer': '15 April 2005',\n", + " 'context': Release date Release title Country Publisher \\\n", + "0 1 January 2000 Martial Law: Shanghai Express Hong Kong Deltamac (HK) \n", + "1 15 April 2005 Martial Law: Diamond Fever Hong Kong Deltamac (HK) \n", + "2 15 April 2005 Martial Law: Dead Ringers Hong Kong Deltamac (HK) \n", + "3 15 April 2005 Martial Law: Funny Money Hong Kong Deltamac (HK) \n", + "4 15 April 2005 Martial Law: Extreme Mesures Hong Kong Deltamac (HK) \n", + "5 15 April 2005 Martial Law: Trackdown Hong Kong Deltamac (HK) \n", + "6 15 April 2005 Martial Law: Take Out Hong Kong Deltamac (HK) \n", + "7 15 April 2005 Martial Law: Lock-Up Hong Kong Deltamac (HK) \n", + "8 15 April 2005 Martial Law: Substitutes Hong Kong Deltamac (HK) \n", + "9 15 April 2005 Martial Law: Trifecta Hong Kong Deltamac (HK) \n", + "10 15 April 2005 Martial Law Collection Hong Kong Deltamac (HK) \n", + "\n", + " Format Language Subtitles Notes \n", + "0 NTSC English Traditional Chinese 1 VCD \n", + "1 NTSC English Traditional Chinese 1 VCD \n", + "2 NTSC English Traditional Chinese 1 VCD \n", + "3 NTSC English Traditional Chinese 1 VCD \n", + "4 NTSC English Traditional Chinese 1 VCD \n", + "5 NTSC English Traditional Chinese 1 VCD \n", + "6 NTSC English Traditional Chinese 1 VCD \n", + "7 NTSC English Traditional Chinese 1 VCD \n", + "8 NTSC English Traditional Chinese 1 VCD \n", + "9 NTSC English Traditional Chinese 1 VCD \n", + "10 NTSC English Traditional Chinese 10 VCD's },\n", + " { 'answer': '15 April 2005',\n", + " 'context': Release date Release title Country Publisher \\\n", + "0 1 January 2000 Martial Law: Shanghai Express Hong Kong Deltamac (HK) \n", + "1 15 April 2005 Martial Law: Diamond Fever Hong Kong Deltamac (HK) \n", + "2 15 April 2005 Martial Law: Dead Ringers Hong Kong Deltamac (HK) \n", + "3 15 April 2005 Martial Law: Funny Money Hong Kong Deltamac (HK) \n", + "4 15 April 2005 Martial Law: Extreme Mesures Hong Kong Deltamac (HK) \n", + "5 15 April 2005 Martial Law: Trackdown Hong Kong Deltamac (HK) \n", + "6 15 April 2005 Martial Law: Take Out Hong Kong Deltamac (HK) \n", + "7 15 April 2005 Martial Law: Lock-Up Hong Kong Deltamac (HK) \n", + "8 15 April 2005 Martial Law: Substitutes Hong Kong Deltamac (HK) \n", + "9 15 April 2005 Martial Law: Trifecta Hong Kong Deltamac (HK) \n", + "10 15 April 2005 Martial Law Collection Hong Kong Deltamac (HK) \n", + "\n", + " Format Language Subtitles Notes \n", + "0 NTSC English Traditional Chinese 1 VCD \n", + "1 NTSC English Traditional Chinese 1 VCD \n", + "2 NTSC English Traditional Chinese 1 VCD \n", + "3 NTSC English Traditional Chinese 1 VCD \n", + "4 NTSC English Traditional Chinese 1 VCD \n", + "5 NTSC English Traditional Chinese 1 VCD \n", + "6 NTSC English Traditional Chinese 1 VCD \n", + "7 NTSC English Traditional Chinese 1 VCD \n", + "8 NTSC English Traditional Chinese 1 VCD \n", + "9 NTSC English Traditional Chinese 1 VCD \n", + "10 NTSC English Traditional Chinese 10 VCD's },\n", + " { 'answer': '1991',\n", + " 'context': Year Film Song \\\n", + "0 1991 House Party 2 Ai n't Gon na Hurt Nobody \n", + "1 1991 Nothing But Trouble Same Song \n", + "2 1994 Above the Rim Regulate \n", + "3 1994 Street Fighter Something Kinda Funky \n", + "4 1995 Friday Keep Their Heads Ringin \n", + "5 1999 Office Space Shove This Jay-Oh-Bee \n", + "6 2001 The Wash Bad Intentions \n", + "7 2002 8 Mile Lose Yourself \n", + "8 2002 Like Mike Basketball \n", + "9 2002 Like Mike Take Ya Home \n", + "10 2003 2 Fast 2 Furious Act a Fool \n", + "\n", + " Artist \n", + "0 Kid ' n Play \n", + "1 Digital Underground ft. 2Pac \n", + "2 Warren G ft. Nate Dogg \n", + "3 Rally Ral \n", + "4 Dr. Dre \n", + "5 Canibus and Biz Markie \n", + "6 Dr. Dre ft. Knoc-turn'al \n", + "7 Eminem \n", + "8 Lil ' Bow Wow ft. Fundisha , Jermaine Dupri , and Fabolous \n", + "9 Lil ' Bow Wow \n", + "10 Ludacris },\n", + " { 'answer': '1987 1988 1989',\n", + " 'context': Title Year \\\n", + "0 Bomber King / RoboWarrior 1987 1988 1989 \n", + "1 Bomber King : Scenario 2 / Blaster Master Boy/Jr 1991 1992 \n", + "2 Bomberman : Panic Bomber 1994 1995 \n", + "3 Bomberman B-Daman 1996 \n", + "4 Atomic Bomberman 1997 \n", + "5 Bomberman Wars 1998 \n", + "6 Bomberman Fantasy Race 1998 1999 2000 \n", + "7 Bomberman B-Daman Bakugaiden : The Road to Victory 1999 \n", + "8 Bomberman B-Daman Bakugaiden V : Final Mega Tune 2000 \n", + "9 Bomberman Kart 2001 2003 \n", + "10 Bomberman Jetters : The Legendary Bomberman 2002 \n", + "11 Bomberman Jetters 2002 2004 \n", + "12 Bomberman Jetters Game Collection 2003 \n", + "13 DreamMix TV World Fighters 2003 \n", + "14 BoBomberman 2004 \n", + "15 Bomberman Battles / Bomberman Hardball 2004 2005 \n", + "16 Bomberman : Bakufuu Sentai Bombermen 2006 \n", + "17 Bomberman : Act Zero 2006 \n", + "18 Bomberman : Disney Stitch Edition 2010 \n", + "19 Bomberman : Chains 2011 \n", + "\n", + " Platforms \\\n", + "0 Famicom / NES , MSX \n", + "1 Game Boy \n", + "2 PC Engine CD , Neo Geo , Super Famicom , NEC PC-9821 , FM Towns , Sharp X680... \n", + "3 Super Famicom \n", + "4 PC ( Windows ) \n", + "5 PlayStation , Sega Saturn \n", + "6 PlayStation \n", + "7 Game Boy Color \n", + "8 Game Boy Color \n", + "9 PlayStation 2 \n", + "10 Game Boy Advance \n", + "11 GameCube , PlayStation 2 \n", + "12 Game Boy Advance \n", + "13 GameCube , PlayStation 2 \n", + "14 Game Boy Advance \n", + "15 PlayStation 2 \n", + "16 PlayStation Portable \n", + "17 Xbox 360 \n", + "18 Mobile Phone \n", + "19 iOS \n", + "\n", + " Notes \n", + "0 Released outside Japan under the name RoboWarrior ; Bomberman-like progressi... \n", + "1 Sequel to Bomber King ; slightly altered and released by Sunsoft in America ... \n", + "2 Puzzle game , similar to Puyo Puyo and Tetris ; all versions except for Neo ... \n", + "3 Japan-only , part of the B-Daman series \n", + "4 10-player support through IPX networking ; first Bomberman title for Windows... \n", + "5 Japan-only release ; tactical role-playing game ( TRPG ) \n", + "6 Racing game \n", + "7 Japan-only release ; based on the anime series , Bomberman B-Daman Bakugaide... \n", + "8 Japan-only release ; based on the anime series , Bomberman B-Daman Bakugaide... \n", + "9 Released in Japan and PAL regions only ; kart racing game \n", + "10 Japan-only release ; based on the anime series , Bomberman Jetters \n", + "11 PS2 release was Japan-only ; based on the Bomberman Jetters anime series \n", + "12 Japan-only release ; based on the anime series , Bomberman Jetters \n", + "13 Released in Japan only ; crossover fighting game featuring Bomberman as a pl... \n", + "14 Minigame based on the NES version of Bomberman , but using characters from t... \n", + "15 Released in Japan and PAL regions only ; sports and party game \n", + "16 Japan-only release \n", + "17 Realistic re-envisioning of the character \n", + "18 A Bomberman Game based on the anime Stitch ! \n", + "19 Puzzle game , similar to Bejeweled },\n", + " { 'answer': '2010',\n", + " 'context': Year Journalists \\\n", + "0 2010 Dwayne Grant ( Gold Coast Publications ) \n", + "1 2011 Leanne West ( Network Ten ) \n", + "2 2012 Stathi Paxinos ( Fairfax Media ) \n", + "3 2013 Mike Dalton ( Nine Network ) \n", + "4 2014 Emma Greenwood ( Gold Coast Bulletin ) \n", + "5 2015 Amanda Shalala ( ABC Radio Grandstand ) \n", + "6 2016 Seven Network \n", + "7 2017 Jim Callinan ( Sky News Australia ) \n", + "8 2018 Matt Carmichael ( Seven Network ) \n", + "9 2019 Australian Broadcasting Corporation \n", + "\n", + " Story Title \n", + "0 Never Say Never \n", + "1 David and Michelle \n", + "2 London Paralympic Games \n", + "3 Special Olympics Junior Games \n", + "4 He who dares lives \n", + "5 Grandstand para-sport profiles \n", + "6 ' Rio 2016 Paralympic Games ' \n", + "7 Oz Day 10K Wheelchair Road Race ' \n", + "8 2018 Winter Paralympics and 2018 Commonwealth Games \n", + "9 2018 Invictus Games },\n", + " { 'answer': 'January 31',\n", + " 'context': Release Title System \\\n", + "0 January 25 Guardian Heroes Sat \n", + "1 January 26 Mystaria : The Realms of Lore Sat \n", + "2 January 29 Duke Nukem 3D DOS \n", + "3 January 31 Mega Man X3 SNES \n", + "4 February 9 Bahamut Lagoon SNES \n", + "5 February 23 Front Mission : Gun Hazard SNES \n", + "6 February 27 Pokémon Red and Green GB \n", + "7 February 29 Civilization II Win \n", + "8 February 29 Ripper ( video game ) DOS \n", + "9 February 29 Rise 2 : Resurrection Win , Sat , PS1 \n", + "10 February 29 Terra Nova : Strike Force Centauri DOS \n", + "11 February 29 Zork : Nemesis Win \n", + "12 March 9 Super Mario RPG SNES \n", + "13 March 21 Kirby Super Star SNES \n", + "14 March 22 Resident Evil PS1 \n", + "15 March 22 Panzer Dragoon II Zwei Sat \n", + "16 March 29 Dragon Ball Z : Hyper Dimension SNES \n", + "17 April 20 Barbie Fashion Designer Win \n", + "18 April 26 Jumping Flash ! 2 PS1 \n", + "19 April 26 The Legend of Oasis Sat \n", + "\n", + " Developer / Publisher \\\n", + "0 Treasure / Sega \n", + "1 Micro Cabin / Sega \n", + "2 3D Realms / GT Interactive \n", + "3 Capcom \n", + "4 SquareSoft \n", + "5 SquareSoft \n", + "6 Nintendo \n", + "7 MicroProse \n", + "8 Take Two Interactive \n", + "9 Mirage / Acclaim \n", + "10 Looking Glass Studios \n", + "11 Activision \n", + "12 SquareSoft/Nintendo \n", + "13 HAL Labs / Nintendo \n", + "14 Capcom \n", + "15 Team Andromeda / Sega \n", + "16 TOSE / Bandai \n", + "17 Digital Domain / Mattel Media \n", + "18 Exact / SCEA \n", + "19 Sega / Ancient \n", + "\n", + " Notes \n", + "0 a beat-em-up game developed by Treasure \n", + "1 a tactical RPG \n", + "2 a popular first person shooter \n", + "3 third X installment in popular Mega Man franchise \n", + "4 Tactical RPG spin-off in the Final Fantasy series , before Final Fantasy Tac... \n", + "5 Sequel to strategy Super Famicom RPG Front Mission \n", + "6 launched a wildly popular game series \n", + "7 acclaimed sequel to the highly influential 1991 4X game \n", + "8 Interactive movie , Point-and-click adventure Single Player game \n", + "9 the sequel to the fighting game , Rise of the Robots \n", + "10 critically acclaimed FPS \n", + "11 11th game in the Zork series , employing 360-degree views of environment \n", + "12 beginning of the long-running series of Mario RPGs \n", + "13 considered to be one of the best games in the Kirby franchise \n", + "14 one of the foundational games in the survival horror genre , for a time it h... \n", + "15 an acclaimed rail shooter \n", + "16 the last Super Famicom game in the Dragon Ball Z franchise \n", + "17 The game 's strong sales sparked a renewed interest in developing games targ... \n", + "18 Sequel to the first true 3D platformer \n", + "19 Prequel to the Genesis Zelda-style action game Beyond Oasis },\n", + " { 'answer': '2009',\n", + " 'context': Song Title Album ( s ) / Single ( s ) \\\n", + "0 A Feast For Me Pipes & Flowers \n", + "1 A Little Over Zero Asile 's World / Dancing \n", + "2 A Prayer Lotus \n", + "3 Anche Se Non Trovi Le Parole Heart \n", + "4 And All I Need Heart \n", + "5 Asile 's World Asile 's World \n", + "6 Beautiful Night Lotus \n", + "7 Bitter Words Pearl Days \n", + "8 Broken Lotus / Dancing \n", + "9 Chameleon Asile 's World \n", + "10 City Lights Pearl Days / Dancing \n", + "11 Coincidences Heart \n", + "12 Come & Sit Asile 's World \n", + "13 Come Speak To Me Asile 's World \n", + "14 Creature Asile 's World \n", + "15 Cure Me Pipes & Flowers \n", + "16 Dancing Then Comes the Sun / Dancing \n", + "17 Dot in the Universe Heart \n", + "18 Eppure sentire ( Un senso di te ) Soundtrack '96-'06 \n", + "19 Electricity Lotus \n", + "\n", + " First Released \n", + "0 2002 \n", + "1 2000 \n", + "2 2003 \n", + "3 2009 \n", + "4 2009 \n", + "5 2000 \n", + "6 2003 \n", + "7 2004 \n", + "8 2003 \n", + "9 2000 \n", + "10 2004 \n", + "11 2009 \n", + "12 2000 \n", + "13 2001 \n", + "14 2000 \n", + "15 1997 \n", + "16 2002 \n", + "17 2009 \n", + "18 2006 \n", + "19 2003 },\n", + " { 'answer': 'Windows:NA: October 17, 2006 EU: October 20, 2006 Mac OS '\n", + " 'X:November 6, 2006',\n", + " 'context': Name \\\n", + "0 University \n", + "1 Nightlife \n", + "2 Open for Business \n", + "3 Pets \n", + "4 Seasons \n", + "5 Bon Voyage \n", + "6 FreeTime \n", + "7 Apartment Life \n", + "\n", + " Release date \\\n", + "0 Windows:NA: March 1, 2005 EU: March 2, 2005 Mac OS X:December 12, 2005 \n", + "1 Windows:NA: September 13, 2005 EU: September 13, 2005 Mac OS X:March 27, 2006 \n", + "2 Windows:NA: March 2, 2006 EU: March 2, 2006 Mac OS X:September 4, 2006 \n", + "3 Windows:NA: October 17, 2006 EU: October 20, 2006 Mac OS X:November 6, 2006 \n", + "4 Windows:NA: March 1, 2007 EU: March 2, 2007 Mac OS X:June 11, 2007 \n", + "5 Windows:NA: September 4, 2007 EU: September 7, 2007 Mac OS X:December 17, 2007 \n", + "6 Windows:NA: February 26, 2008 EU: February 22, 2008 \n", + "7 Windows:NA: August 27, 2008EU: August 29, 2008 \n", + "\n", + " Major Additions \\\n", + "0 Universities, Young Adult age group, Influence system \n", + "1 Dates, Groups system, Outings, Pleasure and Grilled Cheese aspiration, New r... \n", + "2 Businesses, talent badges \n", + "3 Ownable Pets \n", + "4 Weather system, Seasons, fishing, new talent badges,gardening \n", + "5 Vacations in different cultural areas \n", + "6 Hobby system, lifetime aspiration system, new talent badges. \n", + "7 Rentable apartments, reputation system, witchcraft system \n", + "\n", + " Neighborhoods \\\n", + "0 Campus:La Fiesta Tech,Sim State University,Académie Le Tour \n", + "1 Downtown:Downtown \n", + "2 Shopping District:Bluewater Village \n", + "3 None \n", + "4 Main:Riverblossom Hills \n", + "5 Vacation:Twikkii Island,Three Lakes,Takemizu Village \n", + "6 Main: Desiderata Valley Secret:Hobby \n", + "7 Main:Belladonna Cove[53]Secret:The Magical World \n", + "\n", + " New NPCs \\\n", + "0 Barista, Bartender,Cafeteria Worker,Cheerleader,Coach, Evil Mascot, Mascot,P... \n", + "1 Gypsy Matchmaker,Waiter, Chef,Bartender, DJ,Mrs. Crumplebottom,Vampires (Cou... \n", + "2 Reporters,Barbers \n", + "3 Animal Control Officers,Obedience Trainer,Wolves, Skunks \n", + "4 Garden Club Members,Penguins \n", + "5 Fire Dancers,Hotel Maids,Bellboys, Masseurs,Wise Old Man,Pirate, Tour Guides... \n", + "6 Hobby Members,Rod Humble,Hobby Leaders,Food Judge,Genie \n", + "7 Butler, Landlord,Roomies,Breakdancers,Street Performers,Social Group Sims,Hi... \n", + "\n", + " New Lifestate/Creature \\\n", + "0 Zombies (Also in FreeTime and Apartment Life) \n", + "1 Vampires \n", + "2 Servos (Robots) \n", + "3 Werewolves \n", + "4 PlantSims \n", + "5 Bigfoot \n", + "6 Genie (Only NPC) \n", + "7 Witches, Warlocks \n", + "\n", + " New Careers \n", + "0 Natural Scientist, Paranormal,Show Business, Artist \n", + "1 None \n", + "2 Shop Employees \n", + "3 Pet careers:Security,Showbiz,Service \n", + "4 Adventurer,Education,Gamer,Journalism,Law, Music \n", + "5 None \n", + "6 Oceanography,Intelligence,Entertainment,Dance,Architecture \n", + "7 None },\n", + " { 'answer': '2 December 1978',\n", + " 'context': Album \\\n", + "0 Please Please Me \n", + "1 With the Beatles \n", + "2 A Hard Day 's Night \n", + "3 Beatles for Sale \n", + "4 Help ! \n", + "5 Rubber Soul \n", + "6 Revolver \n", + "7 Sgt . Pepper 's Lonely Hearts Club Band \n", + "8 The Beatles ( White Album ) \n", + "9 Yellow Submarine \n", + "10 Abbey Road \n", + "11 Let It Be \n", + "12 Rarities \n", + "\n", + " Label \\\n", + "0 Parlophone Records PCS 3042 \n", + "1 Parlophone Records PCS 3045 \n", + "2 Parlophone Records PCS 3058 \n", + "3 Parlophone Records PCS 3062 \n", + "4 Parlophone Records PCS 3071 \n", + "5 Parlophone Records PCS 3075 \n", + "6 Parlophone Records PCS 7009 \n", + "7 Parlophone Records PCS 7027 \n", + "8 Apple Records PCS 7067/8 \n", + "9 Apple Records PCS 7070 \n", + "10 Apple Records PCS 7088 \n", + "11 Apple Records PCS 7096 \n", + "12 Parlophone Records PSLP 261 ( British editions ) Capitol SPRO-8969 ( US edit... \n", + "\n", + " Release date \n", + "0 22 March 1963 \n", + "1 22 November 1963 \n", + "2 10 July 1964 \n", + "3 4 December 1964 \n", + "4 6 August 1965 \n", + "5 3 December 1965 \n", + "6 5 August 1966 \n", + "7 1 June 1967 \n", + "8 22 November 1968 \n", + "9 17 January 1969 \n", + "10 26 September 1969 \n", + "11 8 May 1970 \n", + "12 2 December 1978 },\n", + " { 'answer': '2 December 1978',\n", + " 'context': Album \\\n", + "0 Please Please Me \n", + "1 With the Beatles \n", + "2 A Hard Day 's Night \n", + "3 Beatles for Sale \n", + "4 Help ! \n", + "5 Rubber Soul \n", + "6 Revolver \n", + "7 Sgt . Pepper 's Lonely Hearts Club Band \n", + "8 The Beatles ( White Album ) \n", + "9 Yellow Submarine \n", + "10 Abbey Road \n", + "11 Let It Be \n", + "12 Rarities \n", + "\n", + " Label \\\n", + "0 Parlophone Records PCS 3042 \n", + "1 Parlophone Records PCS 3045 \n", + "2 Parlophone Records PCS 3058 \n", + "3 Parlophone Records PCS 3062 \n", + "4 Parlophone Records PCS 3071 \n", + "5 Parlophone Records PCS 3075 \n", + "6 Parlophone Records PCS 7009 \n", + "7 Parlophone Records PCS 7027 \n", + "8 Apple Records PCS 7067/8 \n", + "9 Apple Records PCS 7070 \n", + "10 Apple Records PCS 7088 \n", + "11 Apple Records PCS 7096 \n", + "12 Parlophone Records PSLP 261 ( British editions ) Capitol SPRO-8969 ( US edit... \n", + "\n", + " Release date \n", + "0 22 March 1963 \n", + "1 22 November 1963 \n", + "2 10 July 1964 \n", + "3 4 December 1964 \n", + "4 6 August 1965 \n", + "5 3 December 1965 \n", + "6 5 August 1966 \n", + "7 1 June 1967 \n", + "8 22 November 1968 \n", + "9 17 January 1969 \n", + "10 26 September 1969 \n", + "11 8 May 1970 \n", + "12 2 December 1978 },\n", + " { 'answer': 'October22,2004',\n", + " 'context': Series # Season # Title Directed by \\\n", + "0 44 1 Psychic Eye for the Sloppy Guy Rich Correll \n", + "1 45 2 Stark Raven Mad Marc Warren \n", + "2 46 3 Opportunity Shocks Rich Correll \n", + "3 47 4 Taken to the Cleaners Rich Correll \n", + "4 48 5 Five Finger Discount Rich Correll \n", + "5 49 6 Sweeps Sean McNamara \n", + "6 50 7 Double Vision T'Keyah Crystal Keymáh \n", + "7 51 8 Bend It Like Baxter Rich Correll \n", + "8 52 9 The Big Buzz Eric Dean Seaton \n", + "9 53 10 True Colors Christopher B. Pearman \n", + "10 54 11 Dog Day Aftergroom KC Lynn De Stefano \n", + "11 55 12 Royal Treatment Christopher B. Pearman \n", + "12 56 13 Art Breaker Gregory Hobson \n", + "13 57 14 Boyz 'N Commotion Debbie Allen \n", + "14 58 15 Gettin' Outta Dodge Rich Correll \n", + "15 59 16 On Top of Old Oakey John Tracy \n", + "16 60 17 They Work Hard for His Honey Eric Dean Seaton \n", + "17 61 18 Mind Your Own Business Eric Dean Seaton \n", + "18 62 19 Hizzouse Party Rich Correll \n", + "19 63 20 Mismatch Maker Fred Savage \n", + "20 65 22 When in Dome Marc Warren \n", + "21 66 23 Too Much Pressure Rich Correll \n", + "22 67 24 Extreme Cory Rich Correll \n", + "23 68 25 The Grill Next Door Sean McNamara \n", + "24 69 26 Point of No Return Sean McNamara \n", + "25 72 29 Food for Thought Rich Correll \n", + "26 73 30 Mr. Perfect Rich Correll \n", + "27 74 31 Goin' Hollywood Rich Correll \n", + "28 75 32 Save the Last Dance Sean McNamara \n", + "29 76 33 Cake Fear Rondell Sheridan \n", + "30 77 34 Vision Impossible Marc Warren \n", + "\n", + " Written by Original air date Prod. code \\\n", + "0 Marc Warren October1,2004 301 \n", + "1 Sarah Jane Cunningham & Suzie V. Freeman October22,2004 304 \n", + "2 Dava Savel November5,2004 309 \n", + "3 Michael Feldman November19,2004 313 \n", + "4 Dennis Rinsler December3,2004 302 \n", + "5 Dennis Rinsler December11,2004 311 \n", + "6 Sarah Jane Cunningham & Suzie V. Freeman December17,2004 318 \n", + "7 Dava Savel January7,2005 315 \n", + "8 Marc Warren January28,2005 322 \n", + "9 Michael Carrington February4,2005 303 \n", + "10 Theresa Akana & Stacee Comage February11,2005 317 \n", + "11 Sarah Jane Cunningham & Suzie V. Freeman February18,2005 310 \n", + "12 Josh Lynn & Danny Warren February25,2005 308 \n", + "13 Theresa Akana & Stacee Comage March11,2005 306 \n", + "14 Edward C. Evans April8,2005 319 \n", + "15 Michael Feldman April22,2005 305 \n", + "16 Edward C. Evans April29,2005 307 \n", + "17 Dennis Rinsler May13,2005 327 \n", + "18 Michael Carrington June13,2005 312 \n", + "19 Edward C. Evans June14,2005 325 \n", + "20 Sarah Jane Cunningham & Suzie V. Freeman June16,2005 328 \n", + "21 Dava Savel June17,2005 323 \n", + "22 Theresa Akana & Stacee Comage July8,2005 326 \n", + "23 Michael Feldman July8,2005 324 \n", + "24 Edward C. Evans July23,2005 330 \n", + "25 Marc Warren September18,2005 316 \n", + "26 Michael Carrington October7,2005 329 \n", + "27 Dennis Rinsler & Marc Warren November4,2005 333 \n", + "28 Marc Warren November25,2005 334 \n", + "29 Theresa Akana & Stacee Comage December16,2005 332 \n", + "30 David Brookwell & Sean McNamara January6,2006 335 \n", + "\n", + " U.S. viewers (millions) \n", + "0 4.8 \n", + "1 4.5 \n", + "2 4.5 \n", + "3 3.7 \n", + "4 3.1 \n", + "5 2.6 \n", + "6 5.5 \n", + "7 4.0 \n", + "8 2.17 \n", + "9 3.3 \n", + "10 2.4 \n", + "11 2.7 \n", + "12 3.5 \n", + "13 4.8 \n", + "14 2.1 \n", + "15 2.3 \n", + "16 4.2 \n", + "17 4.4 \n", + "18 5.1 \n", + "19 4.3 \n", + "20 4.7 \n", + "21 4.4 \n", + "22 3.8 \n", + "23 4.23 \n", + "24 6.0 \n", + "25 3.4 \n", + "26 3.0 \n", + "27 3.7 \n", + "28 3.3 \n", + "29 3.6 \n", + "30 4.7 },\n", + " { 'answer': '1990',\n", + " 'context': Year Title \\\n", + "0 1990 Psycho IV : The Beginning \n", + "1 1992 A Taste for Killing \n", + "2 1995 Indictment : The McMartin Trial \n", + "3 1996 Riders of the Purple Sage \n", + "4 1998 Moby Dick \n", + "5 1999 Happy Face Murders \n", + "6 2005 Masters of Horror \n", + "7 2006 Stephen King 's Desperation \n", + "8 2006 Nightmares & Dreamscapes : From the Stories of Stephen King \n", + "9 2007-08 Without a Trace \n", + "10 2009 CSI : Crime Scene Investigation \n", + "11 2011 The Mentalist \n", + "12 2013-14 Betrayal \n", + "13 2015 Sons of Liberty \n", + "14 2016 Law & Order : Special Victims Unit \n", + "15 2017 Better Things \n", + "16 2018-present The Haunting of Hill House \n", + "17 2018 Girl in the Bunker \n", + "18 2020 FBI : Most Wanted \n", + "19 2020 Stargirl \n", + "\n", + " Role \\\n", + "0 Young Norman Bates \n", + "1 Cary Sloan \n", + "2 Ray Buckey \n", + "3 Bern Venters \n", + "4 Ishmael \n", + "5 Dylan McCarthy \n", + "6 Jamie \n", + "7 Peter Jackson \n", + "8 Robert Fornoy \n", + "9 Franklin Romar \n", + "10 Jeremy Kent \n", + "11 Thomas Lisbon \n", + "12 T.J. Karsten \n", + "13 John Adams \n", + "14 Sean Roberts \n", + "15 Robin \n", + "16 Young Hugh Crain ( season 1 ) TBA ( season 2 ) \n", + "17 Vinson Filyaw \n", + "18 Dr. Justin Brock \n", + "19 Charles McNider / Doctor Mid-Nite \n", + "\n", + " Notes \n", + "0 Television film \n", + "1 Television film \n", + "2 Television film \n", + "3 Television film \n", + "4 Miniseries \n", + "5 Television film \n", + "6 Episode : Chocolate \n", + "7 Television film \n", + "8 Episode : The End of the Whole Mess \n", + "9 2 episodes \n", + "10 Episode : If I Had a Hammer \n", + "11 Episode : Where in the World is Carmine O'Brien ? \n", + "12 13 episodes \n", + "13 Miniseries \n", + "14 Episode : Making a Rapist \n", + "15 4 episodes \n", + "16 Series regular , first and second season \n", + "17 Television film \n", + "18 Episode : Dopesick \n", + "19 Recurring role }]\n" ] } ], "source": [ - "prediction = table_qa_pipeline.run(\"How many twin buildings are under construction?\")\n", + "prediction = table_qa_pipeline.run(\"When was Guilty Gear Xrd : Sign released?\", params={\"top_k\": 30})\n", "print_answers(prediction, details=\"minimum\")" ] }, - { - "cell_type": "markdown", - "source": [ - "# Open-Domain QA on Text and Tables\n", - "With haystack, you not only have the possibility to do QA on texts or tables, solely, but you can also use both texts and tables as your source of information.\n", - "\n", - "To demonstrate this, we add 1,000 sample text passages from the OTT-QA dataset." - ], - "metadata": { - "id": "8uMzl9Ml_D1B" - } - }, { "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "4CBcIjIq_uFx" + }, + "outputs": [], "source": [ - "# Add 1,000 text passages from OTT-QA to our document store.\n", + "# Add 500 text passages to our document store.\n", "\n", "\n", - "def read_ottqa_texts(filename):\n", + "def read_texts(filename):\n", " processed_passages = []\n", " with open(filename) as passages:\n", " passages = json.load(passages)\n", - " for title, content in passages.items():\n", - " title = title[6:]\n", - " title = title.replace(\"_\", \" \")\n", - " document = Document(content=content, content_type=\"text\", meta={\"title\": title})\n", + " for key, content in passages.items():\n", + " document = Document(content=content, content_type=\"text\", id=key)\n", " processed_passages.append(document)\n", "\n", " return processed_passages\n", "\n", "\n", - "passages = read_ottqa_texts(f\"{doc_dir}/ottqa_texts_sample.json\")\n", + "passages = read_texts(f\"{doc_dir}/texts.json\")\n", "document_store.write_documents(passages, index=document_index)" - ], - "metadata": { - "id": "4CBcIjIq_uFx" - }, - "execution_count": 18, - "outputs": [] + ] }, { "cell_type": "code", - "source": [ - "document_store.update_embeddings(retriever=retriever, update_existing_embeddings=False)" - ], + "execution_count": null, "metadata": { "id": "j1TaNF7SiKgH" }, - "execution_count": null, - "outputs": [] + "outputs": [], + "source": [ + "document_store.update_embeddings(retriever=retriever, update_existing_embeddings=False)" + ] }, { "cell_type": "markdown", + "metadata": { + "id": "c2sk_uNHj0DY" + }, "source": [ "## Pipeline for QA on Combination of Text and Tables\n", "We are using one node for retrieving both texts and tables, the `TableTextRetriever`. In order to do question-answering on the Documents coming from the `TableTextRetriever`, we need to route Documents of type `\"text\"` to a `FARMReader` (or alternatively `TransformersReader`) and Documents of type `\"table\"` to a `TableReader`.\n", @@ -783,13 +1889,15 @@ "To achieve this, we make use of two additional nodes:\n", "- `SplitDocumentList`: Splits the List of Documents retrieved by the `TableTextRetriever` into two lists containing only Documents of type `\"text\"` or `\"table\"`, respectively.\n", "- `JoinAnswers`: Takes Answers coming from two different Readers (in this case `FARMReader` and `TableReader`) and joins them to a single list of Answers." - ], - "metadata": { - "id": "c2sk_uNHj0DY" - } + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Ej_j8Q3wlxXE" + }, + "outputs": [], "source": [ "from haystack.nodes import FARMReader, RouteDocuments, JoinAnswers\n", "\n", @@ -800,15 +1908,15 @@ "table_reader = TableReader(\"deepset/tapas-large-nq-hn-reader\")\n", "route_documents = RouteDocuments()\n", "join_answers = JoinAnswers()" - ], - "metadata": { - "id": "Ej_j8Q3wlxXE" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "code", + "execution_count": 17, + "metadata": { + "id": "Zdq6JnF5m3aP" + }, + "outputs": [], "source": [ "text_table_qa_pipeline = Pipeline()\n", "text_table_qa_pipeline.add_node(component=retriever, name=\"TableTextRetriever\", inputs=[\"Query\"])\n", @@ -816,501 +1924,1268 @@ "text_table_qa_pipeline.add_node(component=text_reader, name=\"TextReader\", inputs=[\"RouteDocuments.output_1\"])\n", "text_table_qa_pipeline.add_node(component=table_reader, name=\"TableReader\", inputs=[\"RouteDocuments.output_2\"])\n", "text_table_qa_pipeline.add_node(component=join_answers, name=\"JoinAnswers\", inputs=[\"TextReader\", \"TableReader\"])" - ], - "metadata": { - "id": "Zdq6JnF5m3aP" - }, - "execution_count": 21, - "outputs": [] + ] }, { "cell_type": "code", - "source": [ - "# Let's have a look on the structure of the combined Table an Text QA pipeline.\n", - "from IPython import display\n", - "\n", - "text_table_qa_pipeline.draw()\n", - "display.Image(\"pipeline.png\")" - ], + "execution_count": 18, "metadata": { - "id": "K4vH1ZEnniut", - "outputId": "85aa17a8-227d-40e4-c8c0-5d0532faa47a", "colab": { "base_uri": "https://localhost:8080/", "height": 540 - } + }, + "id": "K4vH1ZEnniut", + "outputId": "85aa17a8-227d-40e4-c8c0-5d0532faa47a" }, - "execution_count": 22, "outputs": [ { - "output_type": "execute_result", "data": { - "image/png": "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\n", + "image/png": "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hre3N4KDgxEfH4/Fixc3+srp4+ODvXv3YvPmzfD29m60etLS0rB9+3Zs27YN7du3b7R6nlffdfFV3zGPx1P1cnTmzBmEhYXB2dkZH330kdo8tXndulUbtq7WxOPxsHXrVnTp0gXbt2+vvZ21tv1Ca2tr+uabbxpv3/QVajvsqJaUlETvvfcenT17lmJjY6l79+7UqVMnKigooPz8fJo5cyYBoKlTpxIRUUZGBunr69PJkydJqVTSlStXaMqUKQSATp48SWfPnlWV3bp1a7XDCoVCQRMmTCAAdPTo0TrHQUS0YMECGjhwIOXl5VFISAjxeDxau3at6v2FhYU0fPhw8vb2pqdPn9KePXtIR0dH7bDiVXXs2bOHWrduTQBo9+7d5OzsTADo2rVrDfMlvMayZctee3j3try9valNmzacXnL1qnXxdd/x9OnTydbWlr799lvq16+fqpeT6nWT6NmtpHjhEPh16xYRW1fra968eeTo6FjbSzUvg3n48GGTB/i8V610I0aMUPuCg4ODCQB99913RPTs2rUBAwaQRCKh9PR0+vLLL+nIkSNqZfj4+BCAGleNt27dmtq1a0e7d++m1atXk6OjI/Xt25cOHjxY7ziMjY1pzZo1qtcdHR2pX79+queff/45jR8/Xq3McePGqa1Ur6tj5cqVqpWKiOjevXtN1sXVlStXCECjdlXk4eFBc+bMabTy6+JV6+LrvuPp06eTRCKhiIgIInp2Y7+npycBoJCQECKqPQG+7nsnYutqfZ07d44A1NYVX1CNQ+D79+8DeNYeokmysrIQGhqKXr16qQaTLikpgaurK0pLSwE8a5v4888/4eTkhPfeew+jR4/GhAkT6lyHSCRC586dceLECcTHx+PUqVM1LneoSxynTp1C165dAQAREREgItXZuZycHPj5+WHTpk1q5fbs2RPBwcF1rqO6l+ePP/4YAGBvb1/nz/m2qteN+/fv13rI1RASExMxefLkRim7IbzqO65mbm4ONzc3AICuri7mzJmjGv5hxIgRNcqsy/deja2rdVd9Bcu9e/dqXCpUIwFWB21gYNAEodVddWJetmzZK8cIsbOzww8//IAFCxZgyZIl9apDX18fHh4e6NatG6KiovDJJ58gLi5ObYS5usTh4eGBo0eP4siRIxg1ahRsbW3x6NEjAMDt27chl8trjFr3fHtQXerg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", "text/plain": [ "" ] }, + "execution_count": 18, "metadata": {}, - "execution_count": 22 + "output_type": "execute_result" } + ], + "source": [ + "# Let's have a look on the structure of the combined Table an Text QA pipeline.\n", + "from IPython import display\n", + "\n", + "text_table_qa_pipeline.draw()\n", + "display.Image(\"pipeline.png\")" ] }, { "cell_type": "code", - "source": [ - "# Example query whose answer resides in a text passage\n", - "predictions = text_table_qa_pipeline.run(query=\"Who is Aleksandar Trifunovic?\")" - ], + "execution_count": null, "metadata": { "id": "strPNduPoBLe" }, - "execution_count": null, - "outputs": [] + "outputs": [], + "source": [ + "# Example query whose answer resides in a text passage\n", + "predictions = text_table_qa_pipeline.run(query=\"Who was Thomas Alva Edison?\")" + ] }, { "cell_type": "code", - "source": [ - "# We can see both text passages and tables as contexts of the predicted answers.\n", - "print_answers(predictions, details=\"minimum\")" - ], + "execution_count": 20, "metadata": { - "id": "9YiK75tSoOGA", - "outputId": "bd52f841-3846-441f-dd6f-53b02111691e", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "9YiK75tSoOGA", + "outputId": "bd52f841-3846-441f-dd6f-53b02111691e" }, - "execution_count": 24, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", - "Query: Who is Aleksandar Trifunovic?\n", + "Query: Who was Thomas Alva Edison?\n", "Answers:\n", - "[ { 'answer': 'a Serbian professional basketball coach and former player',\n", - " 'context': 'Aleksandar Trifunović ( ; born 30 May 1967 ) is a Serbian '\n", - " 'professional basketball coach and former player .'},\n", - " { 'answer': 'Johnny Höglin',\n", - " 'context': Rank Athlete Country Time\n", - "0 1 Kees Verkerk Netherlands 2:03.4\n", - "1 2 Ivar Eriksen Norway 2:05.0\n", - "2 3 Ard Schenk Netherlands 2:05.0\n", - "3 4 Magne Thomassen Norway 2:05.1\n", - "4 5 Johnny Höglin Sweden 2:05.2\n", - "5 5 Bjørn Tveter Norway 2:05.2\n", - "6 7 Svein-Erik Stiansen Norway 2:05.5\n", - "7 8 Eduard Matusevich Soviet Union 2:06.1\n", - "8 9 Peter Nottet Netherlands 2:06.3\n", - "9 10 Örjan Sandler Sweden 2:07.0\n", - "10 11 Aleksandr Kerchenko Soviet Union 2:07.1\n", - "11 12 Ants Antson Soviet Union 2:07.2\n", - "12 12 Valery Kaplan Soviet Union 2:07.2\n", - "13 14 Jouko Launonen Finland 2:07.5\n", - "14 15 Günter Traub West Germany 2:07.7\n", - "15 16 Jan Bols Netherlands 2:07.8\n", - "16 16 Manne Lavås Sweden 2:07.8\n", - "17 18 Kimmo Koskinen Finland 2:07.9\n", - "18 19 Richard Wurster United States 2:08.4\n", - "19 20 Göran Claeson Sweden 2:08.6},\n", - " { 'answer': 'Ivar Eriksen',\n", - " 'context': Rank Athlete Country Time\n", - "0 1 Kees Verkerk Netherlands 2:03.4\n", - "1 2 Ivar Eriksen Norway 2:05.0\n", - "2 3 Ard Schenk Netherlands 2:05.0\n", - "3 4 Magne Thomassen Norway 2:05.1\n", - "4 5 Johnny Höglin Sweden 2:05.2\n", - "5 5 Bjørn Tveter Norway 2:05.2\n", - "6 7 Svein-Erik Stiansen Norway 2:05.5\n", - "7 8 Eduard Matusevich Soviet Union 2:06.1\n", - "8 9 Peter Nottet Netherlands 2:06.3\n", - "9 10 Örjan Sandler Sweden 2:07.0\n", - "10 11 Aleksandr Kerchenko Soviet Union 2:07.1\n", - "11 12 Ants Antson Soviet Union 2:07.2\n", - "12 12 Valery Kaplan Soviet Union 2:07.2\n", - "13 14 Jouko Launonen Finland 2:07.5\n", - "14 15 Günter Traub West Germany 2:07.7\n", - "15 16 Jan Bols Netherlands 2:07.8\n", - "16 16 Manne Lavås Sweden 2:07.8\n", - "17 18 Kimmo Koskinen Finland 2:07.9\n", - "18 19 Richard Wurster United States 2:08.4\n", - "19 20 Göran Claeson Sweden 2:08.6},\n", - " { 'answer': 'Magne Thomassen',\n", - " 'context': Rank Athlete Country Time\n", - "0 1 Kees Verkerk Netherlands 2:03.4\n", - "1 2 Ivar Eriksen Norway 2:05.0\n", - "2 3 Ard Schenk Netherlands 2:05.0\n", - "3 4 Magne Thomassen Norway 2:05.1\n", - "4 5 Johnny Höglin Sweden 2:05.2\n", - "5 5 Bjørn Tveter Norway 2:05.2\n", - "6 7 Svein-Erik Stiansen Norway 2:05.5\n", - "7 8 Eduard Matusevich Soviet Union 2:06.1\n", - "8 9 Peter Nottet Netherlands 2:06.3\n", - "9 10 Örjan Sandler Sweden 2:07.0\n", - "10 11 Aleksandr Kerchenko Soviet Union 2:07.1\n", - "11 12 Ants Antson Soviet Union 2:07.2\n", - "12 12 Valery Kaplan Soviet Union 2:07.2\n", - "13 14 Jouko Launonen Finland 2:07.5\n", - "14 15 Günter Traub West Germany 2:07.7\n", - "15 16 Jan Bols Netherlands 2:07.8\n", - "16 16 Manne Lavås Sweden 2:07.8\n", - "17 18 Kimmo Koskinen Finland 2:07.9\n", - "18 19 Richard Wurster United States 2:08.4\n", - "19 20 Göran Claeson Sweden 2:08.6},\n", - " { 'answer': '5',\n", - " 'context': Position # Player Moving from\n", - "0 F 12 Nikola Kalinić Radnički Kragujevac\n", - "1 SF 6 Nemanja Dangubić Mega Vizura\n", - "2 C 33 Maik Zirbes Brose Baskets\n", - "3 PG 3 Marcus Williams Lokomotiv Kuban\n", - "4 PG 24 Stefan Jović Radnički Kragujevac\n", - "5 C 14 Đorđe Kaplanović FMP\n", - "6 SF 5 Nikola Čvorović FMP\n", - "7 SG 7 Aleksandar Aranitović Crvena zvezda U18\n", - "8 SG 20 Aleksa Radanov Crvena zvezda U18},\n", - " { 'answer': 'Vasile Sărucan',\n", - " 'context': Rank Name Nationality Result\n", - "0 1 Hans Baumgartner West Germany 8.12\n", - "1 2 Igor Ter-Ovanesyan Soviet Union 7.91\n", - "2 3 Vasile Sărucan Romania 7.88\n", - "3 4 Valeriu Jurcă Romania 7.72\n", - "4 5 Philippe Housiaux Belgium 7.70\n", - "5 6 Andreas Gloerfeld West Germany 7.70\n", - "6 7 Jan Kobuszewski Poland 7.66\n", - "7 8 Jaroslav Brož Czechoslovakia 7.66\n", - "8 9 Alan Lerwill Great Britain 7.61\n", - "9 10 Mikhail Bariban Soviet Union 7.58\n", - "10 11 Valeriy Podluzhniy Soviet Union 7.54\n", - "11 12 Kari Palmen Finland 7.51\n", - "12 13 Georgi Marin Bulgaria 7.51\n", - "13 14 Jesper Tørring Denmark 7.46\n", - "14 15 Milan Spasojević Yugoslavia 7.23\n", - "15 16 Salih Mercan Turkey 6.98\n", - "16 17 Henrik Kalocsai Hungary 5.67},\n", - " { 'answer': 'Belgium',\n", - " 'context': Rank Name Nationality Result\n", - "0 1 Hans Baumgartner West Germany 8.12\n", - "1 2 Igor Ter-Ovanesyan Soviet Union 7.91\n", - "2 3 Vasile Sărucan Romania 7.88\n", - "3 4 Valeriu Jurcă Romania 7.72\n", - "4 5 Philippe Housiaux Belgium 7.70\n", - "5 6 Andreas Gloerfeld West Germany 7.70\n", - "6 7 Jan Kobuszewski Poland 7.66\n", - "7 8 Jaroslav Brož Czechoslovakia 7.66\n", - "8 9 Alan Lerwill Great Britain 7.61\n", - "9 10 Mikhail Bariban Soviet Union 7.58\n", - "10 11 Valeriy Podluzhniy Soviet Union 7.54\n", - "11 12 Kari Palmen Finland 7.51\n", - "12 13 Georgi Marin Bulgaria 7.51\n", - "13 14 Jesper Tørring Denmark 7.46\n", - "14 15 Milan Spasojević Yugoslavia 7.23\n", - "15 16 Salih Mercan Turkey 6.98\n", - "16 17 Henrik Kalocsai Hungary 5.67},\n", - " { 'answer': 'Poland',\n", - " 'context': Rank Name Nationality Result\n", - "0 1 Hans Baumgartner West Germany 8.12\n", - "1 2 Igor Ter-Ovanesyan Soviet Union 7.91\n", - "2 3 Vasile Sărucan Romania 7.88\n", - "3 4 Valeriu Jurcă Romania 7.72\n", - "4 5 Philippe Housiaux Belgium 7.70\n", - "5 6 Andreas Gloerfeld West Germany 7.70\n", - "6 7 Jan Kobuszewski Poland 7.66\n", - "7 8 Jaroslav Brož Czechoslovakia 7.66\n", - "8 9 Alan Lerwill Great Britain 7.61\n", - "9 10 Mikhail Bariban Soviet Union 7.58\n", - "10 11 Valeriy Podluzhniy Soviet Union 7.54\n", - "11 12 Kari Palmen Finland 7.51\n", - "12 13 Georgi Marin Bulgaria 7.51\n", - "13 14 Jesper Tørring Denmark 7.46\n", - "14 15 Milan Spasojević Yugoslavia 7.23\n", - "15 16 Salih Mercan Turkey 6.98\n", - "16 17 Henrik Kalocsai Hungary 5.67},\n", - " { 'answer': 'Hafþór Júlíus Björnsson',\n", - " 'context': # Name Nationality Pts\n", - "0 1 Hafþór Júlíus Björnsson Iceland 31.5\n", - "1 2 Robert Oberst United States 29\n", - "2 3 Lauri Nami Estonia 24\n", - "3 4 Nick Best United States 14.5\n", - "4 5 Laurence Shahlaei UK 12\n", - "5 6 Wu Long China 6},\n", - " { 'answer': 'Estonia',\n", - " 'context': # Name Nationality Pts\n", - "0 1 Hafþór Júlíus Björnsson Iceland 31.5\n", - "1 2 Robert Oberst United States 29\n", - "2 3 Lauri Nami Estonia 24\n", - "3 4 Nick Best United States 14.5\n", - "4 5 Laurence Shahlaei UK 12\n", - "5 6 Wu Long China 6},\n", - " { 'answer': 'Iceland',\n", - " 'context': # Name Nationality Pts\n", - "0 1 Hafþór Júlíus Björnsson Iceland 31.5\n", - "1 2 Robert Oberst United States 29\n", - "2 3 Lauri Nami Estonia 24\n", - "3 4 Nick Best United States 14.5\n", - "4 5 Laurence Shahlaei UK 12\n", - "5 6 Wu Long China 6},\n", - " { 'answer': 'Egor Antropov ( born May 8 , 1992 ) is a Russian '\n", - " 'professional ice hockey defenceman',\n", - " 'context': 'Egor Antropov ( born May 8 , 1992 ) is a Russian '\n", - " 'professional ice hockey defenceman . He is currently '\n", - " 'playing with Piráti Chomutov of the Czech Extral'},\n", - " { 'answer': 'Zurab Magomedovich Yevloyev ( ; born February 20 , 1980 ) '\n", - " 'is a Russian professional football player',\n", - " 'context': 'Zurab Magomedovich Yevloyev ( ; born February 20 , 1980 ) '\n", - " 'is a Russian professional football player . In 2010 , he '\n", - " 'played for FC Angusht Nazran in the'}]\n" + "[ { 'answer': 'American inventor and businessman',\n", + " 'context': 'mas Alva Edison (February 11, 1847October 18, 1931) was an '\n", + " 'American inventor and businessman, who has been described '\n", + " \"as America's greatest inventor. H\"},\n", + " { 'answer': 'Dorothy Colpoys',\n", + " 'context': Year Men's singles Women's singles \\\n", + "0 1928 Alan Titherley R. Finch \n", + "1 1929 T. P. Dick Margaret Tragett \n", + "2 1930 Donald Hume Dorothy Colpoys \n", + "3 1931 T. P. Dick Dorothy Colpoys \n", + "4 1932 W. Hamilton Thelma Kingsbury \n", + ".. ... ... ... \n", + "59 2008 Brice Leverdez Kati Tolmoff \n", + "60 2009 Kristian Nielsen Tatjana Bibik \n", + "61 2010 Pablo Abián Anita Raj Kaur \n", + "62 2011 Niluka Karunaratne Nicole Schaller \n", + "63 2012 Chou Tien-chen Chiang Mei-hui \n", + "\n", + " Men's doubles Women's doubles \\\n", + "0 J. D. M. McCallum Alan Titherley Thompson-Smith Reid \n", + "1 F. J. Treasure F. B. Malthouse Marian Horsley L. W. Myers \n", + "2 Donald Hume Ralph Nichols Marian Horsley L. W. Myers \n", + "3 T. P. Dick W. Basil Jones Marian Horsley L. W. Myers \n", + "4 Artur Hamilton W. Hamilton Hazel Hogarth Thelma Kingsbury \n", + ".. ... ... \n", + "59 Andrew Bowman Martyn Lewis Mariana Agathangelou Jillie Cooper \n", + "60 Vitaliy Durkin Alexandr Nikolaenko Valeria Sorokina Nina Vislova \n", + "61 Peter Käsbauer Josche Zurwonne Joanne Quay Swee Ling Anita Raj Kaur \n", + "62 Chris Coles Matthew Nottingham Ng Hui Ern Ng Hui Lin \n", + "63 Marcus Ellis Paul Van Rietvelde Gabrielle White Lauren Smith \n", + "\n", + " Mixed doubles \n", + "0 F. L. Treasure Meredith \n", + "1 T. P. Dick Hazel Hogarth \n", + "2 T. P. Dick Hazel Hogarth \n", + "3 T. P. Dick Hazel Hogarth \n", + "4 Ralph Nichols N. Coop \n", + ".. ... \n", + "59 Watson Briggs Jillie Cooper \n", + "60 Vitaliy Durkin Nina Vislova \n", + "61 Peter Käsbauer Johanna Goliszewski \n", + "62 Martin Campbell Ng Hui Lin \n", + "63 Marcus Ellis Gabrielle White \n", + "\n", + "[64 rows x 6 columns]},\n", + " { 'answer': 'Daphne Young',\n", + " 'context': Year Men's singles Women's singles \\\n", + "0 1928 Alan Titherley R. Finch \n", + "1 1929 T. P. Dick Margaret Tragett \n", + "2 1930 Donald Hume Dorothy Colpoys \n", + "3 1931 T. P. Dick Dorothy Colpoys \n", + "4 1932 W. Hamilton Thelma Kingsbury \n", + ".. ... ... ... \n", + "59 2008 Brice Leverdez Kati Tolmoff \n", + "60 2009 Kristian Nielsen Tatjana Bibik \n", + "61 2010 Pablo Abián Anita Raj Kaur \n", + "62 2011 Niluka Karunaratne Nicole Schaller \n", + "63 2012 Chou Tien-chen Chiang Mei-hui \n", + "\n", + " Men's doubles Women's doubles \\\n", + "0 J. D. M. McCallum Alan Titherley Thompson-Smith Reid \n", + "1 F. J. Treasure F. B. Malthouse Marian Horsley L. W. Myers \n", + "2 Donald Hume Ralph Nichols Marian Horsley L. W. Myers \n", + "3 T. P. Dick W. Basil Jones Marian Horsley L. W. Myers \n", + "4 Artur Hamilton W. Hamilton Hazel Hogarth Thelma Kingsbury \n", + ".. ... ... \n", + "59 Andrew Bowman Martyn Lewis Mariana Agathangelou Jillie Cooper \n", + "60 Vitaliy Durkin Alexandr Nikolaenko Valeria Sorokina Nina Vislova \n", + "61 Peter Käsbauer Josche Zurwonne Joanne Quay Swee Ling Anita Raj Kaur \n", + "62 Chris Coles Matthew Nottingham Ng Hui Ern Ng Hui Lin \n", + "63 Marcus Ellis Paul Van Rietvelde Gabrielle White Lauren Smith \n", + "\n", + " Mixed doubles \n", + "0 F. L. Treasure Meredith \n", + "1 T. P. Dick Hazel Hogarth \n", + "2 T. P. Dick Hazel Hogarth \n", + "3 T. P. Dick Hazel Hogarth \n", + "4 Ralph Nichols N. Coop \n", + ".. ... \n", + "59 Watson Briggs Jillie Cooper \n", + "60 Vitaliy Durkin Nina Vislova \n", + "61 Peter Käsbauer Johanna Goliszewski \n", + "62 Martin Campbell Ng Hui Lin \n", + "63 Marcus Ellis Gabrielle White \n", + "\n", + "[64 rows x 6 columns]},\n", + " { 'answer': 'Maggie McIntosh',\n", + " 'context': Year Men's singles Women's singles \\\n", + "0 1928 Alan Titherley R. Finch \n", + "1 1929 T. P. Dick Margaret Tragett \n", + "2 1930 Donald Hume Dorothy Colpoys \n", + "3 1931 T. P. Dick Dorothy Colpoys \n", + "4 1932 W. Hamilton Thelma Kingsbury \n", + ".. ... ... ... \n", + "59 2008 Brice Leverdez Kati Tolmoff \n", + "60 2009 Kristian Nielsen Tatjana Bibik \n", + "61 2010 Pablo Abián Anita Raj Kaur \n", + "62 2011 Niluka Karunaratne Nicole Schaller \n", + "63 2012 Chou Tien-chen Chiang Mei-hui \n", + "\n", + " Men's doubles Women's doubles \\\n", + "0 J. D. M. McCallum Alan Titherley Thompson-Smith Reid \n", + "1 F. J. Treasure F. B. Malthouse Marian Horsley L. W. Myers \n", + "2 Donald Hume Ralph Nichols Marian Horsley L. W. Myers \n", + "3 T. P. Dick W. Basil Jones Marian Horsley L. W. Myers \n", + "4 Artur Hamilton W. Hamilton Hazel Hogarth Thelma Kingsbury \n", + ".. ... ... \n", + "59 Andrew Bowman Martyn Lewis Mariana Agathangelou Jillie Cooper \n", + "60 Vitaliy Durkin Alexandr Nikolaenko Valeria Sorokina Nina Vislova \n", + "61 Peter Käsbauer Josche Zurwonne Joanne Quay Swee Ling Anita Raj Kaur \n", + "62 Chris Coles Matthew Nottingham Ng Hui Ern Ng Hui Lin \n", + "63 Marcus Ellis Paul Van Rietvelde Gabrielle White Lauren Smith \n", + "\n", + " Mixed doubles \n", + "0 F. L. Treasure Meredith \n", + "1 T. P. Dick Hazel Hogarth \n", + "2 T. P. Dick Hazel Hogarth \n", + "3 T. P. Dick Hazel Hogarth \n", + "4 Ralph Nichols N. Coop \n", + ".. ... \n", + "59 Watson Briggs Jillie Cooper \n", + "60 Vitaliy Durkin Nina Vislova \n", + "61 Peter Käsbauer Johanna Goliszewski \n", + "62 Martin Campbell Ng Hui Lin \n", + "63 Marcus Ellis Gabrielle White \n", + "\n", + "[64 rows x 6 columns]},\n", + " { 'answer': '1947',\n", + " 'context': Year \\\n", + "0 1947 \n", + "1 1951 \n", + "2 1952 \n", + "3 1959 \n", + "4 1960 \n", + "5 1964 \n", + "6 1970 \n", + "7 1976 \n", + "8 1976 \n", + "9 1986 \n", + "10 1986 \n", + "11 1987 \n", + "12 2001 \n", + "13 2008 \n", + "14 2013 \n", + "\n", + " Cast ( Macbeth , Lady Macbeth , Macduff , Banco ) \\\n", + "0 Francesco Valentino , Margherita Grandi , Walter Midgley , Italo Tajo \n", + "1 Ivan Petroff , Astrid Varnay , Gino Penno , Italo Tajo \n", + "2 Enzo Mascherini , Maria Callas , Gino Penno , Italo Tajo \n", + "3 Leonard Warren , Leonie Rysanek , Carlo Bergonzi , Jerome Hines \n", + "4 Giuseppe Taddei , Leyla Gencer , Mirto Picchi , Ferrucio Mazzoli \n", + "5 Giuseppe Taddei , Birgit Nilsson , Bruno Prevedi , Giovanni Foiani \n", + "6 Dietrich Fischer-Dieskau , Elena Souliotis , Luciano Pavarotti , Nicolai Ghi... \n", + "7 Piero Cappuccilli , Shirley Verrett , Plácido Domingo , Nicolai Ghiaurov \n", + "8 Sherrill Milnes , Fiorenza Cossotto , José Carreras , Ruggero Raimondi \n", + "9 Leo Nucci , Shirley Verrett , Veriano Luchetti , Samuel Ramey \n", + "10 Piero Cappuccilli , Sylvia Sass , Péter Kelen [ hu ] , Kolos Kováts [ hu ] \n", + "11 Renato Bruson , Mara Zampieri , Neil Shicoff , Robert Lloyd \n", + "12 Thomas Hampson , Paoletta Marrocu , Luis Lima , Roberto Scandiuzzi \n", + "13 Željko Lučić , Maria Guleghina , John Relyea , Dimitri Pittas \n", + "14 Leo Nucci , Sylvie Valayre , Enrico Iori , Roberto Iuliano \n", + "\n", + " Conductor , opera house and orchestra \\\n", + "0 Berthold Goldschmidt Scottish Orchestra , Glyndebourne Festival Chorus ( Liv... \n", + "1 Vittorio Gui Chorus and Orchestra of the Teatro Communale di Firenze ( Live ... \n", + "2 Victor de Sabata La Scala Chorus and Orchestra ( Live recording of 7 Dec. pe... \n", + "3 Erich Leinsdorf Metropolitan Opera Chorus and Orchestra \n", + "4 Vittorio Gui Teatro Massimo Chorus and Orchestra \n", + "5 Thomas Schippers , Accademia di Santa Cecilia Orchestra and Chorus \n", + "6 Lamberto Gardelli , London Philharmonic Orchestra and Ambrosian Opera Chorus \n", + "7 Claudio Abbado , Coro e Orchestra del Teatro alla Scala \n", + "8 Riccardo Muti , New Philharmonia Orchestra and Ambrosian Opera Chorus \n", + "9 Riccardo Chailly , Teatro Comunale di Bologna Orchestra and Chorus \n", + "10 Lamberto Gardelli , Hungarian Radio and Television Chorus and Budapest Symph... \n", + "11 Giuseppe Sinopoli , Orchester und Chor der Deutsche Oper Berlin ( Live recor... \n", + "12 Franz Welser-Möst , Chorus and Orchestra of the Zürich Opera House ( Live re... \n", + "13 James Levine , Metropolitan Opera Orchestra , Chorus , and Ballet ( Live rec... \n", + "14 Bruno Bartoletti , Teatro Regio di Parma ( 2006 production ) Drected by Lili... \n", + "\n", + " Label \n", + "0 CD : Classical Recordings Quarterly Editions Cat : CRQ CD004-5 \n", + "1 Operadepot-dot-com Cat : CD-10939-2 \n", + "2 CD : Myto Cat : MCD 063 H 115 \n", + "3 CD : RCA Victor Cat : 4516-2-RG \n", + "4 CD : Great Opera Performances ( GOP ) Cat : B00HYKI61Y \n", + "5 CD : Decca Cat : 433 039-2 \n", + "6 CD : Decca Cat : 440 048-2 \n", + "7 CD : Deutsche Grammophon Cat : 449 732-2 \n", + "8 CD : EMI Cat : CMS 5 67128-2 \n", + "9 CD : Decca Cat : 417 525-2 DVD : Decca , Cat : 073 4380 and 1040309 ( US ) \n", + "10 CD : Hungaroton Cat : HCD 12738-40 \n", + "11 DVD : ArtHaus Musik Cat : 100 141 \n", + "12 DVD : TDK Cat : DV-OPMAC \n", + "13 DVD : EMI Classics Cat : 2063049 \n", + "14 DVD : C Major Cat : 722008 },\n", + " { 'answer': 'Victor de Sabata La Scala Chorus and Orchestra ( Live '\n", + " 'recording of 7 Dec. performance )',\n", + " 'context': Year \\\n", + "0 1947 \n", + "1 1951 \n", + "2 1952 \n", + "3 1959 \n", + "4 1960 \n", + "5 1964 \n", + "6 1970 \n", + "7 1976 \n", + "8 1976 \n", + "9 1986 \n", + "10 1986 \n", + "11 1987 \n", + "12 2001 \n", + "13 2008 \n", + "14 2013 \n", + "\n", + " Cast ( Macbeth , Lady Macbeth , Macduff , Banco ) \\\n", + "0 Francesco Valentino , Margherita Grandi , Walter Midgley , Italo Tajo \n", + "1 Ivan Petroff , Astrid Varnay , Gino Penno , Italo Tajo \n", + "2 Enzo Mascherini , Maria Callas , Gino Penno , Italo Tajo \n", + "3 Leonard Warren , Leonie Rysanek , Carlo Bergonzi , Jerome Hines \n", + "4 Giuseppe Taddei , Leyla Gencer , Mirto Picchi , Ferrucio Mazzoli \n", + "5 Giuseppe Taddei , Birgit Nilsson , Bruno Prevedi , Giovanni Foiani \n", + "6 Dietrich Fischer-Dieskau , Elena Souliotis , Luciano Pavarotti , Nicolai Ghi... \n", + "7 Piero Cappuccilli , Shirley Verrett , Plácido Domingo , Nicolai Ghiaurov \n", + "8 Sherrill Milnes , Fiorenza Cossotto , José Carreras , Ruggero Raimondi \n", + "9 Leo Nucci , Shirley Verrett , Veriano Luchetti , Samuel Ramey \n", + "10 Piero Cappuccilli , Sylvia Sass , Péter Kelen [ hu ] , Kolos Kováts [ hu ] \n", + "11 Renato Bruson , Mara Zampieri , Neil Shicoff , Robert Lloyd \n", + "12 Thomas Hampson , Paoletta Marrocu , Luis Lima , Roberto Scandiuzzi \n", + "13 Željko Lučić , Maria Guleghina , John Relyea , Dimitri Pittas \n", + "14 Leo Nucci , Sylvie Valayre , Enrico Iori , Roberto Iuliano \n", + "\n", + " Conductor , opera house and orchestra \\\n", + "0 Berthold Goldschmidt Scottish Orchestra , Glyndebourne Festival Chorus ( Liv... \n", + "1 Vittorio Gui Chorus and Orchestra of the Teatro Communale di Firenze ( Live ... \n", + "2 Victor de Sabata La Scala Chorus and Orchestra ( Live recording of 7 Dec. pe... \n", + "3 Erich Leinsdorf Metropolitan Opera Chorus and Orchestra \n", + "4 Vittorio Gui Teatro Massimo Chorus and Orchestra \n", + "5 Thomas Schippers , Accademia di Santa Cecilia Orchestra and Chorus \n", + "6 Lamberto Gardelli , London Philharmonic Orchestra and Ambrosian Opera Chorus \n", + "7 Claudio Abbado , Coro e Orchestra del Teatro alla Scala \n", + "8 Riccardo Muti , New Philharmonia Orchestra and Ambrosian Opera Chorus \n", + "9 Riccardo Chailly , Teatro Comunale di Bologna Orchestra and Chorus \n", + "10 Lamberto Gardelli , Hungarian Radio and Television Chorus and Budapest Symph... \n", + "11 Giuseppe Sinopoli , Orchester und Chor der Deutsche Oper Berlin ( Live recor... \n", + "12 Franz Welser-Möst , Chorus and Orchestra of the Zürich Opera House ( Live re... \n", + "13 James Levine , Metropolitan Opera Orchestra , Chorus , and Ballet ( Live rec... \n", + "14 Bruno Bartoletti , Teatro Regio di Parma ( 2006 production ) Drected by Lili... \n", + "\n", + " Label \n", + "0 CD : Classical Recordings Quarterly Editions Cat : CRQ CD004-5 \n", + "1 Operadepot-dot-com Cat : CD-10939-2 \n", + "2 CD : Myto Cat : MCD 063 H 115 \n", + "3 CD : RCA Victor Cat : 4516-2-RG \n", + "4 CD : Great Opera Performances ( GOP ) Cat : B00HYKI61Y \n", + "5 CD : Decca Cat : 433 039-2 \n", + "6 CD : Decca Cat : 440 048-2 \n", + "7 CD : Deutsche Grammophon Cat : 449 732-2 \n", + "8 CD : EMI Cat : CMS 5 67128-2 \n", + "9 CD : Decca Cat : 417 525-2 DVD : Decca , Cat : 073 4380 and 1040309 ( US ) \n", + "10 CD : Hungaroton Cat : HCD 12738-40 \n", + "11 DVD : ArtHaus Musik Cat : 100 141 \n", + "12 DVD : TDK Cat : DV-OPMAC \n", + "13 DVD : EMI Classics Cat : 2063049 \n", + "14 DVD : C Major Cat : 722008 },\n", + " { 'answer': '1951',\n", + " 'context': Year \\\n", + "0 1947 \n", + "1 1951 \n", + "2 1952 \n", + "3 1959 \n", + "4 1960 \n", + "5 1964 \n", + "6 1970 \n", + "7 1976 \n", + "8 1976 \n", + "9 1986 \n", + "10 1986 \n", + "11 1987 \n", + "12 2001 \n", + "13 2008 \n", + "14 2013 \n", + "\n", + " Cast ( Macbeth , Lady Macbeth , Macduff , Banco ) \\\n", + "0 Francesco Valentino , Margherita Grandi , Walter Midgley , Italo Tajo \n", + "1 Ivan Petroff , Astrid Varnay , Gino Penno , Italo Tajo \n", + "2 Enzo Mascherini , Maria Callas , Gino Penno , Italo Tajo \n", + "3 Leonard Warren , Leonie Rysanek , Carlo Bergonzi , Jerome Hines \n", + "4 Giuseppe Taddei , Leyla Gencer , Mirto Picchi , Ferrucio Mazzoli \n", + "5 Giuseppe Taddei , Birgit Nilsson , Bruno Prevedi , Giovanni Foiani \n", + "6 Dietrich Fischer-Dieskau , Elena Souliotis , Luciano Pavarotti , Nicolai Ghi... \n", + "7 Piero Cappuccilli , Shirley Verrett , Plácido Domingo , Nicolai Ghiaurov \n", + "8 Sherrill Milnes , Fiorenza Cossotto , José Carreras , Ruggero Raimondi \n", + "9 Leo Nucci , Shirley Verrett , Veriano Luchetti , Samuel Ramey \n", + "10 Piero Cappuccilli , Sylvia Sass , Péter Kelen [ hu ] , Kolos Kováts [ hu ] \n", + "11 Renato Bruson , Mara Zampieri , Neil Shicoff , Robert Lloyd \n", + "12 Thomas Hampson , Paoletta Marrocu , Luis Lima , Roberto Scandiuzzi \n", + "13 Željko Lučić , Maria Guleghina , John Relyea , Dimitri Pittas \n", + "14 Leo Nucci , Sylvie Valayre , Enrico Iori , Roberto Iuliano \n", + "\n", + " Conductor , opera house and orchestra \\\n", + "0 Berthold Goldschmidt Scottish Orchestra , Glyndebourne Festival Chorus ( Liv... \n", + "1 Vittorio Gui Chorus and Orchestra of the Teatro Communale di Firenze ( Live ... \n", + "2 Victor de Sabata La Scala Chorus and Orchestra ( Live recording of 7 Dec. pe... \n", + "3 Erich Leinsdorf Metropolitan Opera Chorus and Orchestra \n", + "4 Vittorio Gui Teatro Massimo Chorus and Orchestra \n", + "5 Thomas Schippers , Accademia di Santa Cecilia Orchestra and Chorus \n", + "6 Lamberto Gardelli , London Philharmonic Orchestra and Ambrosian Opera Chorus \n", + "7 Claudio Abbado , Coro e Orchestra del Teatro alla Scala \n", + "8 Riccardo Muti , New Philharmonia Orchestra and Ambrosian Opera Chorus \n", + "9 Riccardo Chailly , Teatro Comunale di Bologna Orchestra and Chorus \n", + "10 Lamberto Gardelli , Hungarian Radio and Television Chorus and Budapest Symph... \n", + "11 Giuseppe Sinopoli , Orchester und Chor der Deutsche Oper Berlin ( Live recor... \n", + "12 Franz Welser-Möst , Chorus and Orchestra of the Zürich Opera House ( Live re... \n", + "13 James Levine , Metropolitan Opera Orchestra , Chorus , and Ballet ( Live rec... \n", + "14 Bruno Bartoletti , Teatro Regio di Parma ( 2006 production ) Drected by Lili... \n", + "\n", + " Label \n", + "0 CD : Classical Recordings Quarterly Editions Cat : CRQ CD004-5 \n", + "1 Operadepot-dot-com Cat : CD-10939-2 \n", + "2 CD : Myto Cat : MCD 063 H 115 \n", + "3 CD : RCA Victor Cat : 4516-2-RG \n", + "4 CD : Great Opera Performances ( GOP ) Cat : B00HYKI61Y \n", + "5 CD : Decca Cat : 433 039-2 \n", + "6 CD : Decca Cat : 440 048-2 \n", + "7 CD : Deutsche Grammophon Cat : 449 732-2 \n", + "8 CD : EMI Cat : CMS 5 67128-2 \n", + "9 CD : Decca Cat : 417 525-2 DVD : Decca , Cat : 073 4380 and 1040309 ( US ) \n", + "10 CD : Hungaroton Cat : HCD 12738-40 \n", + "11 DVD : ArtHaus Musik Cat : 100 141 \n", + "12 DVD : TDK Cat : DV-OPMAC \n", + "13 DVD : EMI Classics Cat : 2063049 \n", + "14 DVD : C Major Cat : 722008 },\n", + " { 'answer': '35.0',\n", + " 'context': Rank Player (2018 HRs) HR\n", + "0 1.0 Barry Bonds 762\n", + "1 2.0 Hank Aaron * 755\n", + "2 3.0 Babe Ruth * 714\n", + "3 4.0 Alex Rodriguez 696\n", + "4 5.0 Willie Mays * 660\n", + ".. ... ... ...\n", + "70 71.0 Edwin Encarnación (32) 380\n", + "71 72.0 Orlando Cepeda * 379\n", + "72 nan Tony Pérez * 379\n", + "73 74.0 Matt Williams 378\n", + "74 75.0 Norm Cash 377\n", + "\n", + "[75 rows x 3 columns]},\n", + " { 'answer': 'Barry Bonds',\n", + " 'context': Rank Player (2018 HRs) HR\n", + "0 1.0 Barry Bonds 762\n", + "1 2.0 Hank Aaron * 755\n", + "2 3.0 Babe Ruth * 714\n", + "3 4.0 Alex Rodriguez 696\n", + "4 5.0 Willie Mays * 660\n", + ".. ... ... ...\n", + "70 71.0 Edwin Encarnación (32) 380\n", + "71 72.0 Orlando Cepeda * 379\n", + "72 nan Tony Pérez * 379\n", + "73 74.0 Matt Williams 378\n", + "74 75.0 Norm Cash 377\n", + "\n", + "[75 rows x 3 columns]},\n", + " { 'answer': 'Babe Ruth *',\n", + " 'context': Rank Player (2018 HRs) HR\n", + "0 1.0 Barry Bonds 762\n", + "1 2.0 Hank Aaron * 755\n", + "2 3.0 Babe Ruth * 714\n", + "3 4.0 Alex Rodriguez 696\n", + "4 5.0 Willie Mays * 660\n", + ".. ... ... ...\n", + "70 71.0 Edwin Encarnación (32) 380\n", + "71 72.0 Orlando Cepeda * 379\n", + "72 nan Tony Pérez * 379\n", + "73 74.0 Matt Williams 378\n", + "74 75.0 Norm Cash 377\n", + "\n", + "[75 rows x 3 columns]},\n", + " { 'answer': 'Alianza Lima',\n", + " 'context': Team Manager Captain \\\n", + "0 Alianza Lima José Soto Juan Jayo \n", + "1 Cienciano Raul Arias Julio Garcia \n", + "2 Cobresol Octavio Vidales Gregorio Bernales \n", + "3 Inti Gas Edgar Ospina Nick Montalva \n", + "4 José Gálvez Javier Arce Marco Ruiz \n", + "5 Juan Aurich Franco Navarro Luis Guadalupe \n", + "6 León de Huánuco Jean Ferrari Carlos Zegarra \n", + "7 Melgar Julio Zamora Antonio Meza Cuadra \n", + "8 Real Garcilaso Freddy García Ramón Rodríguez \n", + "9 Sport Boys Jorge Espejo Jorge Huamán \n", + "10 Sport Huancayo Wilmar Valencia Sergio Ibarra \n", + "11 Sporting Cristal Roberto Mosquera Erick Delgado \n", + "12 Unión Comercio Mario Viera Héctor Sosa \n", + "13 Universidad César Vallejo Víctor Rivera Carlos Galván \n", + "14 Universidad San Martín Angel Cappa Leao Butrón \n", + "15 Universitario Nolberto Solano John Galliquio \n", + "\n", + " Kit manufacturer Shirt sponsor \n", + "0 Nike nan \n", + "1 Aries Movistar \n", + "2 Loma 's Universidad Alas Peruanas \n", + "3 Walon Inti Gas \n", + "4 Real SIDERPERU /Megaplaza \n", + "5 Walon Grupo Oviedo \n", + "6 Walon Roky 's \n", + "7 Marathon nan \n", + "8 Walon I-RUN \n", + "9 Triathlon Gobierno Regional del Callao \n", + "10 Manchete Caja Municipal de Huancayo \n", + "11 Umbro Cerveza Cristal / Volkswagen \n", + "12 Real New Holland \n", + "13 Walon Universidad César Vallejo \n", + "14 Umbro Herbalife \n", + "15 Umbro Radio Exitosa },\n", + " { 'answer': 'Alexander Graham Bell Alexander Graham Bell',\n", + " 'context': 'is grandchildren. \"U.S. patent images in TIFF format\" '\n", + " 'Alexander Graham Bell Alexander Graham Bell (March 3, 1847 '\n", + " '– August 2, 1922) was a Scottish-born'},\n", + " { 'answer': 'Gerry Bertier Gerry Bertier (, with a hard \"G\"; August 20, '\n", + " '1953 – March 20, 1981) was a prominent Alexandria, Virginia '\n", + " 'high school American football player. He is best known for '\n", + " 'his participation on the 1971 Virginia State Champion '\n", + " 'football T. C. Williams High School team and their '\n", + " 'portrayal in the Disney film \"Remember the Titans\", and '\n", + " 'being the nephew of Howard Livingston.',\n", + " 'context': 'Gerry Bertier Gerry Bertier (, with a hard \"G\"; August 20, '\n", + " '1953 – March 20, 1981) was a prominent Alexandria, '\n", + " 'Virginia high school American football player. He is best '\n", + " 'known for his participation on the 1971 Virginia State '\n", + " 'Champion football T. C. Williams High School team and '\n", + " 'their portrayal in the Disney film \"Remember the Titans\", '\n", + " 'and being the nephew of Howard Livingston. '},\n", + " { 'answer': 'first vice president',\n", + " 'context': 'active in the Screen Actors Guild. In 2002 he was elected '\n", + " 'first vice president of the Guild in Los Angeles and '\n", + " 'served in the post for three years. Mik'}]\n" ] } + ], + "source": [ + "# We can see both text passages and tables as contexts of the predicted answers.\n", + "print_answers(predictions, details=\"minimum\")" ] }, { "cell_type": "code", - "source": [ - "# Example query whose answer resides in a table\n", - "predictions = text_table_qa_pipeline.run(query=\"What is Cuba's national tree?\")" - ], + "execution_count": null, "metadata": { "id": "QYOHDSmLpzEg" }, - "execution_count": null, - "outputs": [] + "outputs": [], + "source": [ + "# Example query whose answer resides in a table\n", + "predictions = text_table_qa_pipeline.run(query=\"Which country does the film Macaroni come from?\")" + ] }, { "cell_type": "code", - "source": [ - "# We can see both text passages and tables as contexts of the predicted answers.\n", - "print_answers(predictions, details=\"minimum\")" - ], + "execution_count": 22, "metadata": { - "id": "4kw53uWep3zj", - "outputId": "b332cc17-3cb8-4e20-d79d-bb4cf656f277", "colab": { "base_uri": "https://localhost:8080/" - } + }, + "id": "4kw53uWep3zj", + "outputId": "b332cc17-3cb8-4e20-d79d-bb4cf656f277" }, - "execution_count": 26, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "\n", - "Query: What is Cuba's national tree?\n", + "Query: Which country does the film Macaroni come from?\n", "Answers:\n", - "[ { 'answer': 'Cuban royal palm',\n", - " 'context': Country ... Scientific name\n", - "0 Afghanistan ... \n", - "1 Albania ... Olea europaea\n", - "2 Antigua and Barbuda ... Bucida buceras\n", - "3 Argentina ... Erythrina crista-galli , Schinopsis balansae\n", - "4 Australia ... Acacia pycnantha\n", - "5 Bahamas ... Guaiacum sanctum\n", - "6 Bangladesh ... Mangifera indica\n", - "7 Belize ... Swietenia macrophylla\n", - "8 Bhutan ... Cupressus cashmeriana\n", - "9 Brazil ... Caesalpinia echinata\n", - "10 Cambodia ... Borassus flabellifer\n", - "11 Canada ... Acer\n", - "12 Chile ... Araucaria araucana\n", - "13 Colombia ... Ceroxylon quindiuense\n", - "14 Costa Rica ... Enterolobium cyclocarpum\n", - "15 Croatia ... Quercus robur\n", - "16 Cuba ... Roystonea regia\n", - "17 Cyprus ... Quercus alnifolia\n", - "18 Czech Republic ... Tilia cordata\n", - "19 Denmark ... Fagus sylvatica\n", - "\n", - "[20 rows x 3 columns]},\n", - " { 'answer': 'Quercus sagraeana , the Cuban oak',\n", - " 'context': 'Quercus sagraeana , the Cuban oak , is a medium-sized '\n", - " 'evergreen tree native to western Cuba in the Cuban pine '\n", - " 'forests ecoregion .'},\n", - " { 'answer': \"Glenn O'Brien\",\n", - " 'context': Book title ... Notes\n", - "0 Sex ... The book contains erotica influenced photographs taken by Steven Meisel and ...\n", - "1 Madonna : The Girlie Show ... The photographs in the book showcased behind-the-scenes of the 1993 Girlie S...\n", - "2 The Making of Evita ... Featuring an introduction by Madonna , The Making of Evita chronicles the cr...\n", - "3 The Emperor 's New Clothes : An All-Star Retelling of the Classic Fairy Tale ... This fully illustrated retelling of the classic fairy tale by Hans Christian...\n", - "4 X-Static Process ... In 2002 , Madonna had collaborated with photographer Steven Klein for an art...\n", - "5 Nobody Knows Me ... Available for one month only via Madonna 's official website . Contained 52 ...\n", - "6 Madonna Confessions ... Behind-the-scenes and on-stage pictures from Madonna 's 2006 Confessions Tou...\n", - "7 I Am Because We Are ... The book contains excerpts from interviews with Malawian children , their bi...\n", - "8 Madonna : Sticky & Sweet ... Behind-the-scenes and on-stage photography from Madonna 's Sticky & Sweet To...\n", - "9 Tom Munro ... Munro 's self-titled first monograph book consists of photographs taken by h...\n", - "10 Mayumi 's Kitchen : Macrobiotic Cooking for Body and Soul ... Mayumi Nishimura worked as Madonna 's private chef for seven years , and she...\n", - "\n", - "[11 rows x 6 columns]},\n", - " { 'answer': 'Guy Oseary',\n", - " 'context': Book title ... Notes\n", - "0 Sex ... The book contains erotica influenced photographs taken by Steven Meisel and ...\n", - "1 Madonna : The Girlie Show ... The photographs in the book showcased behind-the-scenes of the 1993 Girlie S...\n", - "2 The Making of Evita ... Featuring an introduction by Madonna , The Making of Evita chronicles the cr...\n", - "3 The Emperor 's New Clothes : An All-Star Retelling of the Classic Fairy Tale ... This fully illustrated retelling of the classic fairy tale by Hans Christian...\n", - "4 X-Static Process ... In 2002 , Madonna had collaborated with photographer Steven Klein for an art...\n", - "5 Nobody Knows Me ... Available for one month only via Madonna 's official website . Contained 52 ...\n", - "6 Madonna Confessions ... Behind-the-scenes and on-stage pictures from Madonna 's 2006 Confessions Tou...\n", - "7 I Am Because We Are ... The book contains excerpts from interviews with Malawian children , their bi...\n", - "8 Madonna : Sticky & Sweet ... Behind-the-scenes and on-stage photography from Madonna 's Sticky & Sweet To...\n", - "9 Tom Munro ... Munro 's self-titled first monograph book consists of photographs taken by h...\n", - "10 Mayumi 's Kitchen : Macrobiotic Cooking for Body and Soul ... Mayumi Nishimura worked as Madonna 's private chef for seven years , and she...\n", - "\n", - "[11 rows x 6 columns]},\n", - " { 'answer': 'Guy Oseary',\n", - " 'context': Book title ... Notes\n", - "0 Sex ... The book contains erotica influenced photographs taken by Steven Meisel and ...\n", - "1 Madonna : The Girlie Show ... The photographs in the book showcased behind-the-scenes of the 1993 Girlie S...\n", - "2 The Making of Evita ... Featuring an introduction by Madonna , The Making of Evita chronicles the cr...\n", - "3 The Emperor 's New Clothes : An All-Star Retelling of the Classic Fairy Tale ... This fully illustrated retelling of the classic fairy tale by Hans Christian...\n", - "4 X-Static Process ... In 2002 , Madonna had collaborated with photographer Steven Klein for an art...\n", - "5 Nobody Knows Me ... Available for one month only via Madonna 's official website . Contained 52 ...\n", - "6 Madonna Confessions ... Behind-the-scenes and on-stage pictures from Madonna 's 2006 Confessions Tou...\n", - "7 I Am Because We Are ... The book contains excerpts from interviews with Malawian children , their bi...\n", - "8 Madonna : Sticky & Sweet ... Behind-the-scenes and on-stage photography from Madonna 's Sticky & Sweet To...\n", - "9 Tom Munro ... Munro 's self-titled first monograph book consists of photographs taken by h...\n", - "10 Mayumi 's Kitchen : Macrobiotic Cooking for Body and Soul ... Mayumi Nishimura worked as Madonna 's private chef for seven years , and she...\n", - "\n", - "[11 rows x 6 columns]},\n", - " { 'answer': 'Belize',\n", - " 'context': Country ... Scientific name\n", - "0 Afghanistan ... \n", - "1 Albania ... Olea europaea\n", - "2 Antigua and Barbuda ... Bucida buceras\n", - "3 Argentina ... Erythrina crista-galli , Schinopsis balansae\n", - "4 Australia ... Acacia pycnantha\n", - "5 Bahamas ... Guaiacum sanctum\n", - "6 Bangladesh ... Mangifera indica\n", - "7 Belize ... Swietenia macrophylla\n", - "8 Bhutan ... Cupressus cashmeriana\n", - "9 Brazil ... Caesalpinia echinata\n", - "10 Cambodia ... Borassus flabellifer\n", - "11 Canada ... Acer\n", - "12 Chile ... Araucaria araucana\n", - "13 Colombia ... Ceroxylon quindiuense\n", - "14 Costa Rica ... Enterolobium cyclocarpum\n", - "15 Croatia ... Quercus robur\n", - "16 Cuba ... Roystonea regia\n", - "17 Cyprus ... Quercus alnifolia\n", - "18 Czech Republic ... Tilia cordata\n", - "19 Denmark ... Fagus sylvatica\n", - "\n", - "[20 rows x 3 columns]},\n", - " { 'answer': 'Palmyra palm',\n", - " 'context': Country ... Scientific name\n", - "0 Afghanistan ... \n", - "1 Albania ... Olea europaea\n", - "2 Antigua and Barbuda ... Bucida buceras\n", - "3 Argentina ... Erythrina crista-galli , Schinopsis balansae\n", - "4 Australia ... Acacia pycnantha\n", - "5 Bahamas ... Guaiacum sanctum\n", - "6 Bangladesh ... Mangifera indica\n", - "7 Belize ... Swietenia macrophylla\n", - "8 Bhutan ... Cupressus cashmeriana\n", - "9 Brazil ... Caesalpinia echinata\n", - "10 Cambodia ... Borassus flabellifer\n", - "11 Canada ... Acer\n", - "12 Chile ... Araucaria araucana\n", - "13 Colombia ... Ceroxylon quindiuense\n", - "14 Costa Rica ... Enterolobium cyclocarpum\n", - "15 Croatia ... Quercus robur\n", - "16 Cuba ... Roystonea regia\n", - "17 Cyprus ... Quercus alnifolia\n", - "18 Czech Republic ... Tilia cordata\n", - "19 Denmark ... Fagus sylvatica\n", - "\n", - "[20 rows x 3 columns]},\n", - " { 'answer': 'Guadeloupe',\n", - " 'context': State ... Official Language ( s )\n", - "0 Antigua and Barbuda ... English\n", - "1 Dominica ... English\n", - "2 Grenada ... English\n", - "3 Montserrat ... English\n", - "4 Saint Kitts and Nevis ... English\n", - "5 Saint Lucia ... English\n", - "6 Saint Vincent and the Grenadines ... English\n", - "7 Anguilla ... English\n", - "8 British Virgin Islands ... English\n", - "9 Guadeloupe ... French\n", - "10 Martinique ... French\n", - "\n", - "[11 rows x 10 columns]},\n", - " { 'answer': 'Basse-Terre',\n", - " 'context': State ... Official Language ( s )\n", - "0 Antigua and Barbuda ... English\n", - "1 Dominica ... English\n", - "2 Grenada ... English\n", - "3 Montserrat ... English\n", - "4 Saint Kitts and Nevis ... English\n", - "5 Saint Lucia ... English\n", - "6 Saint Vincent and the Grenadines ... English\n", - "7 Anguilla ... English\n", - "8 British Virgin Islands ... English\n", - "9 Guadeloupe ... French\n", - "10 Martinique ... French\n", - "\n", - "[11 rows x 10 columns]},\n", - " { 'answer': 'East Caribbean dollar',\n", - " 'context': State ... Official Language ( s )\n", - "0 Antigua and Barbuda ... English\n", - "1 Dominica ... English\n", - "2 Grenada ... English\n", - "3 Montserrat ... English\n", - "4 Saint Kitts and Nevis ... English\n", - "5 Saint Lucia ... English\n", - "6 Saint Vincent and the Grenadines ... English\n", - "7 Anguilla ... English\n", - "8 British Virgin Islands ... English\n", - "9 Guadeloupe ... French\n", - "10 Martinique ... French\n", - "\n", - "[11 rows x 10 columns]},\n", - " { 'answer': 'Jenkins',\n", - " 'context': NRHP reference number ... County\n", - "0 72000402 ... Wilkes\n", - "1 ... Meriwether\n", - "2 ... Bartow\n", - "3 71000280 ... Jenkins\n", - "4 ... Chatham\n", - "5 89002015 ... Thomas\n", - "6 ... Glynn\n", - "7 75000615 ... Walton\n", - "8 84001156 ... Sumter\n", - "9 79000713 ... Cobb\n", - "10 82002491 ... Twiggs\n", - "11 74000703 ... Taliaferro\n", - "12 80001039 ... Floyd\n", - "13 90000805 ... Gwinnett\n", - "14 73000620 ... Decatur\n", - "15 79000731 ... Houston\n", - "16 95000741 ... Grady\n", - "17 97000559 ... Greene\n", - "18 74000662 ... Brooks\n", - "19 75000616 ... Washington\n", - "\n", - "[20 rows x 4 columns]},\n", - " { 'answer': \"Primula farinosa , the bird's-eye primrose\",\n", - " 'context': \"Primula farinosa , the bird's-eye primrose , is a small \"\n", - " 'perennial plant in the family Primulaceae , native to '\n", - " 'Northern Europe and northern Asia , and '},\n", - " { 'answer': 'Poospiza',\n", - " 'context': 'Poospiza is a genus of finch-like tanagers found in both '\n", - " 'the South American lowlands and the Andes mountains . '\n", - " 'Generally they are arboreal feeders in '},\n", - " { 'answer': 'golden-crowned sparrow',\n", - " 'context': 'The golden-crowned sparrow ( Zonotrichia atricapilla ) is '\n", - " 'a large American sparrow found in the western part of '\n", - " 'North America .'},\n", - " { 'answer': 'Banksia sessilis var . cordata is a variety of Banksia '\n", - " 'sessilis ( Parrot Bush',\n", - " 'context': 'Banksia sessilis var . cordata is a variety of Banksia '\n", - " 'sessilis ( Parrot Bush ) , with unusually large leaves and '\n", - " 'flower heads . It is a rare variety '},\n", - " { 'answer': 'rain',\n", - " 'context': 's and operates hotels at Machu Picchu Natural Reserve , '\n", - " 'the southeastern rain forest of the Amazon in Puerto '\n", - " 'Maldonado , Tambopata , the Sacred Valley'}]\n" + "[ { 'answer': 'Italian',\n", + " 'context': Submitting country Film title used in nomination Language ( s ) \\\n", + "0 Argentina The Official Story Spanish \n", + "1 Austria Malambo German \n", + "2 Belgium Dust French \n", + "3 Canada Jacques and November French \n", + "4 Czechoslovakia Scalpel , Please Czech \n", + "5 Denmark Twist and Shout Danish \n", + "6 France Three Men and a Cradle French \n", + "7 West Germany Angry Harvest German \n", + "8 Hungary Colonel Redl German \n", + "9 Iceland Deep Winter Icelandic \n", + "10 India Saagar Hindi \n", + "11 Israel When Night Falls Hebrew \n", + "12 Italy Macaroni Italian \n", + "13 Japan Gray Sunset Japanese \n", + "14 South Korea Eoudong Korean \n", + "15 Mexico Frida Still Life Spanish \n", + "16 Netherlands The Dream Dutch , West Frisian \n", + "17 Norway Wives - Ten Years After Norwegian \n", + "18 Peru The City and the Dogs Spanish \n", + "19 Philippines This Is My Country Tagalog \n", + "\n", + " Original title Director ( s ) \\\n", + "0 La Historia oficial Luis Puenzo \n", + "1 Malambo Milan Dor \n", + "2 Dust Marion Hänsel \n", + "3 Jacques et novembre Jean Beaudry and François Bouvier \n", + "4 Skalpel , prosím Jirí Svoboda \n", + "5 Tro , håb og kærlighed Bille August \n", + "6 Trois hommes et un couffin Coline Serreau \n", + "7 Bittere Ernte Agnieszka Holland \n", + "8 Oberst Redl István Szabó \n", + "9 Skammdegi Þráinn Bertelsson \n", + "10 सागर Ramesh Sippy \n", + "11 עד סוף הלילה Eitan Green \n", + "12 Maccheroni Ettore Scola \n", + "13 花いちもんめ Shunya Ito \n", + "14 어우동 Lee Jang-ho \n", + "15 Frida , naturaleza viva Paul Leduc \n", + "16 De Dream Pieter Verhoeff \n", + "17 Hustruer - ti år etter Anja Breien \n", + "18 La ciudad y los perros Francisco José Lombardi \n", + "19 Bayan ko : Kapit sa patalim Lino Brocka \n", + "\n", + " Result \n", + "0 Won Academy Award \n", + "1 Not Nominated \n", + "2 Not Nominated \n", + "3 Not Nominated \n", + "4 Not Nominated \n", + "5 Not Nominated \n", + "6 Nominated \n", + "7 Nominated \n", + "8 Nominated \n", + "9 Not Nominated \n", + "10 Not Nominated \n", + "11 Not Nominated \n", + "12 Not Nominated \n", + "13 Not Nominated \n", + "14 Not Nominated \n", + "15 Not Nominated \n", + "16 Not Nominated \n", + "17 Not Nominated \n", + "18 Not Nominated \n", + "19 Not Nominated },\n", + " { 'answer': 'Italian',\n", + " 'context': Submitting country Film title used in nomination Language ( s ) \\\n", + "0 Argentina The Official Story Spanish \n", + "1 Austria Malambo German \n", + "2 Belgium Dust French \n", + "3 Canada Jacques and November French \n", + "4 Czechoslovakia Scalpel , Please Czech \n", + "5 Denmark Twist and Shout Danish \n", + "6 France Three Men and a Cradle French \n", + "7 West Germany Angry Harvest German \n", + "8 Hungary Colonel Redl German \n", + "9 Iceland Deep Winter Icelandic \n", + "10 India Saagar Hindi \n", + "11 Israel When Night Falls Hebrew \n", + "12 Italy Macaroni Italian \n", + "13 Japan Gray Sunset Japanese \n", + "14 South Korea Eoudong Korean \n", + "15 Mexico Frida Still Life Spanish \n", + "16 Netherlands The Dream Dutch , West Frisian \n", + "17 Norway Wives - Ten Years After Norwegian \n", + "18 Peru The City and the Dogs Spanish \n", + "19 Philippines This Is My Country Tagalog \n", + "\n", + " Original title Director ( s ) \\\n", + "0 La Historia oficial Luis Puenzo \n", + "1 Malambo Milan Dor \n", + "2 Dust Marion Hänsel \n", + "3 Jacques et novembre Jean Beaudry and François Bouvier \n", + "4 Skalpel , prosím Jirí Svoboda \n", + "5 Tro , håb og kærlighed Bille August \n", + "6 Trois hommes et un couffin Coline Serreau \n", + "7 Bittere Ernte Agnieszka Holland \n", + "8 Oberst Redl István Szabó \n", + "9 Skammdegi Þráinn Bertelsson \n", + "10 सागर Ramesh Sippy \n", + "11 עד סוף הלילה Eitan Green \n", + "12 Maccheroni Ettore Scola \n", + "13 花いちもんめ Shunya Ito \n", + "14 어우동 Lee Jang-ho \n", + "15 Frida , naturaleza viva Paul Leduc \n", + "16 De Dream Pieter Verhoeff \n", + "17 Hustruer - ti år etter Anja Breien \n", + "18 La ciudad y los perros Francisco José Lombardi \n", + "19 Bayan ko : Kapit sa patalim Lino Brocka \n", + "\n", + " Result \n", + "0 Won Academy Award \n", + "1 Not Nominated \n", + "2 Not Nominated \n", + "3 Not Nominated \n", + "4 Not Nominated \n", + "5 Not Nominated \n", + "6 Nominated \n", + "7 Nominated \n", + "8 Nominated \n", + "9 Not Nominated \n", + "10 Not Nominated \n", + "11 Not Nominated \n", + "12 Not Nominated \n", + "13 Not Nominated \n", + "14 Not Nominated \n", + "15 Not Nominated \n", + "16 Not Nominated \n", + "17 Not Nominated \n", + "18 Not Nominated \n", + "19 Not Nominated },\n", + " { 'answer': 'Icelandic',\n", + " 'context': Submitting country Film title used in nomination Language ( s ) \\\n", + "0 Argentina The Official Story Spanish \n", + "1 Austria Malambo German \n", + "2 Belgium Dust French \n", + "3 Canada Jacques and November French \n", + "4 Czechoslovakia Scalpel , Please Czech \n", + "5 Denmark Twist and Shout Danish \n", + "6 France Three Men and a Cradle French \n", + "7 West Germany Angry Harvest German \n", + "8 Hungary Colonel Redl German \n", + "9 Iceland Deep Winter Icelandic \n", + "10 India Saagar Hindi \n", + "11 Israel When Night Falls Hebrew \n", + "12 Italy Macaroni Italian \n", + "13 Japan Gray Sunset Japanese \n", + "14 South Korea Eoudong Korean \n", + "15 Mexico Frida Still Life Spanish \n", + "16 Netherlands The Dream Dutch , West Frisian \n", + "17 Norway Wives - Ten Years After Norwegian \n", + "18 Peru The City and the Dogs Spanish \n", + "19 Philippines This Is My Country Tagalog \n", + "\n", + " Original title Director ( s ) \\\n", + "0 La Historia oficial Luis Puenzo \n", + "1 Malambo Milan Dor \n", + "2 Dust Marion Hänsel \n", + "3 Jacques et novembre Jean Beaudry and François Bouvier \n", + "4 Skalpel , prosím Jirí Svoboda \n", + "5 Tro , håb og kærlighed Bille August \n", + "6 Trois hommes et un couffin Coline Serreau \n", + "7 Bittere Ernte Agnieszka Holland \n", + "8 Oberst Redl István Szabó \n", + "9 Skammdegi Þráinn Bertelsson \n", + "10 सागर Ramesh Sippy \n", + "11 עד סוף הלילה Eitan Green \n", + "12 Maccheroni Ettore Scola \n", + "13 花いちもんめ Shunya Ito \n", + "14 어우동 Lee Jang-ho \n", + "15 Frida , naturaleza viva Paul Leduc \n", + "16 De Dream Pieter Verhoeff \n", + "17 Hustruer - ti år etter Anja Breien \n", + "18 La ciudad y los perros Francisco José Lombardi \n", + "19 Bayan ko : Kapit sa patalim Lino Brocka \n", + "\n", + " Result \n", + "0 Won Academy Award \n", + "1 Not Nominated \n", + "2 Not Nominated \n", + "3 Not Nominated \n", + "4 Not Nominated \n", + "5 Not Nominated \n", + "6 Nominated \n", + "7 Nominated \n", + "8 Nominated \n", + "9 Not Nominated \n", + "10 Not Nominated \n", + "11 Not Nominated \n", + "12 Not Nominated \n", + "13 Not Nominated \n", + "14 Not Nominated \n", + "15 Not Nominated \n", + "16 Not Nominated \n", + "17 Not Nominated \n", + "18 Not Nominated \n", + "19 Not Nominated },\n", + " { 'answer': 'Icelandic',\n", + " 'context': Submitting country Film title used in nomination Language ( s ) \\\n", + "0 Argentina The Official Story Spanish \n", + "1 Austria Malambo German \n", + "2 Belgium Dust French \n", + "3 Canada Jacques and November French \n", + "4 Czechoslovakia Scalpel , Please Czech \n", + "5 Denmark Twist and Shout Danish \n", + "6 France Three Men and a Cradle French \n", + "7 West Germany Angry Harvest German \n", + "8 Hungary Colonel Redl German \n", + "9 Iceland Deep Winter Icelandic \n", + "10 India Saagar Hindi \n", + "11 Israel When Night Falls Hebrew \n", + "12 Italy Macaroni Italian \n", + "13 Japan Gray Sunset Japanese \n", + "14 South Korea Eoudong Korean \n", + "15 Mexico Frida Still Life Spanish \n", + "16 Netherlands The Dream Dutch , West Frisian \n", + "17 Norway Wives - Ten Years After Norwegian \n", + "18 Peru The City and the Dogs Spanish \n", + "19 Philippines This Is My Country Tagalog \n", + "\n", + " Original title Director ( s ) \\\n", + "0 La Historia oficial Luis Puenzo \n", + "1 Malambo Milan Dor \n", + "2 Dust Marion Hänsel \n", + "3 Jacques et novembre Jean Beaudry and François Bouvier \n", + "4 Skalpel , prosím Jirí Svoboda \n", + "5 Tro , håb og kærlighed Bille August \n", + "6 Trois hommes et un couffin Coline Serreau \n", + "7 Bittere Ernte Agnieszka Holland \n", + "8 Oberst Redl István Szabó \n", + "9 Skammdegi Þráinn Bertelsson \n", + "10 सागर Ramesh Sippy \n", + "11 עד סוף הלילה Eitan Green \n", + "12 Maccheroni Ettore Scola \n", + "13 花いちもんめ Shunya Ito \n", + "14 어우동 Lee Jang-ho \n", + "15 Frida , naturaleza viva Paul Leduc \n", + "16 De Dream Pieter Verhoeff \n", + "17 Hustruer - ti år etter Anja Breien \n", + "18 La ciudad y los perros Francisco José Lombardi \n", + "19 Bayan ko : Kapit sa patalim Lino Brocka \n", + "\n", + " Result \n", + "0 Won Academy Award \n", + "1 Not Nominated \n", + "2 Not Nominated \n", + "3 Not Nominated \n", + "4 Not Nominated \n", + "5 Not Nominated \n", + "6 Nominated \n", + "7 Nominated \n", + "8 Nominated \n", + "9 Not Nominated \n", + "10 Not Nominated \n", + "11 Not Nominated \n", + "12 Not Nominated \n", + "13 Not Nominated \n", + "14 Not Nominated \n", + "15 Not Nominated \n", + "16 Not Nominated \n", + "17 Not Nominated \n", + "18 Not Nominated \n", + "19 Not Nominated },\n", + " { 'answer': 'Japanese',\n", + " 'context': Submitting country Film title used in nomination Language ( s ) \\\n", + "0 Argentina The Official Story Spanish \n", + "1 Austria Malambo German \n", + "2 Belgium Dust French \n", + "3 Canada Jacques and November French \n", + "4 Czechoslovakia Scalpel , Please Czech \n", + "5 Denmark Twist and Shout Danish \n", + "6 France Three Men and a Cradle French \n", + "7 West Germany Angry Harvest German \n", + "8 Hungary Colonel Redl German \n", + "9 Iceland Deep Winter Icelandic \n", + "10 India Saagar Hindi \n", + "11 Israel When Night Falls Hebrew \n", + "12 Italy Macaroni Italian \n", + "13 Japan Gray Sunset Japanese \n", + "14 South Korea Eoudong Korean \n", + "15 Mexico Frida Still Life Spanish \n", + "16 Netherlands The Dream Dutch , West Frisian \n", + "17 Norway Wives - Ten Years After Norwegian \n", + "18 Peru The City and the Dogs Spanish \n", + "19 Philippines This Is My Country Tagalog \n", + "\n", + " Original title Director ( s ) \\\n", + "0 La Historia oficial Luis Puenzo \n", + "1 Malambo Milan Dor \n", + "2 Dust Marion Hänsel \n", + "3 Jacques et novembre Jean Beaudry and François Bouvier \n", + "4 Skalpel , prosím Jirí Svoboda \n", + "5 Tro , håb og kærlighed Bille August \n", + "6 Trois hommes et un couffin Coline Serreau \n", + "7 Bittere Ernte Agnieszka Holland \n", + "8 Oberst Redl István Szabó \n", + "9 Skammdegi Þráinn Bertelsson \n", + "10 सागर Ramesh Sippy \n", + "11 עד סוף הלילה Eitan Green \n", + "12 Maccheroni Ettore Scola \n", + "13 花いちもんめ Shunya Ito \n", + "14 어우동 Lee Jang-ho \n", + "15 Frida , naturaleza viva Paul Leduc \n", + "16 De Dream Pieter Verhoeff \n", + "17 Hustruer - ti år etter Anja Breien \n", + "18 La ciudad y los perros Francisco José Lombardi \n", + "19 Bayan ko : Kapit sa patalim Lino Brocka \n", + "\n", + " Result \n", + "0 Won Academy Award \n", + "1 Not Nominated \n", + "2 Not Nominated \n", + "3 Not Nominated \n", + "4 Not Nominated \n", + "5 Not Nominated \n", + "6 Nominated \n", + "7 Nominated \n", + "8 Nominated \n", + "9 Not Nominated \n", + "10 Not Nominated \n", + "11 Not Nominated \n", + "12 Not Nominated \n", + "13 Not Nominated \n", + "14 Not Nominated \n", + "15 Not Nominated \n", + "16 Not Nominated \n", + "17 Not Nominated \n", + "18 Not Nominated \n", + "19 Not Nominated },\n", + " { 'answer': 'Japanese',\n", + " 'context': Submitting country Film title used in nomination Language ( s ) \\\n", + "0 Argentina The Official Story Spanish \n", + "1 Austria Malambo German \n", + "2 Belgium Dust French \n", + "3 Canada Jacques and November French \n", + "4 Czechoslovakia Scalpel , Please Czech \n", + "5 Denmark Twist and Shout Danish \n", + "6 France Three Men and a Cradle French \n", + "7 West Germany Angry Harvest German \n", + "8 Hungary Colonel Redl German \n", + "9 Iceland Deep Winter Icelandic \n", + "10 India Saagar Hindi \n", + "11 Israel When Night Falls Hebrew \n", + "12 Italy Macaroni Italian \n", + "13 Japan Gray Sunset Japanese \n", + "14 South Korea Eoudong Korean \n", + "15 Mexico Frida Still Life Spanish \n", + "16 Netherlands The Dream Dutch , West Frisian \n", + "17 Norway Wives - Ten Years After Norwegian \n", + "18 Peru The City and the Dogs Spanish \n", + "19 Philippines This Is My Country Tagalog \n", + "\n", + " Original title Director ( s ) \\\n", + "0 La Historia oficial Luis Puenzo \n", + "1 Malambo Milan Dor \n", + "2 Dust Marion Hänsel \n", + "3 Jacques et novembre Jean Beaudry and François Bouvier \n", + "4 Skalpel , prosím Jirí Svoboda \n", + "5 Tro , håb og kærlighed Bille August \n", + "6 Trois hommes et un couffin Coline Serreau \n", + "7 Bittere Ernte Agnieszka Holland \n", + "8 Oberst Redl István Szabó \n", + "9 Skammdegi Þráinn Bertelsson \n", + "10 सागर Ramesh Sippy \n", + "11 עד סוף הלילה Eitan Green \n", + "12 Maccheroni Ettore Scola \n", + "13 花いちもんめ Shunya Ito \n", + "14 어우동 Lee Jang-ho \n", + "15 Frida , naturaleza viva Paul Leduc \n", + "16 De Dream Pieter Verhoeff \n", + "17 Hustruer - ti år etter Anja Breien \n", + "18 La ciudad y los perros Francisco José Lombardi \n", + "19 Bayan ko : Kapit sa patalim Lino Brocka \n", + "\n", + " Result \n", + "0 Won Academy Award \n", + "1 Not Nominated \n", + "2 Not Nominated \n", + "3 Not Nominated \n", + "4 Not Nominated \n", + "5 Not Nominated \n", + "6 Nominated \n", + "7 Nominated \n", + "8 Nominated \n", + "9 Not Nominated \n", + "10 Not Nominated \n", + "11 Not Nominated \n", + "12 Not Nominated \n", + "13 Not Nominated \n", + "14 Not Nominated \n", + "15 Not Nominated \n", + "16 Not Nominated \n", + "17 Not Nominated \n", + "18 Not Nominated \n", + "19 Not Nominated },\n", + " { 'answer': 'Strength',\n", + " 'context': \\\n", + "0 Vietnam War (Chiến tranh Việt Nam) \n", + "\n", + " \\\n", + "0 Part of the Indochina Wars and the Cold War \n", + "\n", + " \\\n", + "0 Clockwise, from top left: U.S. combat operations in Ia Drang, ARVN Rangers d... \n", + "\n", + " \\\n", + "0 Date 1 November 1955[A 1] – 30 April 1975 (19 years, 5 months, 4 weeks and 1... \n", + "\n", + " Date \\\n", + "0 1 November 1955[A 1] – 30 April 1975 (19 years, 5 months, 4 weeks and 1 day) \n", + "\n", + " Location \\\n", + "0 South Vietnam, North Vietnam, Cambodia, Laos, South China Sea, Gulf of Thailand \n", + "\n", + " Result \\\n", + "0 North Vietnamese victory Withdrawal of American-led forces from Indochina Co... \n", + "\n", + " Territorial changes \\\n", + "0 Reunification of North and South Vietnam into the Socialist Republic of Viet... \n", + "\n", + " \\\n", + "0 Belligerents \n", + "\n", + " South Vietnam United States  South Korea  Thailand  Australia  Philippines  New Zealand  Khmer Republic  Kingdom of Laos Military support:  Taiwan[1][2] Other support[show]  Malaysia[3][4] Spain[2]  Canada [2] Iran[2]  West Germany[2]  Brazil[5]  Japan[2] \\\n", + "0 North Vietnam Viet Cong Khmer Rouge Pathet Lao  China  North Korea Milita... \n", + "\n", + " \\\n", + "0 Commanders and leaders \n", + "\n", + " Ngô Đình Diệm † Nguyễn Văn Thiệu Nguyễn Cao Kỳ Cao Văn Viên Ngô Quang Trưởng John F. Kennedy Lyndon B. Johnson Richard Nixon Gerald Ford Robert McNamara William Westmoreland Creighton Abrams Frederick C. Weyand Park Chung-hee Thanom Kittikachorn Robert Menzies Harold Holt John McEwen John Gorton William McMahon Ferdinand Marcos Keith Holyoake Jack Marshall Norman Kirk Chiang Kai-Shek …and others \\\n", + "0 Ho Chi Minh Lê Duẩn Võ Nguyên Giáp Văn Tiến Dũng Lê Trọng Tấn Phạm Văn ... \n", + "\n", + " \\\n", + "0 Strength \n", + "\n", + " ≈1,420,000 (1968)  South Vietnam: 850,000 (1968) 1,500,000 (1974–75)[21]  United States: 543,000 (April 1969)[22][23]  South Korea: 50,003  Thailand: 11,570[24]  Australia: 7,672  Philippines: 2,061  New Zealand: 552[25] \\\n", + "0 ≈1,060,000 (1967)  North Vietnam: 690,000 (January 1967)[26] Viet Cong: 200... \n", + "\n", + " \\\n", + "0 Casualties and losses \n", + "\n", + " South Vietnam 195,000–430,000 civilian dead[32][33][34] 220,357[35]–313,000 military dead[36] 1,170,000 wounded[37]  United States 58,220 dead;[38] 303,644 wounded (including 150,341 not requiring hospital care)[A 2]  South Korea 5,099 dead; 10,962 wounded; 4 missing  Australia 521 dead; 3,129 wounded [43]  Thailand 351 dead; 1,358 wounded[44]  New Zealand 37 dead; 187 wounded[45]  Taiwan 25 dead;[46]  Philippines 9 dead;[47] 64 wounded[48] Total military dead: 284,668–377,311 Total wounded: ≈1,340,000+[37] \\\n", + "0 North Vietnam & Viet Cong 65,000 civilian dead[33] 849,018 military dead[49]... \n", + "\n", + " \n", + "0 Vietnamese civilian dead: 627,000–2,000,000[33][53][54] Vietnamese total dea... },\n", + " { 'answer': 'Ho Chi Minh Lê Duẩn Võ Nguyên Giáp Văn Tiến Dũng Lê '\n", + " 'Trọng Tấn Phạm Văn Đồng Hoàng Văn Thái Trần Văn Trà '\n", + " 'Nguyễn Văn Linh Nguyễn Hữu Thọ …and others',\n", + " 'context': \\\n", + "0 Vietnam War (Chiến tranh Việt Nam) \n", + "\n", + " \\\n", + "0 Part of the Indochina Wars and the Cold War \n", + "\n", + " \\\n", + "0 Clockwise, from top left: U.S. combat operations in Ia Drang, ARVN Rangers d... \n", + "\n", + " \\\n", + "0 Date 1 November 1955[A 1] – 30 April 1975 (19 years, 5 months, 4 weeks and 1... \n", + "\n", + " Date \\\n", + "0 1 November 1955[A 1] – 30 April 1975 (19 years, 5 months, 4 weeks and 1 day) \n", + "\n", + " Location \\\n", + "0 South Vietnam, North Vietnam, Cambodia, Laos, South China Sea, Gulf of Thailand \n", + "\n", + " Result \\\n", + "0 North Vietnamese victory Withdrawal of American-led forces from Indochina Co... \n", + "\n", + " Territorial changes \\\n", + "0 Reunification of North and South Vietnam into the Socialist Republic of Viet... \n", + "\n", + " \\\n", + "0 Belligerents \n", + "\n", + " South Vietnam United States  South Korea  Thailand  Australia  Philippines  New Zealand  Khmer Republic  Kingdom of Laos Military support:  Taiwan[1][2] Other support[show]  Malaysia[3][4] Spain[2]  Canada [2] Iran[2]  West Germany[2]  Brazil[5]  Japan[2] \\\n", + "0 North Vietnam Viet Cong Khmer Rouge Pathet Lao  China  North Korea Milita... \n", + "\n", + " \\\n", + "0 Commanders and leaders \n", + "\n", + " Ngô Đình Diệm † Nguyễn Văn Thiệu Nguyễn Cao Kỳ Cao Văn Viên Ngô Quang Trưởng John F. Kennedy Lyndon B. Johnson Richard Nixon Gerald Ford Robert McNamara William Westmoreland Creighton Abrams Frederick C. Weyand Park Chung-hee Thanom Kittikachorn Robert Menzies Harold Holt John McEwen John Gorton William McMahon Ferdinand Marcos Keith Holyoake Jack Marshall Norman Kirk Chiang Kai-Shek …and others \\\n", + "0 Ho Chi Minh Lê Duẩn Võ Nguyên Giáp Văn Tiến Dũng Lê Trọng Tấn Phạm Văn ... \n", + "\n", + " \\\n", + "0 Strength \n", + "\n", + " ≈1,420,000 (1968)  South Vietnam: 850,000 (1968) 1,500,000 (1974–75)[21]  United States: 543,000 (April 1969)[22][23]  South Korea: 50,003  Thailand: 11,570[24]  Australia: 7,672  Philippines: 2,061  New Zealand: 552[25] \\\n", + "0 ≈1,060,000 (1967)  North Vietnam: 690,000 (January 1967)[26] Viet Cong: 200... \n", + "\n", + " \\\n", + "0 Casualties and losses \n", + "\n", + " South Vietnam 195,000–430,000 civilian dead[32][33][34] 220,357[35]–313,000 military dead[36] 1,170,000 wounded[37]  United States 58,220 dead;[38] 303,644 wounded (including 150,341 not requiring hospital care)[A 2]  South Korea 5,099 dead; 10,962 wounded; 4 missing  Australia 521 dead; 3,129 wounded [43]  Thailand 351 dead; 1,358 wounded[44]  New Zealand 37 dead; 187 wounded[45]  Taiwan 25 dead;[46]  Philippines 9 dead;[47] 64 wounded[48] Total military dead: 284,668–377,311 Total wounded: ≈1,340,000+[37] \\\n", + "0 North Vietnam & Viet Cong 65,000 civilian dead[33] 849,018 military dead[49]... \n", + "\n", + " \n", + "0 Vietnamese civilian dead: 627,000–2,000,000[33][53][54] Vietnamese total dea... },\n", + " { 'answer': 'North Vietnam Viet Cong Khmer Rouge Pathet Lao \\xa0'\n", + " 'China \\xa0North Korea Military support: \\xa0Soviet '\n", + " 'Union \\xa0Cuba[6][7] Other support[show] '\n", + " 'Czechoslovakia[8][9] Bulgaria[10] \\xa0East '\n", + " 'Germany[11][12] Romania[13] \\xa0Poland[14] '\n", + " 'Hungary[14] \\xa0Sweden[15][16]',\n", + " 'context': \\\n", + "0 Vietnam War (Chiến tranh Việt Nam) \n", + "\n", + " \\\n", + "0 Part of the Indochina Wars and the Cold War \n", + "\n", + " \\\n", + "0 Clockwise, from top left: U.S. combat operations in Ia Drang, ARVN Rangers d... \n", + "\n", + " \\\n", + "0 Date 1 November 1955[A 1] – 30 April 1975 (19 years, 5 months, 4 weeks and 1... \n", + "\n", + " Date \\\n", + "0 1 November 1955[A 1] – 30 April 1975 (19 years, 5 months, 4 weeks and 1 day) \n", + "\n", + " Location \\\n", + "0 South Vietnam, North Vietnam, Cambodia, Laos, South China Sea, Gulf of Thailand \n", + "\n", + " Result \\\n", + "0 North Vietnamese victory Withdrawal of American-led forces from Indochina Co... \n", + "\n", + " Territorial changes \\\n", + "0 Reunification of North and South Vietnam into the Socialist Republic of Viet... \n", + "\n", + " \\\n", + "0 Belligerents \n", + "\n", + " South Vietnam United States  South Korea  Thailand  Australia  Philippines  New Zealand  Khmer Republic  Kingdom of Laos Military support:  Taiwan[1][2] Other support[show]  Malaysia[3][4] Spain[2]  Canada [2] Iran[2]  West Germany[2]  Brazil[5]  Japan[2] \\\n", + "0 North Vietnam Viet Cong Khmer Rouge Pathet Lao  China  North Korea Milita... \n", + "\n", + " \\\n", + "0 Commanders and leaders \n", + "\n", + " Ngô Đình Diệm † Nguyễn Văn Thiệu Nguyễn Cao Kỳ Cao Văn Viên Ngô Quang Trưởng John F. Kennedy Lyndon B. Johnson Richard Nixon Gerald Ford Robert McNamara William Westmoreland Creighton Abrams Frederick C. Weyand Park Chung-hee Thanom Kittikachorn Robert Menzies Harold Holt John McEwen John Gorton William McMahon Ferdinand Marcos Keith Holyoake Jack Marshall Norman Kirk Chiang Kai-Shek …and others \\\n", + "0 Ho Chi Minh Lê Duẩn Võ Nguyên Giáp Văn Tiến Dũng Lê Trọng Tấn Phạm Văn ... \n", + "\n", + " \\\n", + "0 Strength \n", + "\n", + " ≈1,420,000 (1968)  South Vietnam: 850,000 (1968) 1,500,000 (1974–75)[21]  United States: 543,000 (April 1969)[22][23]  South Korea: 50,003  Thailand: 11,570[24]  Australia: 7,672  Philippines: 2,061  New Zealand: 552[25] \\\n", + "0 ≈1,060,000 (1967)  North Vietnam: 690,000 (January 1967)[26] Viet Cong: 200... \n", + "\n", + " \\\n", + "0 Casualties and losses \n", + "\n", + " South Vietnam 195,000–430,000 civilian dead[32][33][34] 220,357[35]–313,000 military dead[36] 1,170,000 wounded[37]  United States 58,220 dead;[38] 303,644 wounded (including 150,341 not requiring hospital care)[A 2]  South Korea 5,099 dead; 10,962 wounded; 4 missing  Australia 521 dead; 3,129 wounded [43]  Thailand 351 dead; 1,358 wounded[44]  New Zealand 37 dead; 187 wounded[45]  Taiwan 25 dead;[46]  Philippines 9 dead;[47] 64 wounded[48] Total military dead: 284,668–377,311 Total wounded: ≈1,340,000+[37] \\\n", + "0 North Vietnam & Viet Cong 65,000 civilian dead[33] 849,018 military dead[49]... \n", + "\n", + " \n", + "0 Vietnamese civilian dead: 627,000–2,000,000[33][53][54] Vietnamese total dea... },\n", + " { 'answer': 'Canada',\n", + " 'context': Place Player Country Score To par\n", + "0 1 Phil Mickelson United States 70-72-70=212 –4\n", + "1 T2 Chad Campbell United States 71-67-75=213 –3\n", + "2 T2 Fred Couples United States 71-70-72=213 –3\n", + "3 T4 Stephen Ames Canada 74-70-70=214 –2\n", + "4 T4 Tim Clark South Africa 70-72-72=214 –2\n", + "5 T4 Darren Clarke Northern Ireland 72-70-72=214 –2\n", + "6 T4 Rocco Mediate United States 68-73-73=214 –2\n", + "7 T4 Vijay Singh Fiji 67-74-73=214 –2\n", + "8 T4 Tiger Woods United States 72-71-71=214 –2\n", + "9 T10 Retief Goosen South Africa 70-73-72=215 –1\n", + "10 T10 Miguel Ángel Jiménez Spain 72-74-69=215 –1},\n", + " { 'answer': 'England',\n", + " 'context': 'd Estate. The exterior of the Cragside country house in '\n", + " 'Northumberland, England, along with its coniferous '\n", + " 'surroundings, was used to depict the Lockwo'},\n", + " { 'answer': 'Miami',\n", + " 'context': 'uld air on December 18, 2017. On October 30, 2017, VH1 '\n", + " 'announced \"\", the Miami-based spin-off of \"Love & Hip '\n", + " 'Hop\", would make its series premiere on J'},\n", + " { 'answer': 'Southern',\n", + " 'context': \" Cledus' dog Fred's barking) and music (such as the final \"\n", + " 'chase to the Southern Classic) were removed and not '\n", + " 'replaced. (Note: earlier DVD releases an'},\n", + " { 'answer': 'Scotland',\n", + " 'context': 'it with them to other regions, notably Scotland and the '\n", + " 'Isle of Man, where Middle Irish gave rise to Scottish '\n", + " 'Gaelic and Manx respectively. It has the'},\n", + " { 'answer': 'American',\n", + " 'context': 'film) Rhapsody in Blue is a 1945 fictionalized screen '\n", + " 'biography of the American composer and musician George '\n", + " 'Gershwin (September 26, 1898 – July 11, 1'},\n", + " { 'answer': 'United States',\n", + " 'context': ' in the film\\'s financing and production. \"The Terminator\" '\n", + " 'topped the United States box office for two weeks and '\n", + " \"helped launch Cameron's film career an\"}]\n" + ] + } + ], + "source": [ + "# We can see both text passages and tables as contexts of the predicted answers.\n", + "print_answers(predictions, details=\"minimum\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Evaluation\n", + "To evaluate our pipeline, we can use haystack's evaluation feature. We just need to convert our labels into `MultiLabel` objects and the `eval` method will do the rest." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "from haystack import Label, MultiLabel, Answer\n", + "\n", + "\n", + "def read_labels(filename, tables):\n", + " processed_labels = []\n", + " with open(filename) as labels:\n", + " labels = json.load(labels)\n", + " for table in tables:\n", + " if table.id not in labels:\n", + " continue\n", + " label = labels[table.id]\n", + " label = Label(\n", + " query=label[\"query\"],\n", + " document=table,\n", + " is_correct_answer=True,\n", + " is_correct_document=True,\n", + " answer=Answer(answer=label[\"answer\"]),\n", + " origin=\"gold-label\",\n", + " )\n", + " processed_labels.append(MultiLabel(labels=[label]))\n", + " return processed_labels\n", + "\n", + "\n", + "table_labels = read_labels(f\"{doc_dir}/labels.json\", tables)\n", + "passage_labels = read_labels(f\"{doc_dir}/labels.json\", passages)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "eval_results = text_table_qa_pipeline.eval(table_labels + passage_labels, params={\"top_k\": 10})" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'JoinAnswers': {'f1': 0.7126190476190477, 'exact_match': 0.6}}\n" ] } + ], + "source": [ + "# Calculating and printing the evaluation metrics\n", + "print(eval_results.calculate_metrics())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding tables from PDFs\n", + "It can sometimes be hard to provide your data in form of a pandas DataFrame. For this case, we provide the `ParsrConverter` wrapper that can help you to convert, for example, a PDF file into a document that you can index." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!docker run -d -p 3001:3001 axarev/parsr" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "!wget https://www.w3.org/WAI/WCAG21/working-examples/pdf-table/table.pdf" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "from haystack.nodes import ParsrConverter\n", + "\n", + "converter = ParsrConverter()\n", + "\n", + "docs = converter.convert(\"table.pdf\")\n", + "\n", + "tables = [doc for doc in docs if doc[\"content_type\"] == \"table\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'content': [['Disability\\nCategory', 'Participants', 'Ballots\\nCompleted', 'Ballots\\nIncomplete/\\nTerminated', 'Results', 'Results'], ['Disability\\nCategory', 'Participants', 'Ballots\\nCompleted', 'Ballots\\nIncomplete/\\nTerminated', 'Accuracy', 'Time to\\ncomplete'], ['Blind', '5', '1', '4', '34.5%, n=1', '1199 sec, n=1'], ['Low Vision', '5', '2', '3', '98.3% n=2\\n(97.7%, n=3)', '1716 sec, n=3\\n(1934 sec, n=2)'], ['Dexterity', '5', '4', '1', '98.3%, n=4', '1672.1 sec, n=4'], ['Mobility', '3', '3', '0', '95.4%, n=3', '1416 sec, n=3']], 'content_type': 'table', 'meta': {'preceding_context': 'Example table\\nThis is an example of a data table.', 'following_context': ''}}]\n" + ] + } + ], + "source": [ + "print(tables)" ] }, { @@ -1349,9 +3224,18 @@ "name": "python3" }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" } }, "nbformat": 4, "nbformat_minor": 0 -} \ No newline at end of file +} diff --git a/tutorials/Tutorial15_TableQA.py b/tutorials/Tutorial15_TableQA.py index 316b27a129..5501b4bc89 100644 --- a/tutorials/Tutorial15_TableQA.py +++ b/tutorials/Tutorial15_TableQA.py @@ -1,12 +1,14 @@ +import os import json import pandas as pd +from haystack import Label, MultiLabel, Answer from haystack.utils import launch_es, fetch_archive_from_http, print_answers from haystack.document_stores import ElasticsearchDocumentStore from haystack import Document, Pipeline from haystack.nodes.retriever import TableTextRetriever -from haystack.nodes import TableReader, FARMReader, RouteDocuments, JoinAnswers +from haystack.nodes import TableReader, FARMReader, RouteDocuments, JoinAnswers, ParsrConverter def tutorial15_tableqa(): @@ -23,14 +25,14 @@ def tutorial15_tableqa(): ## Add Tables to DocumentStore # Let's first fetch some tables that we want to query - # Here: 1000 tables from OTT-QA + # Here: 1000 tables + texts doc_dir = "data/tutorial15" - s3_url = "https://s3.eu-central-1.amazonaws.com/deepset.ai-farm-qa/datasets/documents/ottqa_sample.zip" + s3_url = "https://s3.eu-central-1.amazonaws.com/deepset.ai-farm-qa/datasets/documents/table_text_dataset.zip" fetch_archive_from_http(url=s3_url, output_dir=doc_dir) # Add the tables to the DocumentStore - def read_ottqa_tables(filename): + def read_tables(filename): processed_tables = [] with open(filename) as tables: tables = json.load(tables) @@ -38,19 +40,12 @@ def read_ottqa_tables(filename): current_columns = table["header"] current_rows = table["data"] current_df = pd.DataFrame(columns=current_columns, data=current_rows) - current_doc_title = table["title"] - current_section_title = table["section_title"] - document = Document( - content=current_df, - content_type="table", - meta={"title": current_doc_title, "section_title": current_section_title}, - id=key, - ) + document = Document(content=current_df, content_type="table", id=key) processed_tables.append(document) return processed_tables - tables = read_ottqa_tables(f"{doc_dir}/ottqa_tables_sample.json") + tables = read_tables(f"{doc_dir}/tables.json") document_store.write_documents(tables, index="document") ### Retriever @@ -79,7 +74,7 @@ def read_ottqa_tables(filename): # Try the Retriever from haystack.utils import print_documents - retrieved_tables = retriever.retrieve("How many twin buildings are under construction?", top_k=5) + retrieved_tables = retriever.retrieve("Who won the Super Bowl?", top_k=5) # Get highest scored table print(retrieved_tables[0].content) @@ -93,12 +88,12 @@ def read_ottqa_tables(filename): reader = TableReader(model_name_or_path="google/tapas-base-finetuned-wtq", max_seq_len=512) - # Try the TableReader on one Table (highest-scored retrieved table) + # Try the TableReader on one Table - table_doc = document_store.get_document_by_id("List_of_tallest_twin_buildings_and_structures_in_the_world_1") + table_doc = document_store.get_document_by_id("36964e90-3735-4ba1-8e6a-bec236e88bb2") print(table_doc.content) - prediction = reader.predict(query="How many twin buildings are under construction?", documents=[table_doc]) + prediction = reader.predict(query="Who played Gregory House in the series House?", documents=[table_doc]) print_answers(prediction, details="minimum") ### Pipeline @@ -112,7 +107,7 @@ def read_ottqa_tables(filename): table_qa_pipeline.add_node(component=retriever, name="TableTextRetriever", inputs=["Query"]) table_qa_pipeline.add_node(component=reader, name="TableReader", inputs=["TableTextRetriever"]) - prediction = table_qa_pipeline.run("How many twin buildings are under construction?") + prediction = table_qa_pipeline.run("When was Guilty Gear Xrd : Sign released?") print_answers(prediction, details="minimum") ### Pipeline for QA on Combination of Text and Tables @@ -136,16 +131,72 @@ def read_ottqa_tables(filename): text_table_qa_pipeline.add_node(component=table_reader, name="TableReader", inputs=["RouteDocuments.output_2"]) text_table_qa_pipeline.add_node(component=join_answers, name="JoinAnswers", inputs=["TextReader", "TableReader"]) + # Add texts to the document store + def read_texts(filename): + processed_passages = [] + with open(filename) as passages: + passages = json.load(passages) + for key, content in passages.items(): + document = Document(content=content, content_type="text", id=key) + processed_passages.append(document) + + return processed_passages + + passages = read_texts(f"{doc_dir}/texts.json") + document_store.write_documents(passages) + # Example query whose answer resides in a text passage - predictions = text_table_qa_pipeline.run(query="Who is Aleksandar Trifunovic?") + predictions = text_table_qa_pipeline.run(query="Which country does the film Macaroni come from?") # We can see both text passages and tables as contexts of the predicted answers. print_answers(predictions, details="minimum") # Example query whose answer resides in a table - predictions = text_table_qa_pipeline.run(query="What is Cuba's national tree?") + predictions = text_table_qa_pipeline.run(query="Who was Thomas Alva Edison?") # We can see both text passages and tables as contexts of the predicted answers. print_answers(predictions, details="minimum") + ### Evaluation + # To evaluate our pipeline, we can use haystack's evaluation feature. We just need to convert our labels into `MultiLabel` objects and the `eval` method will do the rest. + + def read_labels(filename, tables): + processed_labels = [] + with open(filename) as labels: + labels = json.load(labels) + for table in tables: + if table.id not in labels: + continue + label = labels[table.id] + label = Label( + query=label["query"], + document=table, + is_correct_answer=True, + is_correct_document=True, + answer=Answer(answer=label["answer"]), + origin="gold-label", + ) + processed_labels.append(MultiLabel(labels=[label])) + return processed_labels + + table_labels = read_labels(f"{doc_dir}/labels.json", tables) + passage_labels = read_labels(f"{doc_dir}/labels.json", passages) + + eval_results = text_table_qa_pipeline.eval(table_labels + passage_labels, params={"top_k": 10}) + + # Calculating and printing the evaluation metrics + print(eval_results.calculate_metrics()) + + ## Adding tables from PDFs + # It can sometimes be hard to provide your data in form of a pandas DataFrame. + # For this case, we provide the `ParsrConverter` wrapper that can help you to convert, for example, a PDF file into a document that you can index. + os.system("docker run -d -p 3001:3001 axarev/parsr") + os.system("wget https://www.w3.org/WAI/WCAG21/working-examples/pdf-table/table.pdf") + + converter = ParsrConverter() + docs = converter.convert("table.pdf") + tables = [doc for doc in docs if doc["content_type"] == "table"] + + print(tables) + if __name__ == "__main__": tutorial15_tableqa()