Created
October 9, 2024 08:18
-
-
Save yungwarlock/36417718920fb193ef346c12cf96dba3 to your computer and use it in GitHub Desktop.
MySchoolNG Past Questions.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/yungwarlock/36417718920fb193ef346c12cf96dba3/myschoolng-past-questions.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "w_JDyiMcOLc7" | |
}, | |
"source": [ | |
"## MySchoolNG Past Question Extractor" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"cellView": "form", | |
"id": "nawuF7NNOaOQ" | |
}, | |
"outputs": [], | |
"source": [ | |
"# @title Scraper Info\n", | |
"\n", | |
"subject = \"mathematics\" # @param {\"type\":\"string\"}\n", | |
"exam = \"waec\" # @param {\"type\":\"string\"}\n", | |
"DEBUG = False # @param {\"type\":\"boolean\"}\n", | |
"curriculum = \"SN\\tTOPICS\\tOBJECTIVES\\t 1\\tNUMBER BASES\\t(i) conversion of numbers from one base to another(ii) Basic operations on number bases\\t 2\\tMODULAR ARITHMETIC\\t(i) Concept of Modulo Arithmetic.(ii) Addition, subtraction, and multiplication operations in modulo arithmetic. (iii) Application to daily life\\t 3\\tFRACTIONS, DECIMALS AND APPROXIMATIONS\\t(i) Basic operations on fractions and decimals.(ii) Approximations and significant figures.\\t 4\\tINDICES\\t(i) Laws of indices(ii) Numbers in standard form ( scientific notation)\\t 5\\tLOGARITHMS\\t(i) Relationship between indices and logarithms e.g. y = 10k implies log10y = k.(ii) Basic rules of logarithms e.g. log10(pq) = log10p + log10q log10(p/q) = log10p – log10q log10p n = nlog10p. (iii) Use of tables of logarithms and anti logarithms.\\t 6\\tSEQUENCES AND SERIES\\t(i) Patterns of sequences.(ii) Arithmetic progression (A.P.) Geometric Progression (G.P.)\\t 7\\tSETS\\t(i) Idea of sets, universal sets, finite and infinite sets, subsets, empty sets, and disjoint sets. Idea of and notation for union, intersection and complement of sets.(ii) Solution of practical problems involving classification using Venn diagrams.\\t 8\\tLOGICAL REASONING\\tSimple statements. True and false statements. Negation of statements, implications.\\t 9\\tPOSITIVE & NEGATIVE INTEGERS, RATIONAL NUMBERS\\tThe four basic operations on rational numbers.\\t 10\\tSURDS(RADICALS)\\tSimplification and rationalization of simple surds.\\t 11\\tMATRICES & DETERMINANTS\\t(i) Identification of order, notation, and types of matrices.(ii) Addition, subtraction, scalar multiplication, and multiplication of matrices. (iii) Determinant of a matrix\\t 12\\tRATIO, PROPORTIONS & RATES\\tRatio between two similar quantities. Proportion between two or more similar quantities.Financial partnerships, rates of work, costs, taxes, foreign exchange, density (e.g. population), mass, distance, time, and speed.\\t 13\\tPERCENTAGES\\tSimple interest, commission, discount, depreciation, profit and loss, compound interest, hire purchase, and percentage error.\\t 14\\tFINANCIAL ARITHMETIC\\t(i) Depreciation/ Amortization(ii) Annuities (iii) Capital Market Instruments\\t 15\\tVARIATION\\tDirect, inverse, partial, and joint variations.\\t 16\\tALGEBRAIC EXPRESSIONS\\t(i) Formulating algebraic expressions from given situations( ii ) Evaluation of algebraic expressions\\t 17\\tSIMPLE OPERATIONS ON ALGEBRAIC EXPRESSIONS\\t( i ) Expansion(ii ) Factorization (iii) Binary Operations\\t 18\\tSOLUTIONS OF LINEAR EQUATION\\t(i) Linear equations in one variable(ii) Simultaneous linear equations in two variables.\\t 19\\tCHANGE OF A SUBJECT OF FORMULA/RELATION\\t(i) Change of subject of a formula/relation(ii) Substitution\\t 20\\tQUADRATIC EQUATIONS\\t(i) Solution of quadratic equations(ii) Forming quadratic equation with given roots. (iii) Application of solution of quadratic equation in practical problems.\\t 21\\tGRAPHS OF LINEAR & QUADRATIC FUNCTIONS\\t(i) Interpretation of graphs, coordinate of points, table of values, drawing quadratic graphs and obtaining roots from graphs.( ii ) Graphical solution of a pair of equations of the form: y = ax^{2} + bx + c and y = mx + k *(iii) Drawing tangents to curves to determine the gradient at a given point.\\t 22\\tLINEAR INEQUALITIES\\t(i) Solution of linear inequalities in one variable and representation on the number line.∗(ii) Graphical solution of linear inequalities in two variables. ∗(iii) Graphical solution of simultaneous linear inequalities in two variables.\\t 23\\tALGEBRAIC FUNCTIONS\\tOperations on algebraic fractions with:(i) Monomial denominators ( ii ) Binomial denominators\\t 24\\tFUNCTIONS AND RELATIONS\\tTypes of Functions\\t 25\\tLENGTHS & PERIMETERS\\t(i) Use of Pythagoras theorem, sine and cosine rules to determine lengths and distances.(ii) Lengths of arcs of circles, perimeters of sectors and segments. (iii) Longitudes and Latitudes.\\t 26\\tAREAS\\t(i) Triangles and special quadrilaterals – rectangles, parallelograms and trapeziums(ii) Circles, sectors and segments of circles. (iii) Surface areas of cubes, cuboids, cylinder, pyramids, right triangular prisms, cones and spheres.\\t 27\\tVOLUMES\\t(i) Volumes of cubes, cuboids, cylinders, cones, right pyramids and spheres.(ii) Volumes of similar solids\\t 28\\tANGLES\\t(i) Angles at a point add up to 360°.(ii) Adjacent angles on a straight line are supplementary. (iii) Vertically opposite angles are equal.\\t 29\\tANGLES & INTERCEPTS AT PARALLEL LINES\\t(i) Alternate angles are equal.(ii) Corresponding angles are equal. (iii) Interior opposite angles are supplementary (iv) Intercept theorem.\\t 30\\tTRIANGLES AND POLYGONS\\t(i) The sum of the angles of a triangle is 2 right angles.(ii) The exterior angle of a triangle equals the sum of the two interior opposite angles. (iii) Congruent triangles. ( iv ) Properties of special triangles – Isosceles, equilateral, right-angled, etc (v) Properties of special quadrilaterals – parallelogram, rhombus, square, rectangle, trapezium. ( vi ) Properties of similar triangles. ( vii ) The sum of the angles of a polygon (viii) Property of exterior angles of a polygon. (ix) Parallelograms on the same base and between the same parallels are equal in area.\\t 31\\tCIRCLES\\t(i) Chords.(ii) The angle which an arc of a circle subtends at the centre of the circle is twice that which it subtends at any point on the remaining part of the circumference. (iii) Any angle subtended at the circumference by a diameter is a right angle. (iv) Angles in the same segment are equal. (v) Angles in opposite segments are supplementary. (vi) Perpendicularity of tangent and radius. (vii) If a tangent is drawn to a circle and from the point of contact a chord is drawn, each angle which this chord makes with the tangent is equal to the angle in the alternate segment.\\t 32\\tCONSTRUCTION\\t(i) Bisectors of angles and line segments(ii) Line parallel or perpendicular to a given line. (iii ) Angles e.g. 90°, 60°, 45°, 30°, and an angle equal to a given angle. (iv) Triangles and quadrilaterals from sufficient data.\\t 33\\tCO-ORDINATE GEOMETRY OF STRAIGHT LINES\\t(i) Concept of the x-y plane.(ii) Coordinates of points on the x-y plane.\\t 34\\tSINE, COSINE AND TANGENT OF AN ANGLE\\t(i) Sine, Cosine and Tangent of acute angles.(ii) Use of tables of trigonometric ratios. (iii) Trigonometric ratios of 30°, 45° and 60°. (iv) Sine, cosine and tangent of angles from 0° to 360°. (v) Graphs of sine and cosine. (vi) Graphs of trigonometric ratios\\t 35\\tANGLES OF ELEVATION & DEPRESSION\\t(i) Calculating angles of elevation and depression.(ii) Application to heights and distances.\\t 36\\tBEARINGS\\t(i) Bearing of one point from another.(ii) Calculation of distances and angles\\t 40\\tINTRODUCTORY CALCULUS\\t(i) Differentiation of algebraic functions.(ii) Integration of simple Algebraic functions.\\t 41\\tSTATISTICS\\t(i) Frequency distribution( ii ) Pie charts, bar charts, histograms and frequency polygons (iii) Mean, median and mode for both discrete and grouped data. (iv) Cumulative frequency curve (Ogive). (v) Measures of Dispersion: range, semi inter-quartile/interquartile range, variance, mean deviation and standard deviation.\\t 42\\tPROBABILITY\\t(i) Experimental and theoretical probability.(ii) Addition of probabilities for mutually exclusive and independent events. (iii) Multiplication of probabilities for independent events.\\t 43\\tVECTORS IN A PLANE\\t(i) Vectors as a directed line segment.(ii) Cartesian components of a vector (iii) Magnitude of a vector, equal vectors, addition and subtraction of vectors, zero vector, parallel vectors, multiplication of a vector by scalar.\\t 44\\tTRANSFORMATION IN THE CARTESIAN PLANE\\t(i) Reflection of points and shapes in the Cartesian Plane.(ii) Rotation of points and shapes in the Cartesian Plane. (iii) Translation of points and shapes in the Cartesian Plane.\\t\" # @param {\"type\":\"string\"}\n", | |
"gemini_api_key = \"\" # @param {\"type\":\"string\"}\n", | |
"together_api_key = \"\" # @param {\"type\":\"string\"}" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "RZKQ4C0eOR1K" | |
}, | |
"source": [ | |
"## Setup Dependencies" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "nsj5eM6fMf50" | |
}, | |
"outputs": [], | |
"source": [ | |
"%pip install -qU langchain langchain-google-genai langchain-together duckdb tenacity tqdm sentence-transformers\n", | |
"%pip install -qU --upgrade duckdb jupysql==0.10.12 duckdb-engine" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "qg52amyRh1s3" | |
}, | |
"outputs": [], | |
"source": [ | |
"import duckdb\n", | |
"import pandas as pd\n", | |
"# No need to import sqlalchemy or duckdb_engine\n", | |
"# JupySQL will use SQLAlchemy to auto-detect the driver needed based on your connection string!\n", | |
"\n", | |
"# Import jupysql Jupyter extension to create SQL cells\n", | |
"%load_ext sql\n", | |
"\n", | |
"%config SqlMagic.autopandas = True\n", | |
"%config SqlMagic.feedback = False\n", | |
"%config SqlMagic.displaycon = False\n", | |
"\n", | |
"%sql duckdb:///:memory:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "TrYx463APiSr" | |
}, | |
"outputs": [], | |
"source": [ | |
"import os\n", | |
"\n", | |
"if gemini_api_key and together_api_key:\n", | |
" os.environ[\"GEMINI_API_KEY\"] = gemini_api_key\n", | |
" os.environ[\"TOGETHER_API_KEY\"] = together_api_key\n", | |
"else:\n", | |
" try:\n", | |
" from google.colab import userdata\n", | |
" os.environ[\"GEMINI_API_KEY\"] = userdata.get(\"GEMINI_API_KEY\")\n", | |
" os.environ[\"TOGETHER_API_KEY\"] = userdata.get(\"TOGETHER_API_KEY\")\n", | |
" except Exception as e:\n", | |
" raise Exception(\n", | |
" \"You are not in a Colab Environment or you have not set a Gemini api key\"\n", | |
" ) from e\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "0DkNMJrTQL65" | |
}, | |
"outputs": [], | |
"source": [ | |
"import duckdb\n", | |
"\n", | |
"conn = duckdb.connect(f\"{exam}.db\")\n", | |
"conn.sql(f\"\"\"\\\n", | |
"CREATE TABLE IF NOT EXISTS {subject} (\n", | |
" question VARCHAR,\n", | |
" image_url VARCHAR,\n", | |
" options VARCHAR[],\n", | |
" year INTEGER,\n", | |
" theme VARCHAR\n", | |
")\n", | |
"\"\"\")\n", | |
"conn.execute(\"FORCE CHECKPOINT\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "-nL11EggOUR4" | |
}, | |
"source": [ | |
"## Main Scripts" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "d7UMJGsqPshh" | |
}, | |
"outputs": [], | |
"source": [ | |
"import re\n", | |
"import os\n", | |
"import json\n", | |
"\n", | |
"from langchain.globals import set_debug, set_verbose\n", | |
"\n", | |
"from langchain_together import ChatTogether\n", | |
"from langchain_google_genai import ChatGoogleGenerativeAI\n", | |
"\n", | |
"\n", | |
"if DEBUG:\n", | |
" set_debug(True)\n", | |
" set_verbose(True)\n", | |
"\n", | |
"\n", | |
"# choose from our 50+ models here: https://docs.together.ai/docs/inference-models\n", | |
"llama_together = ChatTogether(\n", | |
" model=\"meta-llama/Llama-3.2-11B-Vision-Instruct-Turbo\",\n", | |
" together_api_key=os.environ.get(\"TOGETHER_API_KEY\", \"\"),\n", | |
")\n", | |
"\n", | |
"model = ChatGoogleGenerativeAI( # type: ignore\n", | |
" max_output_tokens=10000,\n", | |
" model=\"gemini-1.5-flash\",\n", | |
" google_api_key=os.environ.get(\"GEMINI_API_KEY\", \"\"), # type: ignore\n", | |
")\n", | |
"\n", | |
"large_model = ChatGoogleGenerativeAI( # type: ignore\n", | |
" max_output_tokens=1024,\n", | |
" model=\"gemini-1.5-pro\",\n", | |
" google_api_key=os.environ.get(\"GEMINI_API_KEY\", \"\"), # type: ignore\n", | |
")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "p7DSv2KUPP5y" | |
}, | |
"outputs": [], | |
"source": [ | |
"import json\n", | |
"\n", | |
"from tenacity import retry, stop_after_attempt, wait_fixed\n", | |
"\n", | |
"from langchain_core.prompts import ChatPromptTemplate\n", | |
"from langchain_core.output_parsers import StrOutputParser\n", | |
"from langchain_core.runnables import RunnableLambda, RunnablePassthrough\n", | |
"\n", | |
"\n", | |
"def fix_JSON(json_message=None):\n", | |
" result = None\n", | |
" try:\n", | |
" result = json.loads(json_message)\n", | |
" except Exception as e:\n", | |
" # Find the offending character index:\n", | |
" idx_to_replace = int(str(e).split(' ')[-1].replace(')', ''))\n", | |
" # Remove the offending character:\n", | |
" json_message = list(json_message)\n", | |
" json_message[idx_to_replace] = ' '\n", | |
" new_message = ''.join(json_message)\n", | |
" return fix_JSON(json_message=new_message)\n", | |
" return result\n", | |
"\n", | |
"def extract_text(text):\n", | |
" try:\n", | |
" res = re.search(r\"```json(.*)```\", text, re.S).group(1)\n", | |
" # res = res.encode('utf-8').decode('unicode_escape')\n", | |
" return fix_JSON(res)\n", | |
" except Exception as e:\n", | |
" print(text)\n", | |
" raise e\n", | |
"\n", | |
"\n", | |
"chain = (\n", | |
" ChatPromptTemplate.from_messages([\n", | |
" (\"system\", \"\"\"\\\n", | |
"Extract all of the multi-choice questions in the following document. Each question should have the following data:\n", | |
"* question: The question\n", | |
"* image_url: the url of the diagram\n", | |
"* options: The options for the question. Do not add the option letter\n", | |
"* year: The exam year\n", | |
"Output in JSON. Remove any incorrect escapes\n", | |
"\"\"\"),\n", | |
" (\"user\", \"{page}\"),\n", | |
" ]) | model | StrOutputParser() | extract_text\n", | |
")\n", | |
"\n", | |
"\n", | |
"@retry(stop=stop_after_attempt(4), wait=wait_fixed(60), before_sleep=lambda x: print(\"Retrying...\"))\n", | |
"def get_questions(page):\n", | |
" return chain.invoke({\n", | |
" \"page\": page\n", | |
" })" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "VNFEBwD66ztA" | |
}, | |
"outputs": [], | |
"source": [ | |
"import json\n", | |
"\n", | |
"from tenacity import retry, stop_after_attempt, wait_fixed\n", | |
"\n", | |
"from langchain_core.prompts import ChatPromptTemplate\n", | |
"from langchain_core.output_parsers import StrOutputParser\n", | |
"from langchain_core.runnables import RunnableLambda, RunnablePassthrough\n", | |
"\n", | |
"def clean_text(text):\n", | |
" return text.split(\"\\n\")[0]\n", | |
"\n", | |
"question_classifier_chain = (\n", | |
" ChatPromptTemplate.from_messages([\n", | |
" (\"user\", \"\"\"\\\n", | |
"Your task is to categorize a given multi-choice question as any of the themes. The themes are explained below:\n", | |
"{curriculum}\n", | |
"Output only the name of the classified theme. If not output None\n", | |
"Example: NUMBER BASES\n", | |
"\n", | |
"{question}\n", | |
"\"\"\"),\n", | |
" ]) | llama_together | StrOutputParser() | clean_text\n", | |
")\n", | |
"\n", | |
"@retry(stop=stop_after_attempt(4), wait=wait_fixed(60), before_sleep=lambda x: print(\"Retrying...\"))\n", | |
"def classify_question(question):\n", | |
" return question_classifier_chain.invoke({\n", | |
" \"question\": question,\n", | |
" \"curriculum\": curriculum\n", | |
" })" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "tr9PEXsEPFse" | |
}, | |
"outputs": [], | |
"source": [ | |
"from typing import Generator\n", | |
"from concurrent.futures import ThreadPoolExecutor, as_completed\n", | |
"\n", | |
"import requests\n", | |
"from tqdm.notebook import tqdm\n", | |
"\n", | |
"\n", | |
"def get_page(subject, exam, page):\n", | |
" \"\"\"Fetch the page html\"\"\"\n", | |
" base_url = \"https://r.jina.ai/\"\n", | |
"\n", | |
" url = f\"https://myschool.ng/classroom/{subject}?exam_type={exam}&page={page}\"\n", | |
" res = requests.get(base_url + url)\n", | |
" return res.text\n", | |
"\n", | |
"\n", | |
"def make_request(i) -> dict:\n", | |
" page = get_page(subject, exam, i)\n", | |
" return get_questions(page)\n", | |
"\n", | |
"\n", | |
"def make_requests(\n", | |
" range_,\n", | |
" max_workers=3,\n", | |
") -> Generator[list[dict], None, None]:\n", | |
" with tqdm(total=len(range_)) as pbar:\n", | |
" with ThreadPoolExecutor(max_workers=max_workers) as executor:\n", | |
" futures = [executor.submit(make_request, i) for i in range_]\n", | |
" for future in as_completed(futures):\n", | |
" pbar.update(1)\n", | |
" yield future.result()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "uvQNuJ5SQzdH" | |
}, | |
"outputs": [], | |
"source": [ | |
"def batch_insert(conn, data):\n", | |
" conn.executemany(f\"\"\"\\\n", | |
"INSERT INTO {subject} (question, image_url, options, theme, year)\n", | |
"VALUES (\n", | |
" $question,\n", | |
" $image_url,\n", | |
" $options,\n", | |
" $theme,\n", | |
" $year\n", | |
")\n", | |
"\"\"\",\n", | |
" data\n", | |
" )\n", | |
" conn.commit()\n", | |
"\n", | |
"def flush_database():\n", | |
" conn.sql(\"FORCE CHECKPOINT\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "MQ05mBApWz56" | |
}, | |
"source": [ | |
"# Start" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"cellView": "form", | |
"id": "1OJmvYG9Wlwn" | |
}, | |
"outputs": [], | |
"source": [ | |
"# @title Sequential scraper\n", | |
"\n", | |
"start = 0301 # @param {type:\"integer\"}\n", | |
"end = 500 # @param {type:\"integer\"}\n", | |
"\n", | |
"from tqdm.notebook import tqdm\n", | |
"count = range(start, end)\n", | |
"\n", | |
"for i in tqdm(count):\n", | |
" page = get_page(subject, exam, i)\n", | |
" questions = get_questions(page)\n", | |
" for question in questions:\n", | |
" question[\"theme\"] = classify_question(question[\"question\"])\n", | |
" batch_insert(conn, questions)\n", | |
"flush_database()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "tgc3yZsdlu8B" | |
}, | |
"source": [ | |
"## Results" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"id": "sumP2daA1qHF" | |
}, | |
"outputs": [], | |
"source": [ | |
"df = conn.execute(\"SELECT * FROM mathematics\").fetchdf()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 1000 | |
}, | |
"id": "TWZggyhtnmSw", | |
"outputId": "e9830137-92ce-4f06-ce2b-96a1ca089480" | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"application/vnd.google.colaboratory.intrinsic+json": { | |
"summary": "{\n \"name\": \"df\",\n \"rows\": 40,\n \"fields\": [\n {\n \"column\": \"question\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 35,\n \"samples\": [\n \"Find the root of the equation 2x22 - 3x - 2 = 0\",\n \"The number 186,470 was corrected to 186,000. Which of the following describe the degree of approximation made? \\nI. to the nearest hundred II. to the nearest thousand III. to 3 significant figures IV. to 4\\u00a0significant figures\",\n \"A water tank is made with a right-angled trapezium - shaped vertical cross-section so that when it is placed on sloping ground the top of the tank is level. The dimension are given in the diagram above \\nBy what number will you multiply your answer in 22 above to determine the capacity of the tank in liters?\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"image_url\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"https://myschool.ng/storage/classroom/24893484840_wcmath19884.png\",\n \"https://myschool.ng/storage/classroom/1382971619_wcmath19884.png\",\n \"https://myschool.ng/storage/classroom/17991044040_scanrr.jpg\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"options\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"year\",\n \"properties\": {\n \"dtype\": \"int32\",\n \"num_unique_values\": 3,\n \"samples\": [\n 1994,\n 1988,\n 1998\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"theme\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 18,\n \"samples\": [\n \"SEQUENCES AND SERIES\",\n \"TRIGONOMETRY\",\n \"ANGLES OF ELEVATION & DEPRESSION\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}", | |
"type": "dataframe", | |
"variable_name": "df" | |
}, | |
"text/html": [ | |
"\n", | |
" <div id=\"df-95e94395-c0ad-4278-b242-f7b15e09fc80\" class=\"colab-df-container\">\n", | |
" <div>\n", | |
"<style scoped>\n", | |
" .dataframe tbody tr th:only-of-type {\n", | |
" vertical-align: middle;\n", | |
" }\n", | |
"\n", | |
" .dataframe tbody tr th {\n", | |
" vertical-align: top;\n", | |
" }\n", | |
"\n", | |
" .dataframe thead th {\n", | |
" text-align: right;\n", | |
" }\n", | |
"</style>\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>question</th>\n", | |
" <th>image_url</th>\n", | |
" <th>options</th>\n", | |
" <th>year</th>\n", | |
" <th>theme</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>If the 2nd and 5th terms of a G.P are 6 and 48...</td>\n", | |
" <td>None</td>\n", | |
" <td>[-45, -15, 15, 33, 45]</td>\n", | |
" <td>1994</td>\n", | |
" <td>SEQUENCES AND SERIES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>If sinθθ = K find tanθθ, 0° ≤≤ θθ ≤≤ 90°.</td>\n", | |
" <td>None</td>\n", | |
" <td>[1-K, kk−1kk−1, k1−k2√k1−k2, k1−kk1−k, kk2−1√k...</td>\n", | |
" <td>1994</td>\n", | |
" <td>TRIGONOMETRY</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>Evaluate (101.5)2 - (100.5)2</td>\n", | |
" <td>None</td>\n", | |
" <td>[1, 2.02, 20.02, 202, 2020]</td>\n", | |
" <td>1988</td>\n", | |
" <td>NUMBER BASES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>Express the product of 0.06 and 0.09 in standa...</td>\n", | |
" <td>None</td>\n", | |
" <td>[5.4 * 10 -1, 5.4 *10 -2, 5.4 *10 -3, 5.4 *10...</td>\n", | |
" <td>1988</td>\n", | |
" <td>FRACTIONS, DECIMALS AND APPROXIMATIONS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>Simplify 361212 x 64−13−13 x 500</td>\n", | |
" <td>None</td>\n", | |
" <td>[0, 1\\24, 2/3, 11/2, 71/2]</td>\n", | |
" <td>1988</td>\n", | |
" <td>INDICES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>5</th>\n", | |
" <td>If the 2nd and 5th terms of a G.P are 6 and 48...</td>\n", | |
" <td>None</td>\n", | |
" <td>[-45, -15, 15, 33, 45]</td>\n", | |
" <td>1994</td>\n", | |
" <td>SEQUENCES AND SERIES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>6</th>\n", | |
" <td>If sinθθ = K find tanθθ, 0° ≤≤ θθ ≤≤ 90°.</td>\n", | |
" <td>None</td>\n", | |
" <td>[1-K, kk−1kk−1, k1−k2√k1−k2, k1−kk1−k, kk2−1√k...</td>\n", | |
" <td>1994</td>\n", | |
" <td>ANGLES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>7</th>\n", | |
" <td>Evaluate (101.5)2 - (100.5)2</td>\n", | |
" <td>None</td>\n", | |
" <td>[1, 2.02, 20.02, 202, 2020]</td>\n", | |
" <td>1988</td>\n", | |
" <td>NUMBER BASES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>8</th>\n", | |
" <td>Express the product of 0.06 and 0.09 in standa...</td>\n", | |
" <td>None</td>\n", | |
" <td>[5.4 * 10 -1, 5.4 *10 -2, 5.4 *10 -3, 5.4 *10...</td>\n", | |
" <td>1988</td>\n", | |
" <td>FRACTIONS, DECIMALS AND APPROXIMATIONS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>9</th>\n", | |
" <td>Simplify 361212 x 64−13−13 x 500</td>\n", | |
" <td>None</td>\n", | |
" <td>[0, 1\\24, 2/3, 11/2, 71/2]</td>\n", | |
" <td>1988</td>\n", | |
" <td>NUMBER BASES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>10</th>\n", | |
" <td>Find the 8th term of the A.P -3, -1, 1 ......</td>\n", | |
" <td>None</td>\n", | |
" <td>[13, 11, -8, -11, -17]</td>\n", | |
" <td>1988</td>\n", | |
" <td>SETS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>11</th>\n", | |
" <td>A group of students took a test and the follow...</td>\n", | |
" <td>https://myschool.ng/storage/classroom/24893484...</td>\n", | |
" <td>[2, 3, 4, 5, 7]</td>\n", | |
" <td>1988</td>\n", | |
" <td>STATISTICS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>12</th>\n", | |
" <td>A group of students took a test and the follow...</td>\n", | |
" <td>https://myschool.ng/storage/classroom/13829716...</td>\n", | |
" <td>[1.75, 2, 2.5, 2.75, 3]</td>\n", | |
" <td>1988</td>\n", | |
" <td>STATISTICS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>13</th>\n", | |
" <td>A group of students took a test and the follow...</td>\n", | |
" <td>https://myschool.ng/storage/classroom/27659438...</td>\n", | |
" <td>[o, 2.5, 3, 5, 7]</td>\n", | |
" <td>1988</td>\n", | |
" <td>STATISTICS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>14</th>\n", | |
" <td>If cos 60° = 1/2, which of the following angl...</td>\n", | |
" <td>None</td>\n", | |
" <td>[30o, 120o, 150o, 210o, 300o]</td>\n", | |
" <td>1988</td>\n", | |
" <td>ANGLES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>15</th>\n", | |
" <td>In the diagram above, find the ratio |PQ|/|PR|</td>\n", | |
" <td>https://myschool.ng/storage/classroom/17978657...</td>\n", | |
" <td>[2 : 5, 3 : 5, 2 : 3, 3 : 2, 5 : 3]</td>\n", | |
" <td>1988</td>\n", | |
" <td>ANGLES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>16</th>\n", | |
" <td>A ladder 9m long leans against a vertical wall...</td>\n", | |
" <td>None</td>\n", | |
" <td>[4.0m, 5.8m, 7.1m, 8.1m, 18.5m]</td>\n", | |
" <td>1988</td>\n", | |
" <td>ANGLES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>17</th>\n", | |
" <td>What is the difference in longitude between P ...</td>\n", | |
" <td>None</td>\n", | |
" <td>[300o, 200o, 130o, 100o, 30o]</td>\n", | |
" <td>1988</td>\n", | |
" <td>ANGLES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>18</th>\n", | |
" <td>The number 186,470 was corrected to 186,000. W...</td>\n", | |
" <td>None</td>\n", | |
" <td>[I & III only, I & IV only, II & III only, II ...</td>\n", | |
" <td>1988</td>\n", | |
" <td>NUMBER BASES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>19</th>\n", | |
" <td>Points P and Q respectively 24m north and 7m e...</td>\n", | |
" <td>None</td>\n", | |
" <td>[20, 24, 25, 31, 84]</td>\n", | |
" <td>1988</td>\n", | |
" <td>ANGLES OF ELEVATION & DEPRESSION</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>20</th>\n", | |
" <td>Points P and Q respectively 24m north and 7m e...</td>\n", | |
" <td>None</td>\n", | |
" <td>[16o, 17o, 73o, 106o, 164o]</td>\n", | |
" <td>1988</td>\n", | |
" <td>ANGLES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>21</th>\n", | |
" <td>If sinθ = 3/5 find tanθ for 0 < θ < 90o</td>\n", | |
" <td>None</td>\n", | |
" <td>[4\\5, 3\\4, 5\\8, 1\\2, 3\\8]</td>\n", | |
" <td>1988</td>\n", | |
" <td>TRIGONOMETRY</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>22</th>\n", | |
" <td>Simplify (271/3)2</td>\n", | |
" <td>None</td>\n", | |
" <td>[41/2, 6, 9, 18, 81]</td>\n", | |
" <td>1988</td>\n", | |
" <td>INDICES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>23</th>\n", | |
" <td>A student told to draw the graph of y = x2 + 4...</td>\n", | |
" <td>None</td>\n", | |
" <td>[x = 1, x = -1, y = 1, y = -1, x + y = 1]</td>\n", | |
" <td>1988</td>\n", | |
" <td>GRAPHS OF LINEAR & QUADRATIC FUNCTIONS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>24</th>\n", | |
" <td>Calculate the value of x in the diagram above</td>\n", | |
" <td>https://myschool.ng/storage/classroom/12446830...</td>\n", | |
" <td>[18o, 30o, 40o, 60o, 15°]</td>\n", | |
" <td>1988</td>\n", | |
" <td>GEOMETRY</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>25</th>\n", | |
" <td>Find the quadratic equation whose roots are x ...</td>\n", | |
" <td>None</td>\n", | |
" <td>[x2 + 2x - 7 = 0, x2 - 2x + 7 = 0, x2 + 5 +14 ...</td>\n", | |
" <td>1988</td>\n", | |
" <td>QUADRATIC EQUATIONS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>26</th>\n", | |
" <td>A sales girl gave a change of N1.15 to a custo...</td>\n", | |
" <td>None</td>\n", | |
" <td>[10%, 7%, 8.0%, 2.4%, 10%]</td>\n", | |
" <td>1988</td>\n", | |
" <td>PERCENTAGES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>27</th>\n", | |
" <td>What is the probability of having an odd numbe...</td>\n", | |
" <td>None</td>\n", | |
" <td>[1/6, 1/3, 1/2, 2/3, 5/6]</td>\n", | |
" <td>1988</td>\n", | |
" <td>PROBABILITY</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>28</th>\n", | |
" <td>A water tank is made with a right-angled trape...</td>\n", | |
" <td>https://myschool.ng/storage/classroom/17991044...</td>\n", | |
" <td>[66m3, 84m3, 132m3, 168m3, 264m3]</td>\n", | |
" <td>1988</td>\n", | |
" <td>LENGTHS & PERIMETERS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>29</th>\n", | |
" <td>A water tank is made with a right-angled trape...</td>\n", | |
" <td>https://myschool.ng/storage/classroom/20744938...</td>\n", | |
" <td>[1/10, 1, 10, 100, 1000]</td>\n", | |
" <td>1988</td>\n", | |
" <td>FINANCIAL ARITHMETIC</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>30</th>\n", | |
" <td>Evaluate log106 + log1045 - log1027 without us...</td>\n", | |
" <td>None</td>\n", | |
" <td>[0, 1, 1.1738, 1.3802, 10]</td>\n", | |
" <td>1988</td>\n", | |
" <td>LOGARITHMS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>31</th>\n", | |
" <td>Find the root of the equation 2x22 - 3x - 2 = 0</td>\n", | |
" <td>None</td>\n", | |
" <td>[x = -2 or 1/2, x = -2 or1, x = -2 or 2, x = -...</td>\n", | |
" <td>1998</td>\n", | |
" <td>QUADRATIC EQUATIONS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>32</th>\n", | |
" <td>What value of k makes the given expression a p...</td>\n", | |
" <td>None</td>\n", | |
" <td>[2, 4, 8, 16, 64]</td>\n", | |
" <td>1998</td>\n", | |
" <td>NUMBER BASES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>33</th>\n", | |
" <td>If log1010 q = 2.7078, what is q?</td>\n", | |
" <td>None</td>\n", | |
" <td>[5102, 849.9, 510.2, 84.99, 51.02]</td>\n", | |
" <td>1998</td>\n", | |
" <td>LOGARITHMS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>34</th>\n", | |
" <td>Cos x is negative and sin x is negative.Which ...</td>\n", | |
" <td>None</td>\n", | |
" <td>[0o < x < 90o, 90o < x <180o, 180o < x < 270o,...</td>\n", | |
" <td>1998</td>\n", | |
" <td>ANGLES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>35</th>\n", | |
" <td>Simplify 0.63954 ÷ 0.003 giving your answer co...</td>\n", | |
" <td>None</td>\n", | |
" <td>[213.18, 213.00, 213, 210, 21]</td>\n", | |
" <td>1998</td>\n", | |
" <td>SIGNIFICANT FIGURES AND APPROXIMATIONS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>36</th>\n", | |
" <td>If log10 a = 4; what is a?</td>\n", | |
" <td>None</td>\n", | |
" <td>[0.4, 40, 400, 1000, 10000]</td>\n", | |
" <td>1998</td>\n", | |
" <td>LOGARITHMS</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>37</th>\n", | |
" <td>A student measured the length of a room and ob...</td>\n", | |
" <td>None</td>\n", | |
" <td>[3.78m, 3.80m, 4.18m, 4.20m, 4.788m]</td>\n", | |
" <td>1998</td>\n", | |
" <td>PERCENTAGES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>38</th>\n", | |
" <td>When an aeroplane is 800m above the ground, it...</td>\n", | |
" <td>None</td>\n", | |
" <td>[400m, 800m, 1500m, 1600m, 1700m]</td>\n", | |
" <td>1998</td>\n", | |
" <td>ANGLES</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>39</th>\n", | |
" <td>Find the product xy if, x, 3/2, 6/7, y are in G.P</td>\n", | |
" <td>None</td>\n", | |
" <td>[24/49, 4/7, 9/7, 7/4, 21/8]</td>\n", | |
" <td>1988</td>\n", | |
" <td>SEQUENCES AND SERIES</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>\n", | |
" <div class=\"colab-df-buttons\">\n", | |
"\n", | |
" <div class=\"colab-df-container\">\n", | |
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-95e94395-c0ad-4278-b242-f7b15e09fc80')\"\n", | |
" title=\"Convert this dataframe to an interactive table.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n", | |
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
"\n", | |
" <style>\n", | |
" .colab-df-container {\n", | |
" display:flex;\n", | |
" gap: 12px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-convert:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" .colab-df-buttons div {\n", | |
" margin-bottom: 4px;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-convert:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
"\n", | |
" <script>\n", | |
" const buttonEl =\n", | |
" document.querySelector('#df-95e94395-c0ad-4278-b242-f7b15e09fc80 button.colab-df-convert');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" async function convertToInteractive(key) {\n", | |
" const element = document.querySelector('#df-95e94395-c0ad-4278-b242-f7b15e09fc80');\n", | |
" const dataTable =\n", | |
" await google.colab.kernel.invokeFunction('convertToInteractive',\n", | |
" [key], {});\n", | |
" if (!dataTable) return;\n", | |
"\n", | |
" const docLinkHtml = 'Like what you see? Visit the ' +\n", | |
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n", | |
" + ' to learn more about interactive tables.';\n", | |
" element.innerHTML = '';\n", | |
" dataTable['output_type'] = 'display_data';\n", | |
" await google.colab.output.renderOutput(dataTable, element);\n", | |
" const docLink = document.createElement('div');\n", | |
" docLink.innerHTML = docLinkHtml;\n", | |
" element.appendChild(docLink);\n", | |
" }\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
"\n", | |
"<div id=\"df-974e731e-2b32-4b11-aaaf-a50bd3ec1ee4\">\n", | |
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-974e731e-2b32-4b11-aaaf-a50bd3ec1ee4')\"\n", | |
" title=\"Suggest charts\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <g>\n", | |
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n", | |
" </g>\n", | |
"</svg>\n", | |
" </button>\n", | |
"\n", | |
"<style>\n", | |
" .colab-df-quickchart {\n", | |
" --bg-color: #E8F0FE;\n", | |
" --fill-color: #1967D2;\n", | |
" --hover-bg-color: #E2EBFA;\n", | |
" --hover-fill-color: #174EA6;\n", | |
" --disabled-fill-color: #AAA;\n", | |
" --disabled-bg-color: #DDD;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-quickchart {\n", | |
" --bg-color: #3B4455;\n", | |
" --fill-color: #D2E3FC;\n", | |
" --hover-bg-color: #434B5C;\n", | |
" --hover-fill-color: #FFFFFF;\n", | |
" --disabled-bg-color: #3B4455;\n", | |
" --disabled-fill-color: #666;\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart {\n", | |
" background-color: var(--bg-color);\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: var(--fill-color);\n", | |
" height: 32px;\n", | |
" padding: 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart:hover {\n", | |
" background-color: var(--hover-bg-color);\n", | |
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: var(--button-hover-fill-color);\n", | |
" }\n", | |
"\n", | |
" .colab-df-quickchart-complete:disabled,\n", | |
" .colab-df-quickchart-complete:disabled:hover {\n", | |
" background-color: var(--disabled-bg-color);\n", | |
" fill: var(--disabled-fill-color);\n", | |
" box-shadow: none;\n", | |
" }\n", | |
"\n", | |
" .colab-df-spinner {\n", | |
" border: 2px solid var(--fill-color);\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" animation:\n", | |
" spin 1s steps(1) infinite;\n", | |
" }\n", | |
"\n", | |
" @keyframes spin {\n", | |
" 0% {\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" border-left-color: var(--fill-color);\n", | |
" }\n", | |
" 20% {\n", | |
" border-color: transparent;\n", | |
" border-left-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" }\n", | |
" 30% {\n", | |
" border-color: transparent;\n", | |
" border-left-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" border-right-color: var(--fill-color);\n", | |
" }\n", | |
" 40% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" border-top-color: var(--fill-color);\n", | |
" }\n", | |
" 60% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" }\n", | |
" 80% {\n", | |
" border-color: transparent;\n", | |
" border-right-color: var(--fill-color);\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" }\n", | |
" 90% {\n", | |
" border-color: transparent;\n", | |
" border-bottom-color: var(--fill-color);\n", | |
" }\n", | |
" }\n", | |
"</style>\n", | |
"\n", | |
" <script>\n", | |
" async function quickchart(key) {\n", | |
" const quickchartButtonEl =\n", | |
" document.querySelector('#' + key + ' button');\n", | |
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n", | |
" quickchartButtonEl.classList.add('colab-df-spinner');\n", | |
" try {\n", | |
" const charts = await google.colab.kernel.invokeFunction(\n", | |
" 'suggestCharts', [key], {});\n", | |
" } catch (error) {\n", | |
" console.error('Error during call to suggestCharts:', error);\n", | |
" }\n", | |
" quickchartButtonEl.classList.remove('colab-df-spinner');\n", | |
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n", | |
" }\n", | |
" (() => {\n", | |
" let quickchartButtonEl =\n", | |
" document.querySelector('#df-974e731e-2b32-4b11-aaaf-a50bd3ec1ee4 button');\n", | |
" quickchartButtonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
" })();\n", | |
" </script>\n", | |
"</div>\n", | |
"\n", | |
" <div id=\"id_c8685ccd-efdc-421c-be1f-2ba21edcdac2\">\n", | |
" <style>\n", | |
" .colab-df-generate {\n", | |
" background-color: #E8F0FE;\n", | |
" border: none;\n", | |
" border-radius: 50%;\n", | |
" cursor: pointer;\n", | |
" display: none;\n", | |
" fill: #1967D2;\n", | |
" height: 32px;\n", | |
" padding: 0 0 0 0;\n", | |
" width: 32px;\n", | |
" }\n", | |
"\n", | |
" .colab-df-generate:hover {\n", | |
" background-color: #E2EBFA;\n", | |
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n", | |
" fill: #174EA6;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-generate {\n", | |
" background-color: #3B4455;\n", | |
" fill: #D2E3FC;\n", | |
" }\n", | |
"\n", | |
" [theme=dark] .colab-df-generate:hover {\n", | |
" background-color: #434B5C;\n", | |
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n", | |
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n", | |
" fill: #FFFFFF;\n", | |
" }\n", | |
" </style>\n", | |
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('df')\"\n", | |
" title=\"Generate code using this dataframe.\"\n", | |
" style=\"display:none;\">\n", | |
"\n", | |
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n", | |
" width=\"24px\">\n", | |
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n", | |
" </svg>\n", | |
" </button>\n", | |
" <script>\n", | |
" (() => {\n", | |
" const buttonEl =\n", | |
" document.querySelector('#id_c8685ccd-efdc-421c-be1f-2ba21edcdac2 button.colab-df-generate');\n", | |
" buttonEl.style.display =\n", | |
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n", | |
"\n", | |
" buttonEl.onclick = () => {\n", | |
" google.colab.notebook.generateWithVariable('df');\n", | |
" }\n", | |
" })();\n", | |
" </script>\n", | |
" </div>\n", | |
"\n", | |
" </div>\n", | |
" </div>\n" | |
], | |
"text/plain": [ | |
" question \\\n", | |
"0 If the 2nd and 5th terms of a G.P are 6 and 48... \n", | |
"1 If sinθθ = K find tanθθ, 0° ≤≤ θθ ≤≤ 90°. \n", | |
"2 Evaluate (101.5)2 - (100.5)2 \n", | |
"3 Express the product of 0.06 and 0.09 in standa... \n", | |
"4 Simplify 361212 x 64−13−13 x 500 \n", | |
"5 If the 2nd and 5th terms of a G.P are 6 and 48... \n", | |
"6 If sinθθ = K find tanθθ, 0° ≤≤ θθ ≤≤ 90°. \n", | |
"7 Evaluate (101.5)2 - (100.5)2 \n", | |
"8 Express the product of 0.06 and 0.09 in standa... \n", | |
"9 Simplify 361212 x 64−13−13 x 500 \n", | |
"10 Find the 8th term of the A.P -3, -1, 1 ...... \n", | |
"11 A group of students took a test and the follow... \n", | |
"12 A group of students took a test and the follow... \n", | |
"13 A group of students took a test and the follow... \n", | |
"14 If cos 60° = 1/2, which of the following angl... \n", | |
"15 In the diagram above, find the ratio |PQ|/|PR| \n", | |
"16 A ladder 9m long leans against a vertical wall... \n", | |
"17 What is the difference in longitude between P ... \n", | |
"18 The number 186,470 was corrected to 186,000. W... \n", | |
"19 Points P and Q respectively 24m north and 7m e... \n", | |
"20 Points P and Q respectively 24m north and 7m e... \n", | |
"21 If sinθ = 3/5 find tanθ for 0 < θ < 90o \n", | |
"22 Simplify (271/3)2 \n", | |
"23 A student told to draw the graph of y = x2 + 4... \n", | |
"24 Calculate the value of x in the diagram above \n", | |
"25 Find the quadratic equation whose roots are x ... \n", | |
"26 A sales girl gave a change of N1.15 to a custo... \n", | |
"27 What is the probability of having an odd numbe... \n", | |
"28 A water tank is made with a right-angled trape... \n", | |
"29 A water tank is made with a right-angled trape... \n", | |
"30 Evaluate log106 + log1045 - log1027 without us... \n", | |
"31 Find the root of the equation 2x22 - 3x - 2 = 0 \n", | |
"32 What value of k makes the given expression a p... \n", | |
"33 If log1010 q = 2.7078, what is q? \n", | |
"34 Cos x is negative and sin x is negative.Which ... \n", | |
"35 Simplify 0.63954 ÷ 0.003 giving your answer co... \n", | |
"36 If log10 a = 4; what is a? \n", | |
"37 A student measured the length of a room and ob... \n", | |
"38 When an aeroplane is 800m above the ground, it... \n", | |
"39 Find the product xy if, x, 3/2, 6/7, y are in G.P \n", | |
"\n", | |
" image_url \\\n", | |
"0 None \n", | |
"1 None \n", | |
"2 None \n", | |
"3 None \n", | |
"4 None \n", | |
"5 None \n", | |
"6 None \n", | |
"7 None \n", | |
"8 None \n", | |
"9 None \n", | |
"10 None \n", | |
"11 https://myschool.ng/storage/classroom/24893484... \n", | |
"12 https://myschool.ng/storage/classroom/13829716... \n", | |
"13 https://myschool.ng/storage/classroom/27659438... \n", | |
"14 None \n", | |
"15 https://myschool.ng/storage/classroom/17978657... \n", | |
"16 None \n", | |
"17 None \n", | |
"18 None \n", | |
"19 None \n", | |
"20 None \n", | |
"21 None \n", | |
"22 None \n", | |
"23 None \n", | |
"24 https://myschool.ng/storage/classroom/12446830... \n", | |
"25 None \n", | |
"26 None \n", | |
"27 None \n", | |
"28 https://myschool.ng/storage/classroom/17991044... \n", | |
"29 https://myschool.ng/storage/classroom/20744938... \n", | |
"30 None \n", | |
"31 None \n", | |
"32 None \n", | |
"33 None \n", | |
"34 None \n", | |
"35 None \n", | |
"36 None \n", | |
"37 None \n", | |
"38 None \n", | |
"39 None \n", | |
"\n", | |
" options year \\\n", | |
"0 [-45, -15, 15, 33, 45] 1994 \n", | |
"1 [1-K, kk−1kk−1, k1−k2√k1−k2, k1−kk1−k, kk2−1√k... 1994 \n", | |
"2 [1, 2.02, 20.02, 202, 2020] 1988 \n", | |
"3 [5.4 * 10 -1, 5.4 *10 -2, 5.4 *10 -3, 5.4 *10... 1988 \n", | |
"4 [0, 1\\24, 2/3, 11/2, 71/2] 1988 \n", | |
"5 [-45, -15, 15, 33, 45] 1994 \n", | |
"6 [1-K, kk−1kk−1, k1−k2√k1−k2, k1−kk1−k, kk2−1√k... 1994 \n", | |
"7 [1, 2.02, 20.02, 202, 2020] 1988 \n", | |
"8 [5.4 * 10 -1, 5.4 *10 -2, 5.4 *10 -3, 5.4 *10... 1988 \n", | |
"9 [0, 1\\24, 2/3, 11/2, 71/2] 1988 \n", | |
"10 [13, 11, -8, -11, -17] 1988 \n", | |
"11 [2, 3, 4, 5, 7] 1988 \n", | |
"12 [1.75, 2, 2.5, 2.75, 3] 1988 \n", | |
"13 [o, 2.5, 3, 5, 7] 1988 \n", | |
"14 [30o, 120o, 150o, 210o, 300o] 1988 \n", | |
"15 [2 : 5, 3 : 5, 2 : 3, 3 : 2, 5 : 3] 1988 \n", | |
"16 [4.0m, 5.8m, 7.1m, 8.1m, 18.5m] 1988 \n", | |
"17 [300o, 200o, 130o, 100o, 30o] 1988 \n", | |
"18 [I & III only, I & IV only, II & III only, II ... 1988 \n", | |
"19 [20, 24, 25, 31, 84] 1988 \n", | |
"20 [16o, 17o, 73o, 106o, 164o] 1988 \n", | |
"21 [4\\5, 3\\4, 5\\8, 1\\2, 3\\8] 1988 \n", | |
"22 [41/2, 6, 9, 18, 81] 1988 \n", | |
"23 [x = 1, x = -1, y = 1, y = -1, x + y = 1] 1988 \n", | |
"24 [18o, 30o, 40o, 60o, 15°] 1988 \n", | |
"25 [x2 + 2x - 7 = 0, x2 - 2x + 7 = 0, x2 + 5 +14 ... 1988 \n", | |
"26 [10%, 7%, 8.0%, 2.4%, 10%] 1988 \n", | |
"27 [1/6, 1/3, 1/2, 2/3, 5/6] 1988 \n", | |
"28 [66m3, 84m3, 132m3, 168m3, 264m3] 1988 \n", | |
"29 [1/10, 1, 10, 100, 1000] 1988 \n", | |
"30 [0, 1, 1.1738, 1.3802, 10] 1988 \n", | |
"31 [x = -2 or 1/2, x = -2 or1, x = -2 or 2, x = -... 1998 \n", | |
"32 [2, 4, 8, 16, 64] 1998 \n", | |
"33 [5102, 849.9, 510.2, 84.99, 51.02] 1998 \n", | |
"34 [0o < x < 90o, 90o < x <180o, 180o < x < 270o,... 1998 \n", | |
"35 [213.18, 213.00, 213, 210, 21] 1998 \n", | |
"36 [0.4, 40, 400, 1000, 10000] 1998 \n", | |
"37 [3.78m, 3.80m, 4.18m, 4.20m, 4.788m] 1998 \n", | |
"38 [400m, 800m, 1500m, 1600m, 1700m] 1998 \n", | |
"39 [24/49, 4/7, 9/7, 7/4, 21/8] 1988 \n", | |
"\n", | |
" theme \n", | |
"0 SEQUENCES AND SERIES \n", | |
"1 TRIGONOMETRY \n", | |
"2 NUMBER BASES \n", | |
"3 FRACTIONS, DECIMALS AND APPROXIMATIONS \n", | |
"4 INDICES \n", | |
"5 SEQUENCES AND SERIES \n", | |
"6 ANGLES \n", | |
"7 NUMBER BASES \n", | |
"8 FRACTIONS, DECIMALS AND APPROXIMATIONS \n", | |
"9 NUMBER BASES \n", | |
"10 SETS \n", | |
"11 STATISTICS \n", | |
"12 STATISTICS \n", | |
"13 STATISTICS \n", | |
"14 ANGLES \n", | |
"15 ANGLES \n", | |
"16 ANGLES \n", | |
"17 ANGLES \n", | |
"18 NUMBER BASES \n", | |
"19 ANGLES OF ELEVATION & DEPRESSION \n", | |
"20 ANGLES \n", | |
"21 TRIGONOMETRY \n", | |
"22 INDICES \n", | |
"23 GRAPHS OF LINEAR & QUADRATIC FUNCTIONS \n", | |
"24 GEOMETRY \n", | |
"25 QUADRATIC EQUATIONS \n", | |
"26 PERCENTAGES \n", | |
"27 PROBABILITY \n", | |
"28 LENGTHS & PERIMETERS \n", | |
"29 FINANCIAL ARITHMETIC \n", | |
"30 LOGARITHMS \n", | |
"31 QUADRATIC EQUATIONS \n", | |
"32 NUMBER BASES \n", | |
"33 LOGARITHMS \n", | |
"34 ANGLES \n", | |
"35 SIGNIFICANT FIGURES AND APPROXIMATIONS \n", | |
"36 LOGARITHMS \n", | |
"37 PERCENTAGES \n", | |
"38 ANGLES \n", | |
"39 SEQUENCES AND SERIES " | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df" | |
] | |
} | |
], | |
"metadata": { | |
"colab": { | |
"provenance": [], | |
"authorship_tag": "ABX9TyPoaIP2ZfvSmQVl4ZNpaUHM", | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"display_name": "Python 3", | |
"name": "python3" | |
}, | |
"language_info": { | |
"name": "python" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment