diff --git a/.github/workflows/req_lint_test.yml b/.github/workflows/req_lint_test.yml index e1cff31..9680ce6 100644 --- a/.github/workflows/req_lint_test.yml +++ b/.github/workflows/req_lint_test.yml @@ -32,6 +32,6 @@ jobs: version: "~= 22.0" - name: Test with pytest + working-directory: tests/ run: | pytest - \ No newline at end of file diff --git a/README.md b/README.md index 9c9b3b9..438e2bc 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ Access to the app : [Start](https://nextjsapp-iwghenktca-ew.a.run.app/login) - [Tech Stack](#tech-stack) - [Files Structure](#files-structure) - [Frontend](#frontend) + - [Resources](#resources) - [How to Use](#how-to-use) - [Testing](#testing) - [Deployment](#deployment) @@ -27,13 +28,13 @@ Access to the app : [Start](https://nextjsapp-iwghenktca-ew.a.run.app/login) - [Flow Steps](#flow-steps) - [Candidate User Flow](#candidate-user-flow) - [Flow Steps](#flow-steps-1) - - [UI/UX](#uiux) - - [Overview](#overview) - - [How to Use](#how-to-use-1) - - [Prototype Structure](#prototype-structure) - - [Key Features](#key-features) - - [Contact Information](#contact-information) - - [Licensing](#licensing) +- [UI/UX](#uiux) + - [Overview](#overview) + - [How to Use](#how-to-use-1) + - [Prototype Structure](#prototype-structure) + - [Key Features](#key-features) + - [Contact Information](#contact-information) + - [Licensing](#licensing) - [Backend API](#backend-api) - [Flowchart of the website](#flowchart-of-the-website) - [Tech stack](#tech-stack-1) @@ -47,9 +48,9 @@ Access to the app : [Start](https://nextjsapp-iwghenktca-ew.a.run.app/login) - [Features](#features) - [Data Science](#data-science) - [Data Processing Notebooks](#data-processing-notebooks) -- [Roadmap](#roadmap) - [Cooperation](#cooperation) -- [Resources](#resources) +- [Roadmap](#roadmap) +- [Resources](#resources-1) # Problem Statement @@ -284,21 +285,19 @@ This flow ensures that candidates can manage their profiles, explore job opportu # UI/UX - ### Overview This Figma Prototype is designed to showcase the flows that have been designed. You will see the high fidelity mockups, the primary functions of the flow, and future flows for implementation. - ### How to Use 1. **Access the Prototype**: - + You can interact with the prototype at the following link: [Figma](https://www.figma.com/proto/qzRo0T1FIRIp2FkBZtXKey/SHIFT-UI?page-id=0%3A1&type=design&node-id=65-514&viewport=817%2C-4082%2C0.16&t=vVdNABqel4mhStHB-1&scaling=min-zoom&starting-point-node-id=65%3A514&show-proto-sidebar=1&mode=design) - + 3. **Navigate Through the Prototype**: - -You have a left bar and a top bar. + +You have a left bar and a top bar. The left bar will help you to move through each designed flow. They are organized by: - A. Login @@ -313,8 +312,9 @@ The left bar will help you to move through each designed flow. They are organize 2.3 If you want to go back again and restart the whole flow, press “R”. 3. **Feedback and Comments**: -- You must be logged in to Figma to comment. -- By typing or pressing “C” you can comment on anything you want to highlight or give us feedback. + +- You must be logged in to Figma to comment. +- By typing or pressing “C” you can comment on anything you want to highlight or give us feedback. - The comments will remain in the file unless you click "Resolve" in the right bar that appears after you add a comment. 3. **Feedback and Comments**: @@ -492,6 +492,7 @@ The following logical steps are used to clean the datasets: - Reorganize the columns (rename, drop ones not to be uploaded to the database, reset the index) # Cooperation + At the outset of our project, we adopted JIRA as our task organization and project management tool. While initially, some team members might have been unfamiliar with how to utilize it to its full potential, we steadily improved our understanding and usage of JIRA with each sprint. It wasn't until the last two sprints that we truly realized its power in helping us coordinate the work of all team members. JIRA played a pivotal role in enhancing our collaboration, efficiency, and overall project organization # Roadmap @@ -510,8 +511,17 @@ Datasets used for populating the Database : [Kaggle Resume Dataset](https://www. Miro : [Team retrospective and brainstorming board](https://miro.com/app/board/uXjVMkJzhAg=/) + + JIRA: [Sprint reports](https://deployimpact2023-shift.atlassian.net/jira/software/projects/SHIFT/boards/1/reports/burnup) [Backlog](https://deployimpact2023-shift.atlassian.net/jira/software/projects/SHIFT/boards/1/backlog)
- diff --git a/requirements_git_actions.txt b/requirements_git_actions.txt index 8d258ad..ea43d46 100644 --- a/requirements_git_actions.txt +++ b/requirements_git_actions.txt @@ -1,3 +1,3 @@ black==23.9.1 black[jupyter] -pytest==7.4.3 \ No newline at end of file +pytest==7.4.3 diff --git a/src/backend/api/matching_algorithm.py b/src/backend/api/matching_algorithm.py index 55ab2a5..8e02fa9 100644 --- a/src/backend/api/matching_algorithm.py +++ b/src/backend/api/matching_algorithm.py @@ -2,8 +2,6 @@ from typing import List import torch from sklearn.metrics.pairwise import cosine_similarity -from api.models import Jobs, Candidates - def get_free_text_match( job_embeddings: List[List], diff --git a/src/backend/api/serializer_services.py b/src/backend/api/serializer_services.py index 5b61c42..a4c20fb 100644 --- a/src/backend/api/serializer_services.py +++ b/src/backend/api/serializer_services.py @@ -97,7 +97,7 @@ def generate_match_output(match_percentages: dict, instance: Candidates | Jobs) if not is_job: curr_match["job_title"] = match.job_title curr_match["job_type"] = match.job_type - curr_match["work_model"] = match.job_title + curr_match["work_model"] = match.work_model.__str__() curr_match["start_date"] = match.start_date curr_match["job_description"] = match.job_description else: diff --git a/src/backend/api/serializers.py b/src/backend/api/serializers.py index d7e5c73..77b3d01 100644 --- a/src/backend/api/serializers.py +++ b/src/backend/api/serializers.py @@ -159,8 +159,6 @@ def get_matches(self, instance): - - class InvitationSerializer(serializers.HyperlinkedModelSerializer): association = AssociationsSerializer() diff --git a/src/backend/tests/test_authetication.py b/src/backend/tests/test_authetication.py deleted file mode 100644 index b031ed3..0000000 --- a/src/backend/tests/test_authetication.py +++ /dev/null @@ -1,100 +0,0 @@ -from rest_framework.test import APIRequestFactory -from api.models import Companies, Candidates, Associations -from api.authentication_services import get_user_type -from api.views import ( - CandidatesViewSet, - LoginView, - CompaniesViewSet, - SkillsViewSet, - SoftSkillsViewSet, -) -from django.test import TestCase -from time import sleep - - -class TestAuthentication(TestCase): - def setUp(self): - self.factory = APIRequestFactory() - - def test_login(self): - users = [ - { - "email": "company@company.com", - "password": "Company123.123", - "role": "company_user", - "id": 1, - }, - { - "email": "candidate@candidate.com", - "password": "Candidate123.123", - "role": "candidate", - "id": 1, - }, - { - "email": "association@association.com", - "password": "Association123.123", - "role": "association_user", - "id": 1, - }, - ] - - login_page = LoginView.as_view() - factory = APIRequestFactory() - - for user in users: - request = factory.post("/login/", {**user}) - response = login_page(request) - - assert response.data["role"] == user["role"] - assert "access_token" in response.data.keys() - assert "refresh_token" in response.data.keys() - - def test_create_hard_skill(self): - factory = APIRequestFactory() - request = factory.post( - "/skills/1/", - { - "skill_name": "first skill", - }, - ) - - view = SkillsViewSet.as_view({"post": "create"}) - response = view(request) - - assert response.status_code == 201 - - return response.data["skill_id"] - - def test_create_soft_skill(self): - factory = APIRequestFactory() - request = factory.post( - "/softskills/1/", - { - "soft_skill_name": "first soft skill", - }, - ) - - view = SoftSkillsViewSet.as_view({"post": "create"}) - response = view(request) - - assert response.status_code == 201 - - return response.data["soft_skill_id"] - - def test_candidates_view(self): - factory = APIRequestFactory() - request = factory.get("/api/candidates/") - - view = CandidatesViewSet.as_view({"get": "list"}) - response = view(request) - - assert response.status_code == 200 - - def test_comapnies_view(self): - factory = APIRequestFactory() - request = factory.get("/api/companies/") - - view = CompaniesViewSet.as_view({"get": "list"}) - response = view(request) - - assert response.status_code == 200 diff --git a/src/notebooks/README.md b/src/notebooks/README.md new file mode 100644 index 0000000..dadec42 --- /dev/null +++ b/src/notebooks/README.md @@ -0,0 +1,12 @@ +## deploy-impact-23-shift-3 notebooks + +This folder contains the code that was used for parsing the datasets with job descriptions and candidates' profiles. + +One can download the dataset for candidates from [here](https://www.kaggle.com/datasets/heet9022/linkedin-dataset) and the dataset with jobs from [here](https://www.kaggle.com/datasets/andresionek/data-jobs-listings-glassdoor) and add the path to the datasets to the respective .yml files. + +The following logical steps are used to clean the datasets: +* filter tech-related, Swiss-based, entry-level items +* for job descriptions: use only descriptions written in English using [langid](https://github.com/saffsd/langid.py) package +* extract soft and hard skills using [SkillNer](https://skillner.vercel.app/) +* extract languages using [language ISO list](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) +* reorganize the columns (rename, drop ones not to be uploaded to the database, reset the index) diff --git a/src/notebooks/cand_parsing.yaml b/src/notebooks/cand_parsing.yaml new file mode 100644 index 0000000..638bc75 --- /dev/null +++ b/src/notebooks/cand_parsing.yaml @@ -0,0 +1,34 @@ +TABLE_PATH: "" +LANGUAGE_PATH: "languages.csv" + +SWISS_LOCATION: + - 'CH' + - 'SWITZERLANDS' + +COLS: + 'Name': 'name' + 'Experience': 'experience' + 'description': 'about_me' + 'category': 'industry' + +TECH_KEYWORDS: + - 'computer' + - 'recognition' + - 'nlp' + - 'developer' + - 'data' + - 'information' + - 'software' + - 'database' + - 'programming' + - 'ai' + - 'ml' + - 'application' + - 'frontend' + - 'backend' + +SENIOR_KEYWORDS: + - 'senior' + - 'lead' + - 'head' + - 'partner' \ No newline at end of file diff --git a/src/notebooks/jobs_parsing.yaml b/src/notebooks/jobs_parsing.yaml new file mode 100644 index 0000000..502336f --- /dev/null +++ b/src/notebooks/jobs_parsing.yaml @@ -0,0 +1,38 @@ +TABLE_PATH: "" +LANGUAGE_PATH: "languages.csv" + +SWISS_LOCATION: + - 'CH' + - 'SWITZERLANDS' + +COLS: + 'header.jobTitle': 'job_title' + 'header.employerName': 'employer_name' + 'header.location': 'location_city' + 'job.description': 'job_description' + 'map.country': 'location_country' + 'overview.industry': 'industry' + 'overview.mission': 'values' + 'overview.website': 'website' + +TECH_KEYWORDS: + - 'computer' + - 'recognition' + - 'nlp' + - 'developer' + - 'data' + - 'information' + - 'software' + - 'database' + - 'programming' + - 'ai' + - 'ml' + - 'application' + - 'frontend' + - 'backend' + +SENIOR_KEYWORDS: + - 'senior' + - 'lead' + - 'head' + - 'partner' \ No newline at end of file diff --git a/src/notebooks/languages.csv b/src/notebooks/languages.csv new file mode 100644 index 0000000..e93b335 --- /dev/null +++ b/src/notebooks/languages.csv @@ -0,0 +1,204 @@ +Abkhazian +Afar +Afrikaans +Akan +Albanian +Amharic +Arabic +Aragonese +Armenian +Assamese +Avaric +Avestan +Aymara +Azerbaijani +Bambara +Bashkir +Basque +Belarusian +Bengali +Bislama +Bosnian +Breton +Bulgarian +Burmese +Catalan +Valencian +Chamorro +Chechen +Chichewa +Chewa +Nyanja +Chinese +Church Slavonic +Chuvash +Cornish +Corsican +Cree +Croatian +Czech +Danish +Divehi +Dhivehi +Maldivian +Dutch +Flemish +Dzongkha +English +Esperanto +Estonian +Ewe +Faroese +Fijian +Finnish +French +Western Frisian +Fulah +Gaelic +Scottish Gaelic +Galician +Ganda +Georgian +German +Greek +Kalaallisut +Greenlandic +Guarani +Gujarati +Haitian +Haitian Creole +Hausa +Hebrew +Herero +Hindi +Hiri Motu +Hungarian +Icelandic +Ido +Igbo +Indonesian +Interlingua +Inuktitut +Inupiaq +Irish +Italian +Japanese +Javanese +Kannada +Kanuri +Kashmiri +Kazakh +Central Khmer +Kikuyu +Gikuyu +Kinyarwand +Kirghiz +Kyrgyz +Komi +Kongo +Korean +Kuanyama +Kwanyama +Kurdish +Lao +Latin +Latvian +Limburgan +Limburger +Limburgish +Lingala +Lithuanian +Luba-Katanga +Luxembourgish +Letzeburgesch +Macedonian +Malagasy +Malay +Malayalam +Maltes +Manx +Maori +Marathi +Marshallese +Mongolian +Nauru +Navajo +Navaho +North Ndebele +South Ndebele +Ndonga +Nepali +Norwegian +Norwegian Bokmål +Norwegian Nynorsk +Sichuan Yi +Nuosu +Occitan +Ojibwa +Oriya +Oromo +Ossetian +Ossetic +Pali +Pashto +Pushto +Persian +Polish +Portuguese +Punjabi +Panjabi +Quechua +Romanian +Moldavian +Moldovan +Northern Sami +Samoan +Sango +Sanskrit +Sardinian +Serbian +Shona +Sindhi +Sinhala +Sinhalese +Slovak +Slovenian +Somali +Southern Sotho +Spanish +Castilian +Sundanese +Swahili +Swati +Swedish +Tagalog +Tahitian +Tajik +Tamil +Tatar +Telugu +Thai +Tibetan +Tigrinya +Tsonga +Tsonga +Tswana +Turkish +Turkmen +Twi +Uighur +Ukrainian +Urdu +Uzbek +Venda +Vietnamese +Volapük +Walloon +Welsh +Wolof +Xhosa +Yiddish +Yoruba +Zhuang +Chuang +Zulu diff --git a/src/notebooks/notebook_utils.py b/src/notebooks/notebook_utils.py new file mode 100644 index 0000000..fc4d164 --- /dev/null +++ b/src/notebooks/notebook_utils.py @@ -0,0 +1,73 @@ +import pandas as pd +from bs4 import BeautifulSoup +import re +import langid +import yaml +from typing import List + +import spacy +from spacy.matcher import PhraseMatcher +# load default skills data base +from skillNer.general_params import SKILL_DB +# import skill extractor +from skillNer.skill_extractor_class import SkillExtractor + +def clean_from_html(s: str) -> str: + ''' + This functions returns a string clean from html symbols. + ''' + bs_result = BeautifulSoup(s, 'lxml').text + result = re.sub('\n', ' ', bs_result) + return result + +def read_csv_to_list(file_name: str) -> List[str]: + ''' + This functions returns a string cleaned from html symbols. + ''' + my_file = open(file_name, "r") + data = my_file.read() + data_list = data.split('\n') + my_file.close() + return data_list + +def if_en(s: str) -> bool: + ''' + This functions returns boolean whether the main langugage of text is English or not + ''' + return langid.classify(str(s))[0] == 'en' + +def extract_languages(s: str, language_list: List[str]) -> List[str]: + ''' + This functions returns list of languages that were mentioned in text + in case of full resmblnce with one of the languages from a given list + (case insensitive). + ''' + lang_set = set(language.lower() for language in language_list) + languages = set() + for word in s.split(): + if word.lower() in lang_set: + languages.add(word.capitalize()) + return list(languages) + +def extract_skills (s: str, language_list: List) -> tuple: + ''' + This function analyses bulk of text and returns lists of hard skills, + soft skills and languages metntioned. Hard and soft skills (soft skills + excluding human languages) + ''' + nlp = spacy.load("en_core_web_lg") + # init skill extractor + skill_extractor = SkillExtractor(nlp, SKILL_DB, PhraseMatcher) + annotations = skill_extractor.annotate(s) + soft_skills = set() + hard_skills = set() + matches = annotations['results']['full_matches']+annotations['results']['ngram_scored'] + for di in matches: + skill_id = di['skill_id'] + skill_type = skill_extractor.skills_db[skill_id]['skill_type'] + skill_name = skill_extractor.skills_db[skill_id]['skill_name'] + if skill_type == 'Hard Skill': + hard_skills.add(skill_name) + if skill_type == 'Soft Skill' and not skill_name.count('Language'): + soft_skills.add(skill_name) + return (', '.join(list(soft_skills)), ', '.join(list(hard_skills)), ', '.join(extract_languages(s, language_list))) \ No newline at end of file diff --git a/src/notebooks/parsing_candidates.ipynb b/src/notebooks/parsing_candidates.ipynb new file mode 100644 index 0000000..3e2c708 --- /dev/null +++ b/src/notebooks/parsing_candidates.ipynb @@ -0,0 +1,86 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd \n", + "import yaml\n", + "import notebook_utils as nu" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "#load the files\n", + "with open('cand_parsing.yaml') as f:\n", + " conf_dict = yaml.safe_load(f)\n", + "language_list = nu.read_csv_to_list (conf_dict['LANGUAGE_PATH'])\n", + "df = pd.read_csv(conf_dict['TABLE_PATH'], usecols = conf_dict['COLS'].keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "n_cols =df.shape[1]\n", + "df_IT = df[df['category']=='Information Technology']\n", + "df_IT = df_IT[df_IT['Experience'].notna()]\n", + "df_IT.insert(n_cols, 'entry_job', ~df_IT['Experience'].str.contains('|'.join(conf_dict['SENIOR_KEYWORDS'])))\n", + "df_IT_start = df_IT[df_IT['entry_job']==True]\n", + "df_IT_start['skills'] = df_IT_start[\"Experience\"].map(lambda x: extract_skills(str(x), language_list))\n", + "df_IT_start['soft_skills'] = df_IT_start['skills'].map(lambda x: x[0])\n", + "df_IT_start['hard_skills'] = df_IT_start['skills'].map(lambda x: x[1])\n", + "df_IT_start['languages'] = df_IT_start['skills'].map(lambda x: x[2])\n", + "#add column holders\n", + "df_IT_start.insert(n_cols, 'location_country', ['Switzeland']*len(df_IT_start))\n", + "df_IT_start.insert(n_cols, 'preffered_name', ['John Smith']*len(df_IT_start))\n", + "df_IT_start.insert(n_cols, 'location_city', ['Geneva']*len(df_IT_start))\n", + "df_IT_start.insert(n_cols, 'last_country', ['Switzerland']*len(df_IT_start))\n", + "df_IT_start.insert(n_cols, 'education', ['Switzeland']*len(df_IT_start))\n", + "df_IT_start.insert(n_cols, 'work_permission_CH', ['True']*len(df_IT_start))\n", + "df_IT_start.insert(n_cols, 'date_of_birth', ['20.07.1985']*len(df_IT_start))\n", + "df_IT_start.insert(n_cols, 'linkedin', ['www.linkedin.com']*len(df_IT_start))\n", + "df_IT_start.insert(n_cols, 'github', ['www.github.com']*len(df_IT_start))\n", + "df_IT_start[['first_name', 'last_name']] = df_IT_start['name'].str.split(n=1, expand = True)\n", + "#rename columns\n", + "df_IT_start.rename(mapper = conf_dict['COLS'], axis = 1, inplace = True)\n", + "#drop columns out of interest\n", + "df_IT_start.drop(columns = ['skills', 'entry_job', 'name'], inplace = True)\n", + "#drop index\n", + "df_IT_start.reset_index(drop = True, inplace = True)\n", + "#save to scv\n", + "df_IT_start.to_csv('IT_candidates.csv')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.10" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/notebooks/parsing_jobs.ipynb b/src/notebooks/parsing_jobs.ipynb new file mode 100644 index 0000000..9c8791e --- /dev/null +++ b/src/notebooks/parsing_jobs.ipynb @@ -0,0 +1,93 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd \n", + "import yaml\n", + "import notebook_utils as nu" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "#load the files\n", + "with open('jobs_parsing.yaml') as f:\n", + " conf_dict = yaml.safe_load(f)\n", + "language_list = nu.read_csv_to_list (conf_dict['LANGUAGE_PATH'])\n", + "df = pd.read_csv(conf_dict['TABLE_PATH'], usecols = conf_dict['COLS'].keys())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "n_cols =df.shape[1]\n", + "df['header.jobTitle'] = df['header.jobTitle'].map(lambda x: x.lower())\n", + "df.insert(n_cols, 'IT_job', df['header.jobTitle'].str.contains('|'.join(conf_dict['TECH_KEYWORDS'])))\n", + "df.insert(n_cols, 'entry_job', ~df['header.jobTitle'].str.contains('|'.join(conf_dict['SENIOR_KEYWORDS'])))\n", + "df.insert(n_cols, 'Swiss_based', df[\"map.country\"].map(lambda x: x in conf_dict['SWISS_LOCATION']))\n", + "\n", + "df_Swiss_IT = df.loc[(df['Swiss_based'] ==True) & (df['IT_job'] == True) & (df['entry_job'] == True)]\n", + "df_Swiss_IT.insert(n_cols, 'job_description', df_Swiss_IT['job.description'].map(lambda x: clean_from_html(str(x))))\n", + "df_Swiss_IT.insert(n_cols, 'english', df_Swiss_IT[\"job_description\"].map(lambda x: nu.if_en(str(x))))\n", + "df_Swiss_IT_en = df_Swiss_IT.loc[df_Swiss_IT['english'] ==True]\n", + "df_Swiss_IT_en.drop(columns=['english', 'job.description', 'IT_job', 'Swiss_based', 'entry_job'], inplace = True)\n", + "df_Swiss_IT_en.reset_index(drop = True, inplace = True)\n", + "df_Swiss_IT_en['skills'] = df_Swiss_IT_en[\"job_description\"].map(lambda x: nu.extract_skills(str(x), language_list))\n", + "df_Swiss_IT_en['soft_skills'] = df_Swiss_IT_en['skills'].map(lambda x: x[0])\n", + "df_Swiss_IT_en['hard_skills'] = df_Swiss_IT_en['skills'].map(lambda x: x[1])\n", + "df_Swiss_IT_en['languages'] = df_Swiss_IT_en['skills'].map(lambda x: x[2])\n", + "\n", + "df_Swiss_IT_en.rename(mapper = conf_dict['COLS'], axis = 1, inplace = True)\n", + "df_Swiss_IT_en.drop(columns = ['skills'], inplace = True)\n", + "df_Swiss_IT_en.to_csv('IT_entry_swiss_jobs.csv')" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "import csv\n", + "fields = ['langugages']\n", + "with open('languages.csv', 'w') as f:\n", + " \n", + " # using csv.writer method from CSV package\n", + " write = csv.writer(f)\n", + " for item in data_into_list:\n", + " write.writerow([item])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.10" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/notebooks/tests.ipynb b/src/notebooks/tests.ipynb new file mode 100644 index 0000000..3f308ba --- /dev/null +++ b/src/notebooks/tests.ipynb @@ -0,0 +1,10417 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "languages = [\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/127/\",\n", + " \"language_name\": \"Abkhazian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/128/\",\n", + " \"language_name\": \"Afar\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/129/\",\n", + " \"language_name\": \"Afrikaans\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/130/\",\n", + " \"language_name\": \"Akan\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/131/\",\n", + " \"language_name\": \"Albanian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/132/\",\n", + " \"language_name\": \"Amharic\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/133/\",\n", + " \"language_name\": \"Arabic\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/134/\",\n", + " \"language_name\": \"Aragonese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/135/\",\n", + " \"language_name\": \"Armenian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/136/\",\n", + " \"language_name\": \"Assamese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/137/\",\n", + " \"language_name\": \"Avaric\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/138/\",\n", + " \"language_name\": \"Avestan\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/139/\",\n", + " \"language_name\": \"Aymara\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/140/\",\n", + " \"language_name\": \"Azerbaijani\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/141/\",\n", + " \"language_name\": \"Bambara\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/142/\",\n", + " \"language_name\": \"Bashkir\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/143/\",\n", + " \"language_name\": \"Basque\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/144/\",\n", + " \"language_name\": \"Belarusian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/145/\",\n", + " \"language_name\": \"Bengali\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/146/\",\n", + " \"language_name\": \"Bislama\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/147/\",\n", + " \"language_name\": \"Bosnian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/148/\",\n", + " \"language_name\": \"Breton\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/149/\",\n", + " \"language_name\": \"Bulgarian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/150/\",\n", + " \"language_name\": \"Burmese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/151/\",\n", + " \"language_name\": \"Catalan\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/152/\",\n", + " \"language_name\": \"Valencian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/153/\",\n", + " \"language_name\": \"Chamorro\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/154/\",\n", + " \"language_name\": \"Chechen\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/155/\",\n", + " \"language_name\": \"Chichewa\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/156/\",\n", + " \"language_name\": \"Chewa\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/157/\",\n", + " \"language_name\": \"Nyanja\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/158/\",\n", + " \"language_name\": \"Chinese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/159/\",\n", + " \"language_name\": \"Church Slavonic\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/160/\",\n", + " \"language_name\": \"Chuvash\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/161/\",\n", + " \"language_name\": \"Cornish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/162/\",\n", + " \"language_name\": \"Corsican\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/163/\",\n", + " \"language_name\": \"Cree\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/164/\",\n", + " \"language_name\": \"Croatian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/165/\",\n", + " \"language_name\": \"Czech\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/166/\",\n", + " \"language_name\": \"Danish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/167/\",\n", + " \"language_name\": \"Divehi\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/168/\",\n", + " \"language_name\": \"Dhivehi\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/169/\",\n", + " \"language_name\": \"Maldivian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/170/\",\n", + " \"language_name\": \"Dutch\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/171/\",\n", + " \"language_name\": \"Flemish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/172/\",\n", + " \"language_name\": \"Dzongkha\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/173/\",\n", + " \"language_name\": \"English\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/174/\",\n", + " \"language_name\": \"Esperanto\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/175/\",\n", + " \"language_name\": \"Estonian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/176/\",\n", + " \"language_name\": \"Ewe\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/177/\",\n", + " \"language_name\": \"Faroese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/178/\",\n", + " \"language_name\": \"Fijian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/179/\",\n", + " \"language_name\": \"Finnish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/180/\",\n", + " \"language_name\": \"French\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/181/\",\n", + " \"language_name\": \"Western Frisian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/182/\",\n", + " \"language_name\": \"Fulah\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/183/\",\n", + " \"language_name\": \"Gaelic\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/184/\",\n", + " \"language_name\": \"Scottish Gaelic\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/185/\",\n", + " \"language_name\": \"Galician\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/186/\",\n", + " \"language_name\": \"Ganda\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/187/\",\n", + " \"language_name\": \"Georgian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/188/\",\n", + " \"language_name\": \"German\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/189/\",\n", + " \"language_name\": \"Greek\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/190/\",\n", + " \"language_name\": \"Kalaallisut\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/191/\",\n", + " \"language_name\": \"Greenlandic\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/192/\",\n", + " \"language_name\": \"Guarani\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/193/\",\n", + " \"language_name\": \"Gujarati\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/194/\",\n", + " \"language_name\": \"Haitian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/195/\",\n", + " \"language_name\": \"Haitian Creole\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/196/\",\n", + " \"language_name\": \"Hausa\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/197/\",\n", + " \"language_name\": \"Hebrew\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/198/\",\n", + " \"language_name\": \"Herero\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/199/\",\n", + " \"language_name\": \"Hindi\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/200/\",\n", + " \"language_name\": \"Hiri Motu\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/201/\",\n", + " \"language_name\": \"Hungarian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/202/\",\n", + " \"language_name\": \"Icelandic\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/203/\",\n", + " \"language_name\": \"Ido\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/204/\",\n", + " \"language_name\": \"Igbo\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/205/\",\n", + " \"language_name\": \"Indonesian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/206/\",\n", + " \"language_name\": \"Interlingua\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/207/\",\n", + " \"language_name\": \"Inuktitut\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/208/\",\n", + " \"language_name\": \"Inupiaq\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/209/\",\n", + " \"language_name\": \"Irish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/210/\",\n", + " \"language_name\": \"Italian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/211/\",\n", + " \"language_name\": \"Japanese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/212/\",\n", + " \"language_name\": \"Javanese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/213/\",\n", + " \"language_name\": \"Kannada\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/214/\",\n", + " \"language_name\": \"Kanuri\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/215/\",\n", + " \"language_name\": \"Kashmiri\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/216/\",\n", + " \"language_name\": \"Kazakh\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/217/\",\n", + " \"language_name\": \"Central Khmer\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/218/\",\n", + " \"language_name\": \"Kikuyu\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/219/\",\n", + " \"language_name\": \"Gikuyu\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/220/\",\n", + " \"language_name\": \"Kinyarwand\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/221/\",\n", + " \"language_name\": \"Kirghiz\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/222/\",\n", + " \"language_name\": \"Kyrgyz\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/223/\",\n", + " \"language_name\": \"Komi\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/224/\",\n", + " \"language_name\": \"Kongo\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/225/\",\n", + " \"language_name\": \"Korean\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/226/\",\n", + " \"language_name\": \"Kuanyama\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/227/\",\n", + " \"language_name\": \"Kwanyama\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/228/\",\n", + " \"language_name\": \"Kurdish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/229/\",\n", + " \"language_name\": \"Lao\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/230/\",\n", + " \"language_name\": \"Latin\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/231/\",\n", + " \"language_name\": \"Latvian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/232/\",\n", + " \"language_name\": \"Limburgan\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/233/\",\n", + " \"language_name\": \"Limburger\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/234/\",\n", + " \"language_name\": \"Limburgish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/235/\",\n", + " \"language_name\": \"Lingala\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/236/\",\n", + " \"language_name\": \"Lithuanian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/237/\",\n", + " \"language_name\": \"Luba-Katanga\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/238/\",\n", + " \"language_name\": \"Luxembourgish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/239/\",\n", + " \"language_name\": \"Letzeburgesch\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/240/\",\n", + " \"language_name\": \"Macedonian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/241/\",\n", + " \"language_name\": \"Malagasy\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/242/\",\n", + " \"language_name\": \"Malay\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/243/\",\n", + " \"language_name\": \"Malayalam\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/244/\",\n", + " \"language_name\": \"Maltes\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/245/\",\n", + " \"language_name\": \"Manx\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/246/\",\n", + " \"language_name\": \"Maori\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/247/\",\n", + " \"language_name\": \"Marathi\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/248/\",\n", + " \"language_name\": \"Marshallese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/249/\",\n", + " \"language_name\": \"Mongolian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/250/\",\n", + " \"language_name\": \"Nauru\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/251/\",\n", + " \"language_name\": \"Navajo\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/252/\",\n", + " \"language_name\": \"Navaho\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/253/\",\n", + " \"language_name\": \"North Ndebele\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/254/\",\n", + " \"language_name\": \"South Ndebele\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/255/\",\n", + " \"language_name\": \"Ndonga\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/256/\",\n", + " \"language_name\": \"Nepali\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/257/\",\n", + " \"language_name\": \"Norwegian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/258/\",\n", + " \"language_name\": \"Norwegian Bokmål\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/259/\",\n", + " \"language_name\": \"Norwegian Nynorsk\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/260/\",\n", + " \"language_name\": \"Sichuan Yi\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/261/\",\n", + " \"language_name\": \"Nuosu\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/262/\",\n", + " \"language_name\": \"Occitan\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/263/\",\n", + " \"language_name\": \"Ojibwa\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/264/\",\n", + " \"language_name\": \"Oriya\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/265/\",\n", + " \"language_name\": \"Oromo\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/266/\",\n", + " \"language_name\": \"Ossetian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/267/\",\n", + " \"language_name\": \"Ossetic\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/268/\",\n", + " \"language_name\": \"Pali\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/269/\",\n", + " \"language_name\": \"Pashto\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/270/\",\n", + " \"language_name\": \"Pushto\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/271/\",\n", + " \"language_name\": \"Persian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/272/\",\n", + " \"language_name\": \"Polish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/273/\",\n", + " \"language_name\": \"Portuguese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/274/\",\n", + " \"language_name\": \"Punjabi\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/275/\",\n", + " \"language_name\": \"Panjabi\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/276/\",\n", + " \"language_name\": \"Quechua\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/277/\",\n", + " \"language_name\": \"Romanian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/278/\",\n", + " \"language_name\": \"Moldavian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/279/\",\n", + " \"language_name\": \"Moldovan\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/280/\",\n", + " \"language_name\": \"Northern Sami\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/281/\",\n", + " \"language_name\": \"Samoan\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/282/\",\n", + " \"language_name\": \"Sango\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/283/\",\n", + " \"language_name\": \"Sanskrit\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/284/\",\n", + " \"language_name\": \"Sardinian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/285/\",\n", + " \"language_name\": \"Serbian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/286/\",\n", + " \"language_name\": \"Shona\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/287/\",\n", + " \"language_name\": \"Sindhi\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/288/\",\n", + " \"language_name\": \"Sinhala\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/289/\",\n", + " \"language_name\": \"Sinhalese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/290/\",\n", + " \"language_name\": \"Slovak\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/291/\",\n", + " \"language_name\": \"Slovenian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/292/\",\n", + " \"language_name\": \"Somali\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/293/\",\n", + " \"language_name\": \"Southern Sotho\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/294/\",\n", + " \"language_name\": \"Spanish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/295/\",\n", + " \"language_name\": \"Castilian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/296/\",\n", + " \"language_name\": \"Sundanese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/297/\",\n", + " \"language_name\": \"Swahili\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/298/\",\n", + " \"language_name\": \"Swati\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/299/\",\n", + " \"language_name\": \"Swedish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/300/\",\n", + " \"language_name\": \"Tagalog\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/301/\",\n", + " \"language_name\": \"Tahitian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/302/\",\n", + " \"language_name\": \"Tajik\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/303/\",\n", + " \"language_name\": \"Tamil\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/304/\",\n", + " \"language_name\": \"Tatar\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/305/\",\n", + " \"language_name\": \"Telugu\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/306/\",\n", + " \"language_name\": \"Thai\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/307/\",\n", + " \"language_name\": \"Tibetan\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/308/\",\n", + " \"language_name\": \"Tigrinya\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/309/\",\n", + " \"language_name\": \"Tsonga\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/310/\",\n", + " \"language_name\": \"Tsonga\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/311/\",\n", + " \"language_name\": \"Tswana\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/312/\",\n", + " \"language_name\": \"Turkish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/313/\",\n", + " \"language_name\": \"Turkmen\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/314/\",\n", + " \"language_name\": \"Twi\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/315/\",\n", + " \"language_name\": \"Uighur\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/316/\",\n", + " \"language_name\": \"Ukrainian\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/317/\",\n", + " \"language_name\": \"Urdu\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/318/\",\n", + " \"language_name\": \"Uzbek\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/319/\",\n", + " \"language_name\": \"Venda\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/320/\",\n", + " \"language_name\": \"Vietnamese\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/321/\",\n", + " \"language_name\": \"Volapük\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/322/\",\n", + " \"language_name\": \"Walloon\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/323/\",\n", + " \"language_name\": \"Welsh\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/324/\",\n", + " \"language_name\": \"Wolof\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/325/\",\n", + " \"language_name\": \"Xhosa\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/326/\",\n", + " \"language_name\": \"Yiddish\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/327/\",\n", + " \"language_name\": \"Yoruba\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/328/\",\n", + " \"language_name\": \"Zhuang\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/329/\",\n", + " \"language_name\": \"Chuang\"\n", + " },\n", + " {\n", + " \"url\": \"http://django-backend-shift-enter-u53fbnjraa-oe.a.run.app/api/languages/330/\",\n", + " \"language_name\": \"Zulu\"\n", + " }\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "import random\n", + "\n", + "\n", + "def generate_random_languages():\n", + " num_options = random.randint(1, 5) # Between 1 and 5 languages\n", + " options = []\n", + " # English always included\n", + " options.append(\"English\")\n", + " \n", + " # Other languages with other lebels\n", + " for _ in range(num_options - 1):\n", + " language = random.choice(languages)\n", + " options.append(f'{language[\"language_name\"]}')\n", + " \n", + " return options\n", + "\n", + "for i in range(439):\n", + " print(generate_random_languages())" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "dob = [\"10.08.1981\",\n", + "\"09.07.1981\",\n", + "\"07.11.1974\",\n", + "\"28.01.1979\",\n", + "\"09.04.1982\",\n", + "\"02.06.1981\",\n", + "\"14.01.1985\",\n", + "\"11.04.1972\",\n", + "\"25.02.2000\",\n", + "\"07.03.1974\",\n", + "\"21.03.1973\",\n", + "\"03.08.1982\",\n", + "\"02.05.1982\",\n", + "\"06.08.1992\",\n", + "\"22.06.1984\",\n", + "\"27.04.1985\",\n", + "\"11.01.1998\",\n", + "\"17.06.1979\",\n", + "\"08.09.1998\",\n", + "\"27.09.1978\",\n", + "\"05.08.1972\",\n", + "\"21.10.1974\",\n", + "\"07.06.1976\",\n", + "\"15.04.1971\",\n", + "\"17.03.1972\",\n", + "\"12.04.1986\",\n", + "\"15.11.1986\",\n", + "\"03.12.1997\",\n", + "\"14.07.1987\",\n", + "\"19.08.1993\",\n", + "\"10.12.1977\",\n", + "\"10.03.1978\",\n", + "\"21.08.1977\",\n", + "\"02.07.1978\",\n", + "\"05.03.1992\",\n", + "\"18.12.1970\",\n", + "\"24.04.1977\",\n", + "\"22.04.2000\",\n", + "\"01.11.1973\",\n", + "\"27.12.1970\",\n", + "\"06.10.1998\",\n", + "\"16.06.1986\",\n", + "\"22.11.1980\",\n", + "\"01.08.1996\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "def correct_dob(dat):\n", + " y = dat[-4:]\n", + " m = dat[3:5]\n", + " d = dat[:2]\n", + " return f\"{y}-{m}-{d}\"\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in dob:\n", + " print(correct_dob(i))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "companies = [\"ONE Agency\",\n", + "\"True Wealth\",\n", + "\"modum.io AG\",\n", + "\"ABB\",\n", + "\"ONE Agency\",\n", + "\"Starmind\",\n", + "\"myitjob\",\n", + "\"Ava AG\",\n", + "\"Antal International\",\n", + "\"ONE Agency\",\n", + "\"Smallpdf\",\n", + "\"Quotient Limited\",\n", + "\"Verity Studios AG\",\n", + "\"Adecco Human Resources AG\",\n", + "\"B3i - The Blockchain Insurance Industry Initiative\",\n", + "\"ONE Agency\",\n", + "\"ONE Agency\",\n", + "\"HILTI\",\n", + "\"Therefore Corporation\",\n", + "\"Swiss AviationSoftware\",\n", + "\"Open Systems AG\",\n", + "\"ExcelRedstone\",\n", + "\"Johnson Electric\",\n", + "\"modum.io AG\",\n", + "\"Fixposition AG\",\n", + "\"Helvetica Partners\",\n", + "\"Varian Medical Systems\",\n", + "\"ONE Agency\",\n", + "\"CHUV\",\n", + "\"Helvetica Partners\",\n", + "\"Therefore Corporation\",\n", + "\"Helvetica Partners\",\n", + "\"Helvetica Partners\",\n", + "\"myitjob\",\n", + "\"Sophia Genetics\",\n", + "\"Swiss Re\",\n", + "\"QSSOT Technology\",\n", + "\"Vizrt\",\n", + "\"Lykke Business AG\",\n", + "\"1Drop Diagnostics\",\n", + "\"Nexiot AG\",\n", + "\"ONE Agency\",\n", + "\"ONE Agency\",\n", + "\"ONE Agency\",\n", + "\"lm group\",\n", + "\"SpotMe\",\n", + "\"Helvetica Partners\",\n", + "\"Unit8\",\n", + "\"myitjob\",\n", + "\"Hexagon Manufacturing Intelligence\",\n", + "\"ONE Agency\",\n", + "\"Universität Basel\",\n", + "\"G-20 Group\",\n", + "\"B3i - The Blockchain Insurance Industry Initiative\",\n", + "\"local.ch\",\n", + "\"MaxWell Biosystems AG\",\n", + "\"myitjob\",\n", + "\"PDS Life Sciences\",\n", + "\"EF Education First\",\n", + "\"myitjob\",\n", + "\"Cloudbeds\",\n", + "\"myitjob\",\n", + "\"Cembra Money Bank\",\n", + "\"Varian Medical Systems\",\n", + "\"myitjob\",\n", + "\"VideoJobs\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"Work & Work SA\",\n", + "\"myitjob\",\n", + "\"Genedata\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"D ONE Solutions\",\n", + "\"ONE Agency\",\n", + "\"Universität Basel\",\n", + "\"EPFL Extension School\",\n", + "\"myitjob\",\n", + "\"Frontiers\",\n", + "\"Plex\",\n", + "\"Helvetica Partners\",\n", + "\"myitjob\",\n", + "\"ABB\",\n", + "\"myitjob\",\n", + "\"Glocomms\",\n", + "\"Adfinis SyGroup\",\n", + "\"myitjob\",\n", + "\"Helvetica Partners\",\n", + "\"NEWcruitment\",\n", + "\"Genedata\",\n", + "\"PartnerRe\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"Swiss Re\",\n", + "\"CasperLabs\",\n", + "\"investiere\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"Vizrt\",\n", + "\"Universität Basel\",\n", + "\"Open Web Technology\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"ONE Agency\",\n", + "\"RepRisk\",\n", + "\"Octal\",\n", + "\"Verity Studios AG\",\n", + "\"myitjob\",\n", + "\"Work & Work SA\",\n", + "\"ONE Agency\",\n", + "\"TOFWERK AG\",\n", + "\"ELCA\",\n", + "\"Private Alpha Switzerland AG\",\n", + "\"myitjob\",\n", + "\"Swiss International Air Lines AG\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"Adia\",\n", + "\"True Wealth AG\",\n", + "\"Coopers Group\",\n", + "\"Vitamin T\",\n", + "\"Adecco Human Resources AG\",\n", + "\"GKA, P.C.\",\n", + "\"Darwin Recruitment\",\n", + "\"Predictive Layer\",\n", + "\"Adfinis SyGroup\",\n", + "\"myitjob\",\n", + "\"Oviva AG\",\n", + "\"Helvetica Partners\",\n", + "\"Swiss International Air Lines AG\",\n", + "\"Swatch Group\",\n", + "\"Genedata\",\n", + "\"Teralytics\",\n", + "\"Endress+Hauser\",\n", + "\"ONE Agency\",\n", + "\"42matters\",\n", + "\"Ava AG\",\n", + "\"Swisscom (Schweiz) AG\",\n", + "\"Nanocorp AG\",\n", + "\"myitjob\",\n", + "\"local.ch\",\n", + "\"VideoJobs\",\n", + "\"ONE Agency\",\n", + "\"Cembra Money Bank\",\n", + "\"ProClinical\",\n", + "\"Helvetica Partners\",\n", + "\"EPFL\",\n", + "\"True Wealth AG\",\n", + "\"myitjob\",\n", + "\"Avaloq\",\n", + "\"Evooq\",\n", + "\"Verity Studios AG\",\n", + "\"lm group\",\n", + "\"EPAM Systems\",\n", + "\"Hunters Group\",\n", + "\"Helvetica Partners\",\n", + "\"Frontiers\",\n", + "\"astrivis\",\n", + "\"Adfinis SyGroup\",\n", + "\"Smallpdf\",\n", + "\"Hays\",\n", + "\"Starmind\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"EPFL\",\n", + "\"ONE Agency\",\n", + "\"Helvetica Partners\",\n", + "\"myitjob\",\n", + "\"Dentsply Sirona\",\n", + "\"ELCA\",\n", + "\"Nicoll Curtin Limited\",\n", + "\"Helvetica Partners\",\n", + "\"Teralytics\",\n", + "\"Swisscom (Schweiz) AG\",\n", + "\"ANYbotics\",\n", + "\"ExcelRedstone\",\n", + "\"myitjob\",\n", + "\"Predictive Layer\",\n", + "\"ONE Agency\",\n", + "\"Coopers Group\",\n", + "\"EF Education First\",\n", + "\"nemensis ag\",\n", + "\"Swisscom (Schweiz) AG\",\n", + "\"Cembra Money Bank\",\n", + "\"Schindler\",\n", + "\"MaxWell Biosystems AG\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"Universität Basel\",\n", + "\"ONE Agency\",\n", + "\"Nicoll Curtin Limited\",\n", + "\"SpotMe\",\n", + "\"AdNovum Informatik\",\n", + "\"myitjob\",\n", + "\"FELFEL\",\n", + "\"EPAM Systems\",\n", + "\"Helvetica Partners\",\n", + "\"Verity Studios AG\",\n", + "\"myitjob\",\n", + "\"Albelissa S.r.l.\",\n", + "\"Genedata\",\n", + "\"Experis\",\n", + "\"Swiss Re\",\n", + "\"Adfinis SyGroup\",\n", + "\"Vicara Infotech Group AG\",\n", + "\"Open Systems AG\",\n", + "\"Spring Professional\",\n", + "\"Nexthink\",\n", + "\"EPSCom\",\n", + "\"ONE Agency\",\n", + "\"Swisscom (Schweiz) AG\",\n", + "\"Helvetica Partners\",\n", + "\"Swarovski\",\n", + "\"Ayaval AG\",\n", + "\"Axxiome\",\n", + "\"Swiss International Air Lines AG\",\n", + "\"Advertima AG\",\n", + "\"Ishi Systems\",\n", + "\"Fixposition AG\",\n", + "\"Helvetica Partners\",\n", + "\"Helvetica Partners\",\n", + "\"TOFWERK AG\",\n", + "\"myitjob\",\n", + "\"G-20 Group\",\n", + "\"Nicoll Curtin Limited\",\n", + "\"3 Plus TV Network AG\",\n", + "\"42matters\",\n", + "\"Swiss Re\",\n", + "\"Procter & Gamble\",\n", + "\"Adecco Human Resources AG\",\n", + "\"myitjob\",\n", + "\"Avaloq\",\n", + "\"Helvetica Partners\",\n", + "\"Open Web Technology\",\n", + "\"ELCA\",\n", + "\"myitjob\",\n", + "\"EF International Language Campuses\",\n", + "\"nemensis ag\",\n", + "\"ONE Agency\",\n", + "\"SwissBorg\",\n", + "\"Magnolia International Ltd.\",\n", + "\"myitjob\",\n", + "\"Paul Scherrer Institut\",\n", + "\"Robert Walters\",\n", + "\"ONE Agency\",\n", + "\"Unit8\",\n", + "\"lm group\",\n", + "\"GKA, P.C.\",\n", + "\"ONE Agency\",\n", + "\"ONE Agency\",\n", + "\"myitjob\",\n", + "\"Hexagon Manufacturing Intelligence\",\n", + "\"ONE Agency\",\n", + "\"Sophia Genetics\",\n", + "\"Magic Leap - Multiple Locations\",\n", + "\"Digital Partners SA\",\n", + "\"ONE Agency\",\n", + "\"BEHIND DIGITAL\",\n", + "\"myitjob\",\n", + "\"Experis\",\n", + "\"Sunflower Labs Inc.\",\n", + "\"ONE Agency\",\n", + "\"myitjob\",\n", + "\"Cloud Academy, Inc.\",\n", + "\"Careerplus AG\",\n", + "\"EPFL\",\n", + "\"Paul Scherrer Institut\",\n", + "\"Nanolive SA\",\n", + "\"PDS Life Sciences\",\n", + "\"Frontiers\",\n", + "\"myitjob\",\n", + "\"Helvetica Partners\",\n", + "\"myitjob\",\n", + "\"HILTI\",\n", + "\"ABB\",\n", + "\"myitjob\",\n", + "\"Flyability\",\n", + "\"Nanolive SA\",\n", + "\"Helvetica Partners\",\n", + "\"Axxiome\",\n", + "\"Swiss International Air Lines AG\",\n", + "\"Paradox Engineering\",\n", + "\"aiaibot\",\n", + "\"Endress+Hauser\",\n", + "\"Open Systems AG\",\n", + "\"Private Alpha Switzerland AG\",\n", + "\"Helvetica Partners\",\n", + "\"Swiss Re\",\n", + "\"lm group\",\n", + "\"Lykke Business AG\",\n", + "\"Varian Medical Systems\",\n", + "\"MSCI Inc.\",\n", + "\"One Step Beyond Group & Logol Offices\",\n", + "\"Smallpdf\",\n", + "\"Swiss International Air Lines AG\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"Swisslinx AG\",\n", + "\"Avaloq\",\n", + "\"Swiss AviationSoftware\",\n", + "\"Avaloq\",\n", + "\"EPAM Systems\",\n", + "\"Swiss Re\",\n", + "\"Helvetica Partners\",\n", + "\"Starmind\",\n", + "\"eTeam UK\",\n", + "\"myitjob\",\n", + "\"Avaloq\",\n", + "\"MIACAR\",\n", + "\"EPFL\",\n", + "\"EPFL Extension School\",\n", + "\"EF International Language Campuses\",\n", + "\"myitjob\",\n", + "\"University of Basel\",\n", + "\"Adfinis SyGroup\",\n", + "\"Unit8\",\n", + "\"myitjob\",\n", + "\"lm group\",\n", + "\"Coopers Group\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"One Step Beyond Group & Logol Offices\",\n", + "\"Robert Walters\",\n", + "\"ELCA\",\n", + "\"1Drop Diagnostics\",\n", + "\"Helvetica Partners\",\n", + "\"myitjob\",\n", + "\"GKA, P.C.\",\n", + "\"myitjob\",\n", + "\"EPSCom\",\n", + "\"Avaloq\",\n", + "\"astrivis\",\n", + "\"myitjob\",\n", + "\"Quotient Limited\",\n", + "\"myitjob\",\n", + "\"RepRisk\",\n", + "\"Ishi Systems\",\n", + "\"Frontiers\",\n", + "\"Greenliff AG\",\n", + "\"myitjob\",\n", + "\"Agidens Schweiz\",\n", + "\"Fixposition AG\",\n", + "\"Darwin Recruitment\",\n", + "\"myitjob\",\n", + "\"addexpert GmbH\",\n", + "\"CHUV\",\n", + "\"myitjob\",\n", + "\"Swiss International Air Lines AG\",\n", + "\"Kudelski SA\",\n", + "\"HID Global\",\n", + "\"addexpert GmbH\",\n", + "\"AO Foundation\",\n", + "\"Homegate AG\",\n", + "\"Nanolive SA\",\n", + "\"ONE Agency\",\n", + "\"EPAM Systems\",\n", + "\"wega Informatik AG\",\n", + "\"TOFWERK AG\",\n", + "\"addexpert GmbH\",\n", + "\"Nicoll Curtin Limited\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"CHUV\",\n", + "\"Adecco Human Resources AG\",\n", + "\"Helvetica Partners\",\n", + "\"Predictive Layer\",\n", + "\"Axxiome\",\n", + "\"Smallpdf\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"Swiss Startup Factory AG\",\n", + "\"myitjob\",\n", + "\"ExcelRedstone\",\n", + "\"EPSCom\",\n", + "\"Avaloq\",\n", + "\"Procter & Gamble\",\n", + "\"Starmind\",\n", + "\"myitjob\",\n", + "\"Genedata\",\n", + "\"myitjob\",\n", + "\"Nanocorp AG\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"myitjob\",\n", + "\"Badenoch + Clark\",\n", + "\"Darwin Recruitment\",\n", + "\"AdNovum Informatik\",\n", + "\"myitjob\",\n", + "\"ELCA\",\n", + "\"Helvetica Partners\",\n", + "\"investiere\",\n", + "\"libC Technologies SA\",\n", + "\"myitjob\",\n", + "\"ONE Agency\",\n", + "\"Ava AG\",\n", + "\"Fixposition AG\",\n", + "\"ABB\",\n", + "\"Fixposition AG\",\n", + "\"DAI Group GmbH\",\n", + "\"myitjob\",\n", + "\"Helvetica Partners\",\n", + "\"Institute for Biomechanics\",\n", + "\"Cimpress/Vistaprint\",\n", + "\"myitjob\",\n", + "\"Nicoll Curtin Limited\",\n", + "\"ONE Agency\",\n", + "\"Genius Sports\",\n", + "\"Paul Scherrer Institut\",\n", + "\"CK Group\",\n", + "\"Cembra Money Bank\",\n", + "\"Therefore Corporation\",\n", + "\"Vitamin T\",\n", + "\"Octal\",\n", + "\"Quotient Limited\",\n", + "\"Universität Basel\",\n", + "\"Hunters Group\",\n", + "\"Logitech\",\n", + "\"EF Education First\",\n", + "\"myitjob\",\n", + "\"Ringier AG\",\n", + "\"myitjob\",\n", + "\"SPOUD AG\",\n", + "\"myitjob\",\n", + "\"Beekeeper Careers\",\n", + "\"ONE Agency\",\n", + "\"Nexiot AG\",\n", + "\"myitjob\",\n", + "\"Avaloq\",\n", + "\"Fixposition AG\",\n", + "\"Universität Basel\",\n", + "\"SwissBorg\",\n", + "\"Neural Concept\",\n", + "\"local.ch\",\n", + "\"Procter & Gamble\",\n", + "\"ProClinical\",\n", + "\"myitjob\"]\n", + "\n", + "companies = list(set(companies))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "companies.sort()\n", + "for i in companies:\n", + " print(i)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " | company_id | \n", + "job_title | \n", + "location | \n", + "industry | \n", + "website | \n", + "jobdescription_embedded | \n", + "job_description | \n", + "soft_skills | \n", + "hard_skills | \n", + "languages | \n", + "
---|---|---|---|---|---|---|---|---|---|---|
0 | \n", + "84 | \n", + "application engineer - java | \n", + "Zürich | \n", + "IT Services | \n", + "NaN | \n", + "[[-2.55808532e-01 3.37073445e-01 4.68456328e-0... | \n", + "About our client Our client is the world’s le... | \n", + "[\"Analytical Skills\", \"Team Oriented\", \"Teamwo... | \n", + "[\"Application Development\", \"Web Applications\"... | \n", + "['English', 'Basque'] | \n", + "
1 | \n", + "123 | \n", + "software engineer | \n", + "Zürich | \n", + "NaN | \n", + "NaN | \n", + "[[-2.12718710e-01 1.10670008e-01 4.75184590e-0... | \n", + "As a pioneer in Swiss online wealth management... | \n", + "[\"Typing\", \"Writing\"] | \n", + "[\"Application Development\", \"Web Applications\"... | \n", + "['English', 'Tagalog', 'Assamese'] | \n", + "
2 | \n", + "75 | \n", + "software engineer | \n", + "Zürich | \n", + "NaN | \n", + "NaN | \n", + "[[-1.51853904e-01 2.82749176e-01 4.16773558e-0... | \n", + "Although you will be exposed to all the differ... | \n", + "[\"Teamwork\", \"Decisiveness\", \"Collaboration\", ... | \n", + "[\"Bitbucket\", \"Automation\", \"Tooling\", \"Code R... | \n", + "['English'] | \n", + "
3 | \n", + "4 | \n", + "software engineer network management system m/f | \n", + "Bern | \n", + "Electrical & Electronic Manufacturing | \n", + "www.abb.com | \n", + "[[-1.00095063e-01 1.79666638e-01 4.91430968e-0... | \n", + "In order to improve our Network Management Sys... | \n", + "[\"Collaboration\", \"Communications\", \"Writing\",... | \n", + "[\"Front End (Software Engineering)\", \"Professi... | \n", + "['English', 'Chewa', 'Bosnian', 'Yiddish', 'Af... | \n", + "
4 | \n", + "84 | \n", + "application engineer - java | \n", + "Zürich | \n", + "IT Services | \n", + "NaN | \n", + "[[-2.55808532e-01 3.37073445e-01 4.68456328e-0... | \n", + "About our client Our client is the world’s le... | \n", + "[\"Analytical Skills\", \"Team Oriented\", \"Teamwo... | \n", + "[\"Application Development\", \"Web Applications\"... | \n", + "['English', 'Spanish', 'Croatian'] | \n", + "
... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
427 | \n", + "79 | \n", + "software engineer | \n", + "Lausanne | \n", + "NaN | \n", + "NaN | \n", + "[[-1.27125368e-01 2.69796431e-01 4.17574644e-0... | \n", + "Our company Neural Concept uses Deep Learning... | \n", + "[\"Research\", \"Collaboration\", \"Planning\", \"Rel... | \n", + "[\"MSC Software\", \"Kubernetes\", \"Tooling\", \"NoS... | \n", + "['English'] | \n", + "
428 | \n", + "68 | \n", + "software engineer / kubernetes | \n", + "Zürich | \n", + "Publishing | \n", + "NaN | \n", + "[[-9.86396894e-02 3.53228837e-01 5.67326486e-0... | \n", + "localsearch is the leading marketing and adver... | \n", + "[\"Collaboration\", \"Communications\", \"Infrastru... | \n", + "[\"Web Applications\", \"Web Servers\", \"Advertise... | \n", + "['English', 'Marathi', 'Castilian', 'Irish'] | \n", + "
429 | \n", + "97 | \n", + "paid internship in information technology - da... | \n", + "Geneva | \n", + "NaN | \n", + "www.pg.com | \n", + "[[-1.46625876e-01 2.97089696e-01 5.98815024e-0... | \n", + "Do you have passion to transform P&G's brand b... | \n", + "[\"Self-Motivation\", \"Leadership\", \"Collaborati... | \n", + "[\"Business Analytics\", \"Tableau (Business Inte... | \n", + "['English', 'Western Frisian', 'Gaelic', 'Kann... | \n", + "
430 | \n", + "96 | \n", + "study data manager | \n", + "Basel | \n", + "Staffing & Outsourcing | \n", + "www.proclinical.com | \n", + "[[-3.31524819e-01 3.49949777e-01 3.49553525e-0... | \n", + "A leading international healthcare company is ... | \n", + "[\"Ingenuity\", \"Complex Problem Solving\", \"Nego... | \n", + "[\"Biometrics\", \"Automation\", \"Mitigation\", \"Ou... | \n", + "['English', 'Aymara', 'Avaric', 'Burmese'] | \n", + "
431 | \n", + "75 | \n", + "software development engineer (c/c++) m/f | \n", + "Zürich | \n", + "NaN | \n", + "NaN | \n", + "[[-1.79381236e-01 4.31842625e-01 4.21524853e-0... | \n", + "Job Informationen Required skills: - Universi... | \n", + "NaN | \n", + "[\"Application Development\", \"Software Modules\"... | \n", + "['English'] | \n", + "
432 rows × 10 columns
\n", + "