{ "cells": [ { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "ExReq = {'keywords_images': {'0': ['illustration', 'vector', 'symbol', 'design', 'icon', 'sign', 'isolated', 'blue', 'medicine', 'education']}, 'keywords_text': ['web', 'design', 'website', 'cusdom', 'business', 'project', 'experience', 'user', 'college', 'startup']}" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 8.0\n", "{'keywords': ['design', 'web', 'business', 'startup', 'experience'], 'num_images': 3, 'page': 0}\n", "{'keywords': ['vector', 'illustration', 'icon', 'education', 'isolated'], 'num_images': 3, 'page': 0}\n", "{'keywords': ['design', 'web', 'business', 'startup', 'experience'], 'num_images': 3, 'page': 1}\n", "{'keywords': ['vector', 'illustration', 'icon', 'education', 'isolated'], 'num_images': 3, 'page': 1}\n", "{'keywords': ['design', 'web', 'business', 'startup', 'experience'], 'num_images': 3, 'page': 2}\n", "{'keywords': ['vector', 'illustration', 'icon', 'education', 'isolated'], 'num_images': 3, 'page': 2}\n", "{'keywords': ['design', 'web', 'business', 'startup', 'experience'], 'num_images': 3, 'page': 3}\n", "{'keywords': ['vector', 'illustration', 'icon', 'education', 'isolated'], 'num_images': 3, 'page': 3}\n", "{'queries': [{'keywords': ['design', 'web', 'business', 'startup', 'experience'], 'num_images': 3, 'page': 0}, {'keywords': ['vector', 'illustration', 'icon', 'education', 'isolated'], 'num_images': 3, 'page': 0}, {'keywords': ['design', 'web', 'business', 'startup', 'experience'], 'num_images': 3, 'page': 1}, {'keywords': ['vector', 'illustration', 'icon', 'education', 'isolated'], 'num_images': 3, 'page': 1}, {'keywords': ['design', 'web', 'business', 'startup', 'experience'], 'num_images': 3, 'page': 2}, {'keywords': ['vector', 'illustration', 'icon', 'education', 'isolated'], 'num_images': 3, 'page': 2}, {'keywords': ['design', 'web', 'business', 'startup', 'experience'], 'num_images': 3, 'page': 3}, {'keywords': ['vector', 'illustration', 'icon', 'education', 'isolated'], 'num_images': 3, 'page': 3}]}\n" ] } ], "source": [ "import random\n", "\n", "def selectKeywords(req,page:int=0,pixPerPage:int=24,numKeywords:int=5,imagesPerSearch:int=3,subsetseed:int=42, categories:list=[\"text_only\",\"combined_images\"]):\n", " #For now keep it simple. Two seperate searches for images and \n", " res = []\n", " queryCount = 0\n", " imageKeywords = []\n", " random.seed(subsetseed) #to avoid images being repetitive, instead querying more pages from the Pexels API\n", " #Make each image a category\n", " if('keywords_images' in req and \"combined_images\" in categories):\n", " for i in range(0,len(req[\"keywords_images\"])):\n", " imageKeywords+=req[\"keywords_images\"][str(i)]\n", "\n", " #Handling missing keywords\n", " if(\"text_only\" in categories and \"keywords_text\" not in req or len(req[\"keywords_text\"])