{"id":27950830,"url":"https://github.com/obss/turkish-question-generation","last_synced_at":"2025-09-26T12:05:10.607Z","repository":{"id":45630692,"uuid":"426672645","full_name":"obss/turkish-question-generation","owner":"obss","description":"Automated question generation and question answering from Turkish texts using text-to-text transformers","archived":false,"fork":false,"pushed_at":"2022-08-12T15:41:20.000Z","size":40,"stargazers_count":47,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-18T05:57:16.635Z","etag":null,"topics":["arxiv","mt5","multilingual","neptune-ai","nlp","question-answering","question-generation","t5","transformers","turkish","wandb","xquad"],"latest_commit_sha":null,"homepage":"https://journals.tubitak.gov.tr/elektrik/vol30/iss5/17/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/obss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-10T15:21:49.000Z","updated_at":"2025-08-11T09:50:41.000Z","dependencies_parsed_at":"2022-09-05T04:00:19.716Z","dependency_job_id":null,"html_url":"https://github.com/obss/turkish-question-generation","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/obss/turkish-question-generation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obss%2Fturkish-question-generation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obss%2Fturkish-question-generation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obss%2Fturkish-question-generation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obss%2Fturkish-question-generation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/obss","download_url":"https://codeload.github.com/obss/turkish-question-generation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obss%2Fturkish-question-generation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277073516,"owners_count":25755875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-26T02:00:09.010Z","response_time":78,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arxiv","mt5","multilingual","neptune-ai","nlp","question-answering","question-generation","t5","transformers","turkish","wandb","xquad"],"created_at":"2025-05-07T16:15:58.035Z","updated_at":"2025-09-26T12:05:10.554Z","avatar_url":"https://github.com/obss.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ch1\u003e\n  Turkish Question Generation\n\u003c/h1\u003e\n\n\u003ch4\u003e\n  Offical source code for \n\n  \u003ca href=\"https://journals.tubitak.gov.tr/elektrik/vol30/iss5/17/\"\u003e\"Automated question generation \u0026amp; question answering from Turkish texts\"\u003c/a\u003e\n\u003c/h4\u003e\n\u003c/div\u003e\n\n\u003cdetails open\u003e\n\u003csummary\u003e\n  \u003cbig\u003e\u003cb\u003ecitation\u003c/b\u003e\u003c/big\u003e\n\u003c/summary\u003e\n  \nIf you use this software in your work, please cite as:\n  \n```\n@article{akyon2022questgen,\n    author = {Akyon, Fatih Cagatay and Cavusoglu, Ali Devrim Ekin and Cengiz, Cemil and Altinuc, Sinan Onur and Temizel, Alptekin},\n    doi = {10.3906/elk-1300-0632.3914},\n    journal = {Turkish Journal of Electrical Engineering and Computer Sciences},\n    title = {{Automated question generation and question answering from Turkish texts}},\n    url = {https://journals.tubitak.gov.tr/elektrik/vol30/iss5/17/},\n    year = {2022}\n}\n```\n  \n\u003c/details\u003e\n\n\u003cdetails closed\u003e\n\u003csummary\u003e\n\u003cbig\u003e\u003cb\u003einstall\u003c/b\u003e\u003c/big\u003e\n\u003c/summary\u003e\n\n```bash\ngit clone https://github.com/obss/turkish-question-generation.git\ncd turkish-question-generation\npip install -r requirements.txt\n```\n\u003c/details\u003e\n\n\u003cdetails closed\u003e\n\u003csummary\u003e\n\u003cbig\u003e\u003cb\u003etrain\u003c/b\u003e\u003c/big\u003e\n\u003c/summary\u003e\n\n- start a training using args:\n\n```bash\npython run.py --model_name_or_path google/mt5-small  --output_dir runs/exp1 --do_train --do_eval --tokenizer_name_or_path mt5_qg_tokenizer --per_device_train_batch_size 4 --gradient_accumulation_steps 2 --learning_rate 1e-4 --seed 42 --save_total_limit 1\n```\n\n- download [json config](configs/default/config.json) file and start a training:\n\n```bash\npython run.py config.json\n```\n\n- downlaod [yaml config](configs/default/config.yaml) file and start a training:\n\n```bash\npython run.py config.yaml\n```\n\n\u003c/details\u003e\n\n\u003cdetails closed\u003e\n\u003csummary\u003e\n\u003cbig\u003e\u003cb\u003eevaluate\u003c/b\u003e\u003c/big\u003e\n\u003c/summary\u003e\n\n- arrange related params in config:\n\n```yaml\ndo_train: false\ndo_eval: true\neval_dataset_list: [\"tquad2-valid\", \"xquad.tr\"]\nprepare_data: true\nmt5_task_list: [\"qa\", \"qg\", \"ans_ext\"]\nmt5_qg_format: \"both\"\nno_cuda: false\n```\n\n- start an evaluation:\n\n```bash\npython run.py config.yaml\n```\n\n\u003c/details\u003e\n\n\u003cdetails closed\u003e\n\u003csummary\u003e\n\u003cbig\u003e\u003cb\u003eneptune\u003c/b\u003e\u003c/big\u003e\n\u003c/summary\u003e\n\n- install neptune:\n\n```bash\npip install neptune-client\n```\n\n- download [config](configs/default/config.yaml) file and arrange neptune params:\n\n```yaml\nrun_name: 'exp1'\nneptune_project: 'name/project'\nneptune_api_token: 'YOUR_API_TOKEN'\n```\n\n- start a training:\n\n```bash\npython train.py config.yaml\n```\n\n\u003c/details\u003e\n\n\u003cdetails closed\u003e\n\u003csummary\u003e\n\u003cbig\u003e\u003cb\u003ewandb\u003c/b\u003e\u003c/big\u003e\n\u003c/summary\u003e\n\n- install wandb:\n\n```bash\npip install wandb\n```\n\n- download [config](configs/default/config.yaml) file and arrange wandb params:\n\n```yaml\nrun_name: 'exp1'\nwandb_project: 'turque'\n```\n\n- start a training:\n\n```bash\npython train.py config.yaml\n```\n\n\u003c/details\u003e\n\n\u003cdetails closed\u003e\n\u003csummary\u003e\n\u003cbig\u003e\u003cb\u003efinetuned checkpoints\u003c/b\u003e\u003c/big\u003e\n\u003c/summary\u003e\n\n[model_url1]: https://drive.google.com/uc?id=10hHFuavHCofDczGSzsH1xPHgTgAocOl1\n[model_url2]: https://huggingface.co/google/mt5-small\n[model_url3]: https://huggingface.co/google/mt5-base\n[model_url4]: https://drive.google.com/uc?id=1Cnovcib1I276GmJVOGa33jySIwOthIa7\n[model_url5]: 'https://drive.google.com/uc?id=1hVhR5hQHcIVKj5pPgvYkcl1WWDDHpOFL'\n[model_url6]: https://drive.google.com/uc?id=1JG14mynmu-b3Dy2UDJr4AyJQyuW-uabh\n[model_url7]: https://drive.google.com/uc?id=10hHFuavHCofDczGSzsH1xPHgTgAocOl1\n[model_url8]: 'https://drive.google.com/uc?id=1W8PXgx6VDaThDdLNkL-HVWb1MNcQdxwp'\n[data_url1]: https://github.com/obss/turkish-question-generation/releases/download/0.0.1/tquad_train_data_v2.json\n[data_url2]: https://github.com/obss/turkish-question-generation/releases/download/0.0.1/tquad_dev_data_v2.json\n[data_url3]: https://github.com/deepmind/xquad/blob/master/xquad.tr.json\n\n\n|name |model |training \u003cbr\u003e data |trained \u003cbr\u003e tasks |model size\u003cbr\u003e\u003csup\u003e(GB) |\n|--- |--- |--- |--- |--- |\n|[mt5-small-3task-highlight-tquad2][model_url4] |[mt5-small][model_url2] |[tquad2-train][data_url1] |QA,QG,AnsExt  |1.2GB |\n|[mt5-small-3task-prepend-tquad2][model_url6] |[mt5-small][model_url2] |[tquad2-train][data_url1] |QA,QG,AnsExt  |1.2GB |\n|[mt5-small-3task-highlight-combined3][model_url7] |[mt5-small][model_url2] |[tquad2-train][data_url1]+[tquad2-valid][data_url2]+[xquad.tr][data_url3]|QA,QG,AnsExt  |1.2GB |\n|[mt5-base-3task-highlight-tquad2][model_url5] |[mt5-base][model_url3] |[tquad2-train][data_url1] |QA,QG,AnsExt  |2.3GB |\n|[mt5-base-3task-highlight-combined3][model_url8] |[mt5-base][model_url3] |[tquad2-train][data_url1]+[tquad2-valid][data_url2]+[xquad.tr][data_url3]|QA,QG,AnsExt |2.3GB |\n\n\u003c/details\u003e\n\n\u003cdetails closed\u003e\n\u003csummary\u003e\n\u003cbig\u003e\u003cb\u003eformat\u003c/b\u003e\u003c/big\u003e\n\u003c/summary\u003e\n\n- answer extraction:\n\ninput:\n```\n\"\u003chl\u003e Osman Bey 1258 yılında Söğüt’te doğdu. \u003chl\u003e Osman Bey 1 Ağustos 1326’da Bursa’da hayatını kaybetmiştir.1281 yılında Osman Bey 23 yaşında iken Ahi teşkilatından olan Şeyh Edebali’nin kızı Malhun Hatun ile evlendi.\"\n```\n\ntarget:\n```\n\u003csep\u003e 1258 \u003csep\u003e Söğüt’te \u003csep\u003e\n```\n\n- question answering:\n\ninput:\n```\n\"question: Osman Bey nerede doğmuştur? context: Osman Bey 1258 yılında Söğüt’te doğdu. Osman Bey 1 Ağustos 1326’da Bursa’da hayatını kaybetmiştir.1281 yılında Osman Bey 23 yaşında iken Ahi teşkilatından olan Şeyh Edebali’nin kızı Malhun Hatun ile evlendi.\"\n```\n\ntarget:\n```\n\"Söğüt’te\"\n```\n\n- question generation (prepend):\n\ninput:\n```\n\"answer: Söğüt’te context: Osman Bey 1258 yılında Söğüt’te doğdu. Osman Bey 1 Ağustos 1326’da Bursa’da hayatını kaybetmiştir.1281 yılında Osman Bey 23 yaşında iken Ahi teşkilatından olan Şeyh Edebali’nin kızı Malhun Hatun ile evlendi.\"\n```\n\ntarget:\n```\n\"Osman Bey nerede doğmuştur?\"\n```\n\n- question generation (highlight):\n\ninput:\n```\n\"generate question: Osman Bey 1258 yılında \u003chl\u003e Söğüt’te \u003chl\u003e doğdu. Osman Bey 1 Ağustos 1326’da Bursa’da hayatını kaybetmiştir.1281 yılında Osman Bey 23 yaşında iken Ahi teşkilatından olan Şeyh Edebali’nin kızı Malhun Hatun ile evlendi.\"\n```\n\ntarget:\n```\n\"Osman Bey nerede doğmuştur?\"\n```\n\n- question generation (both):\n\ninput:\n```\n\"answer: Söğüt’te context: Osman Bey 1258 yılında \u003chl\u003e Söğüt’te \u003chl\u003e doğdu. Osman Bey 1 Ağustos 1326’da Bursa’da hayatını kaybetmiştir.1281 yılında Osman Bey 23 yaşında iken Ahi teşkilatından olan Şeyh Edebali’nin kızı Malhun Hatun ile evlendi.\"\n```\n\ntarget:\n```\n\"Osman Bey nerede doğmuştur?\"\n```\n\u003c/details\u003e\n\n\u003cdetails open\u003e\n\u003csummary\u003e\n\u003cbig\u003e\u003cb\u003epaper results\u003c/b\u003e\u003c/big\u003e\n\u003c/summary\u003e\n\n\u003cdiv align=\"center\"\u003e\n BERTurk-base and mT5-base QA evaluation results for TQuADv2 fine-tuning.\n\u003c/p\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/34196005/141182075-5d3d1c43-fdf3-4892-921b-6e2d5c7550f9.png\" width=\"500\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\nmT5-base QG evaluation results for single-task (ST) and multi-task (MT) for TQuADv2 fine-tuning.\n\u003c/p\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/34196005/141182079-40cd436c-2a93-4ad6-a59a-1db76e96ccfe.png\" width=\"500\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\nTQuADv1 and TQuADv2 fine-tuning QG evaluation results for multi-task mT5 variants. MT-Both means, mT5 model is fine-tuned with ’Both’ input format and in a multi-task setting.\n\u003c/p\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/34196005/141182081-97dc188b-475a-4dfd-91f6-f08c14a472fc.png\" width=\"700\"\u003e\n\u003c/div\u003e\n\n\u003c/details\u003e\n\n\u003cdetails closed\u003e\n\u003csummary\u003e\n\u003cbig\u003e\u003cb\u003epaper configs\u003c/b\u003e\u003c/big\u003e\n\u003c/summary\u003e\n\nYou can find the config files used in the paper under [configs/paper](configs/paper).\n\n\u003c/details\u003e\n\n\u003cdetails closed\u003e\n\u003csummary\u003e\n\u003cbig\u003e\u003cb\u003econtributing\u003c/b\u003e\u003c/big\u003e\n\u003c/summary\u003e\n\nBefore opening a PR:\n\n- Install required development packages:\n\n```bash\npip install \"black==21.7b0\" \"flake8==3.9.2\" \"isort==5.9.2\"\n```\n\n- Reformat with black and isort:\n\n```bash\nblack . --config pyproject.toml\nisort .\n```\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobss%2Fturkish-question-generation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fobss%2Fturkish-question-generation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobss%2Fturkish-question-generation/lists"}