{"id":13695698,"url":"https://github.com/GlobalMaksimum/sadedegel","last_synced_at":"2025-05-03T13:33:24.554Z","repository":{"id":40012126,"uuid":"277359296","full_name":"GlobalMaksimum/sadedegel","owner":"GlobalMaksimum","description":"A General Purpose NLP library for Turkish","archived":false,"fork":false,"pushed_at":"2023-04-12T05:36:36.000Z","size":194977,"stargazers_count":93,"open_issues_count":65,"forks_count":13,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-09T20:58:02.253Z","etag":null,"topics":["acikhack2","ai","artificial-intelligence","bert","binder","corpus","data-science","deep-learning","embeddings","heroku","machine-learning","natural-language-processing","neural-network","neural-networks","news-summarizer","nlp","python"],"latest_commit_sha":null,"homepage":"http://sadedegel.ai","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/GlobalMaksimum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-07-05T18:20:40.000Z","updated_at":"2024-10-04T18:34:05.000Z","dependencies_parsed_at":"2023-02-16T14:45:39.937Z","dependency_job_id":null,"html_url":"https://github.com/GlobalMaksimum/sadedegel","commit_stats":{"total_commits":691,"total_committers":13,"mean_commits":53.15384615384615,"dds":0.3675832127351665,"last_synced_commit":"adaa651d45ef74affc1e8f4451427caf2eb41e05"},"previous_names":[],"tags_count":74,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlobalMaksimum%2Fsadedegel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlobalMaksimum%2Fsadedegel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlobalMaksimum%2Fsadedegel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GlobalMaksimum%2Fsadedegel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GlobalMaksimum","download_url":"https://codeload.github.com/GlobalMaksimum/sadedegel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224364374,"owners_count":17299059,"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","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":["acikhack2","ai","artificial-intelligence","bert","binder","corpus","data-science","deep-learning","embeddings","heroku","machine-learning","natural-language-processing","neural-network","neural-networks","news-summarizer","nlp","python"],"created_at":"2024-08-02T18:00:32.484Z","updated_at":"2025-05-03T13:33:24.547Z","avatar_url":"https://github.com/GlobalMaksimum.png","language":"Python","funding_links":[],"categories":["Tools/Libraries","Libraries"],"sub_categories":["Python"],"readme":"\u003ca href=\"http://sadedegel.ai\"\u003e\u003cimg src=\"https://sadedegel.ai/assets/img/logo-2.png\" width=\"125\" height=\"125\" align=\"right\" /\u003e\u003c/a\u003e\n\n# SadedeGel: A General Purpose NLP library for Turkish\n\nSadedeGel is initially designed to be a library for unsupervised extraction-based news summarization using several old and new NLP techniques.\n\nDevelopment of the library started as a part of [Açık Kaynak Hackathon Programı 2020](https://www.acikhack.com/) in which SadedeGel was the **2nd place winner**.\n\nWe are keeping on adding features with the goal of becoming a general purpose open source NLP library for Turkish language.\n\n\n💫 **Version 0.21 out now!**\n[Check out the release notes here.](https://github.com/GlobalMaksimum/sadedegel/releases)\n\n\n![Python package](https://github.com/GlobalMaksimum/sadedegel/workflows/Python%20package/badge.svg)\n[![Python Version](https://img.shields.io/pypi/pyversions/sadedegel?style=plastic)](https://img.shields.io/pypi/pyversions/sadedegel)\n[![Coverage](https://codecov.io/gh/globalmaksimum/sadedegel/branch/master/graphs/badge.svg?style=plastic)](https://codecov.io/gh/globalmaksimum/sadedegel)\n[![pypi Version](https://img.shields.io/pypi/v/sadedegel?style=plastic\u0026logo=PyPI)](https://pypi.org/project/sadedegel/)\n[![PyPi downloads](https://img.shields.io/pypi/dm/sadedegel?style=plastic\u0026logo=PyPI)](https://pypi.org/project/sadedegel/)\n[![License](https://img.shields.io/pypi/l/sadedegel)](https://github.com/GlobalMaksimum/sadedegel/blob/master/LICENSE)\n![Commit Month](https://img.shields.io/github/commit-activity/m/globalmaksimum/sadedegel?style=plastic\u0026logo=GitHub)\n![Commit Week](https://img.shields.io/github/commit-activity/w/globalmaksimum/sadedegel?style=plastic\u0026logo=GitHub)\n![Last Commit](https://img.shields.io/github/last-commit/globalmaksimum/sadedegel?style=plastic\u0026logo=GitHub)\n[![Binder](https://mybinder.org/badge_logo.svg?style=plastic)](https://mybinder.org/v2/gh/GlobalMaksimum/sadedegel.git/master?filepath=notebook%2FBasics.ipynb)\n[![Slack](https://img.shields.io/static/v1?logo=slack\u0026style=plastic\u0026color=blueviolet\u0026label=slack\u0026labelColor=grey\u0026message=sadedegel)](https://join.slack.com/t/sadedegel/shared_invite/zt-h77u6aeq-VzEorB5QLHyJV90Fv4Ky3A)\n[![Kaggle](http://img.shields.io/static/v1?logo=kaggle\u0026style=plastic\u0026color=blue\u0026label=kaggle\u0026labelColor=grey\u0026message=notebooks)](https://www.kaggle.com/search?q=sadedegel+in%3Anotebooks)\n\n\n## 📖 Documentation\n\n| Documentation   |                                                                |\n| --------------- | -------------------------------------------------------------- |\n| [Contribute]    | How to contribute to the sadedeGel project and code base.          |\n\n[contribute]: https://github.com/GlobalMaksimum/sadedegel/blob/master/CONTRIBUTING.md\n\n## 💬 Where to ask questions\n\nThe SadedeGel project is initialized by [@globalmaksimum](https://github.com/GlobalMaksimum) AI team members\n[@dafajon](https://github.com/dafajon),\n[@askarbozcan](https://github.com/askarbozcan),\n[@mccakir](https://github.com/mccakir),\n[@husnusensoy](https://github.com/husnusensoy) and \n[@ertugruldemir](https://github.com/ertugrul-dmr).\n\n\nOther community maintainers\n\n* [@doruktiktiklar](https://github.com/doruktiktiklar) contributes [TFIDF Summarizer](sadedegel/summarize/tf_idf.py)\n\n| Type                     | Platforms                                              |\n| ------------------------ | ------------------------------------------------------ |\n| 🚨 **Bug Reports**       | [GitHub Issue Tracker]                                 |\n| 🎁 **Feature Requests**  | [GitHub Issue Tracker]                                 |\n| \u003cimg width=\"18\" height=\"18\" src=\"https://www.freeiconspng.com/uploads/slack-icon-2.png\"/\u003e **Questions**  | [Slack Workspace]                                 |\n\n[github issue tracker]: https://github.com/GlobalMaksimum/sadedegel/issues\n[Slack Workspace]: https://join.slack.com/t/sadedegel/shared_invite/zt-h77u6aeq-VzEorB5QLHyJV90Fv4Ky3A\n\n\n## Features\n\n* Several datasets\n  * Basic corpus\n      * Raw corpus (`sadedegel.dataset.load_raw_corpus`)\n      * Sentences tokenized corpus (`sadedegel.dataset.load_sentences_corpus`)  \n      * Human annotated summary corpus (`sadedegel.dataset.load_annotated_corpus`)   \n  * [Extended corpus](sadedegel/dataset/README.md)\n      * Raw corpus (`sadedegel.dataset.extended.load_extended_raw_corpus`)\n      * Sentences tokenized corpus (`sadedegel.dataset.extended.load_extended_sents_corpus`)\n      \n  * TsCorpus(`sadedegel.dataset.tscorpus`)\n      * Thanks to [Taner Sezer](https://github.com/tanerim), over 300K documents from tscorpus is also a part of sadedegel. Allowing us to\n        * [Evaluate](sadedegel/bblock/TOKENIZER.md) our tokenizers (word tokenizers)\n        * Build our [prebuilt news category classifier](sadedegel/prebuilt/README.md) \n  * Various domain specific [datasets](https://github.com/GlobalMaksimum/sadedegel/tree/develop/sadedegel/dataset) (e-commerce, social media, tourism etc.) \n* ML based sentence boundary detector (**SBD**) trained for Turkish language\n* Sadedegel Extractive Summarizers\n  * Various baseline summarizers\n    * Position Summarizer\n    * Length Summarizer\n    * Band Summarizer\n    * Random Summarizer\n  \n  * Various unsupervised/supervised summarizers\n    * ROUGE1 Summarizer\n    * TextRank Summarizer\n    * Cluster Summarizer\n    * Lexrank Summarizer\n    * BM25 Summarizer\n    * TfIdf Summarizer\n \n* Various Word Tokenizers\n  * BERT Tokenizer - Trained tokenizer (`pip install sadedegel[bert]`)\n  * Simple Tokenizer - Regex Based\n  * IcU Tokenizer (default by `0.19`)\n  \n* Various Sparse and Dense Embeddings implemented for `Sentences` and `Document` objects.\n  * BERT Embeddings (`pip install sadedegel[bert]`)\n  * TfIdf Embeddings\n \n* Word Vectors for your tokens (`pip install sadedegel[w2v]`)\n\n* A `sklearn` compatible [Feature Extraction API](https://github.com/GlobalMaksimum/sadedegel/tree/develop/sadedegel/extension) \n  \n* Word Vectors for your tokens (`pip install sadedegel[w2v]`)\n\n* A `sklearn` compatible [Feature Extraction API](https://github.com/GlobalMaksimum/sadedegel/tree/develop/sadedegel/extension)\n  \n* [**Experimental**] Prebuilt models for several common NLP tasks ([`sadedegel.prebuilt`](sadedegel/prebuilt/README.md)).\n\n```python\nfrom sadedegel.prebuilt import news_classification\n\nmodel = news_classification.load()\n\ndoc_str = (\"Bilişim sektörü, günlük devrimlerin yaşandığı ve hızına yetişilemeyen dev bir alan haline geleli uzun bir zaman olmadı. Günümüz bilgisayarlarının tarihi, yarım asırı yeni tamamlarken; yaşanan gelişmeler çok \"\n\"daha büyük ölçekte. Türkiye de bu gelişmelere 1960 yılında Karayolları Umum Müdürlüğü (şimdiki Karayolları Genel Müdürlüğü) için IBM’den satın aldığı ilk bilgisayarıyla dahil oldu. IBM 650 Model I adını taşıyan bilgisayarın \"\n\"satın alınma amacı ise yol yapımında gereken hesaplamaların daha hızlı yapılmasıydı. Türkiye’nin ilk bilgisayar destekli karayolu olan 63 km uzunluğundaki Polatlı - Sivrihisar yolu için yapılan hesaplamalar IBM 650 ile 1 saatte yapıldı. \"\n\"Daha öncesinde 3 - 4 ayı bulan hesaplamaların 1 saate inmesi; teknolojinin, ekonomik ve toplumsal dönüşüme büyük etkide bulunacağının habercisiydi.\")\n\ny_pred = model.predict([doc_str])\n```\n\n📖 **For more details, refer to [sadedegel.ai](http://sadedegel.ai)**\n\n## Install sadedeGel\n\n- **Operating system**: macOS / OS X · Linux · Windows (Cygwin, MinGW, Visual\n  Studio)\n- **Python version**: 3.6+ (only 64 bit)\n- **Package managers**: [pip] \n\n[pip]: https://pypi.org/project/sadedegel/\n\n### pip\n\nUsing pip, sadedeGel releases are available as source packages and binary wheels.\n\n```bash\npip install sadedegel\n```\nor update now\n\n```bash\npip install sadedegel -U\n```\n\nWhen using pip it is generally recommended to install packages in a virtual\nenvironment to avoid modifying system state:\n\n```bash\npython -m venv .env\nsource .env/bin/activate\npip install sadedegel\n```\n\n#### Vocabulary Dump\n\nCertaing attributes of SadedeGel's NLP objects are dependent on shipped vocabulary dumps that are created over `sadedegel.dataset.extened_corpus` via each of the existing SadedeGel tokenizers. Those tokenizers are listed above. If you want to re-train a specific tokenizer's vocabulary with custom settings:\n\n```bash\npython -m sadedegel.bblock.cli build-vocabulary -t [bert|icu|simple] \n```\n\nThis will create a vocabulary dump using `sadedegel.dataset.extended_corpus` based on custom user settings.\n\nFor all options to customize your vocab dump refer to:\n\n```bash\npython -m sadedegel.bblock.cli build-vocabulary --help \n```\n\n#### Optional\n\nTo keep core sadedegel as light as possible we decomposed our initial monolitic design.\n\nTo enable BERT embeddings and related capabilities use\n\n```bash\npip install sadedegel[bert]\n```\n\nWe ship 100-dimension word vectors with the library. If you need to re-train those word embeddings you can use\n\n```bash\npython -m sadedegel.bblock.cli build-vocabulary -t [bert|icu|simple] --w2v\n```\n`--w2v` option requires `w2v` option to be installed. To install option use\n\nThis will create a vocabulary dump with keyed vectors of arbitrary size using `sadedegel.dataset.extended_corpus` based on custom user settings.\n\n\n```bash\npip install sadedegel[w2v]\n```\n\n### Quickstart with SadedeGel\n\nTo load SadedeGel, use `sadedegel.load()`\n\n```python\nfrom sadedegel import Doc\nfrom sadedegel.dataset import load_raw_corpus\nfrom sadedegel.summarize import Rouge1Summarizer\n\nraw = load_raw_corpus()\n\nd = Doc(next(raw))\n\nsummarizer = Rouge1Summarizer()\nsummarizer(d, k=5)\n```\n\nTo trigger sadedeGel NLP pipeline, initialize `Doc` instance with a document string.\n\nAccess all sentences using Python built-in `list` function.\n\n```python\nfrom sadedegel import Doc\n\ndoc_str = (\"Bilişim sektörü, günlük devrimlerin yaşandığı ve hızına yetişilemeyen dev bir alan haline geleli uzun bir zaman olmadı. Günümüz bilgisayarlarının tarihi, yarım asırı yeni tamamlarken; yaşanan gelişmeler çok \"\n\"daha büyük ölçekte. Türkiye de bu gelişmelere 1960 yılında Karayolları Umum Müdürlüğü (şimdiki Karayolları Genel Müdürlüğü) için IBM’den satın aldığı ilk bilgisayarıyla dahil oldu. IBM 650 Model I adını taşıyan bilgisayarın \"\n\"satın alınma amacı ise yol yapımında gereken hesaplamaların daha hızlı yapılmasıydı. Türkiye’nin ilk bilgisayar destekli karayolu olan 63 km uzunluğundaki Polatlı - Sivrihisar yolu için yapılan hesaplamalar IBM 650 ile 1 saatte yapıldı. \"\n\"Daha öncesinde 3 - 4 ayı bulan hesaplamaların 1 saate inmesi; teknolojinin, ekonomik ve toplumsal dönüşüme büyük etkide bulunacağının habercisiydi.\")\n\ndoc = Doc(doc_str)\n\nlist(doc)\n```\n```python\n['Bilişim sektörü, günlük devrimlerin yaşandığı ve hızına yetişilemeyen dev bir alan haline geleli uzun bir zaman olmadı.',\n 'Günümüz bilgisayarlarının tarihi, yarım asırı yeni tamamlarken; yaşanan gelişmeler çok daha büyük ölçekte.',\n 'Türkiye de bu gelişmelere 1960 yılında Karayolları Umum Müdürlüğü (şimdiki Karayolları Genel Müdürlüğü) için IBM’den satın aldığı ilk bilgisayarıyla dahil oldu.',\n 'IBM 650 Model I adını taşıyan bilgisayarın satın alınma amacı ise yol yapımında gereken hesaplamaların daha hızlı yapılmasıydı.',\n 'Türkiye’nin ilk bilgisayar destekli karayolu olan 63 km uzunluğundaki Polatlı - Sivrihisar yolu için yapılan hesaplamalar IBM 650 ile 1 saatte yapıldı.',\n 'Daha öncesinde 3 - 4 ayı bulan hesaplamaların 1 saate inmesi; teknolojinin, ekonomik ve toplumsal dönüşüme büyük etkide bulunacağının habercisiydi.']\n```\n\nAccess sentences by index.\n\n```python\ndoc[2]\n```\n\n```python\nTürkiye de bu gelişmelere 1960 yılında Karayolları Umum Müdürlüğü (şimdiki Karayolları Genel Müdürlüğü) için IBM’den satın aldığı ilk bilgisayarıyla dahil oldu.\n```\n\n## SadedeGel Server\nIn order to integrate with your applications we provide a quick summarizer server with sadedeGel.\n\n```bash\npython3 -m sadedegel.server \n```\n\n### SadedeGel Server on Heroku\n[SadedeGel Server](https://sadedegel.herokuapp.com/api/info) is hosted on free tier of [Heroku](https://heroku.com) cloud services.\n\n* [OpenAPI Documentation](https://sadedegel.herokuapp.com/docs)\n* [Redoc Documentation](https://sadedegel.herokuapp.com/redoc)\n* [Redirection to sadedegel.ai](https://sadedegel.herokuapp.com)\n\n## PyLint, Flake8 and Bandit\nsadedeGel utilized [pylint](https://www.pylint.org/) for static code analysis, \n[flake8](https://flake8.pycqa.org/en/latest) for code styling and [bandit](https://pypi.org/project/bandit) \nfor code security check.\n\nTo run all tests\n\n```bash\nmake lint\n```\n\n## Run tests\n\nsadedeGel comes with an [extensive test suite](sadedegel/tests). In order to run the\ntests, you'll usually want to clone the repository and build sadedeGel from source.\nThis will also install the required development dependencies and test utilities\ndefined in the `requirements.txt`.\n\nAlternatively, you can find out where sadedeGel is installed and run `pytest` on\nthat directory. Don't forget to also install the test utilities via sadedeGel's\n`requirements.txt`:\n\n```bash\nmake test\n```\n\n## 📓 Kaggle\n\n* Check [comprehensive notebook](https://www.kaggle.com/datafan07/clickbait-news-classification-using-sadedegel) of Kaggle Master [Ertugrul Demir](https://www.kaggle.com/datafan07) explaining the capabilities of sadedegel on Turkish clickbate dataset\n\n\n## Youtube Channel\nSome videos from [sadedeGel YouTube Channel](https://www.youtube.com/channel/UCyNG1Mehl44XWZ8LzkColuw)\n\n### SkyLab YTU Webinar Playlist\n\n[![Youtube](https://img.shields.io/youtube/likes/xoEERspk6Is?label=SadedeGel%20Subprojects%20(Turkish)\u0026style=social\u0026withDislikes)](https://www.youtube.com/watch?v=xoEERspk6Is)\n\n[![Youtube](https://img.shields.io/youtube/likes/HfWIzAwf5u8?label=SadedeGel%20Scraper%20(Turkish)\u0026style=social\u0026withDislikes)](https://www.youtube.com/watch?v=HfWIzAwf5u8)\n\n[![Youtube](https://img.shields.io/youtube/likes/PkUmYhahiMw?label=SadedeGel%20Evaluation-nDCG%20(Turkish)\u0026style=social\u0026withDislikes)](https://www.youtube.com/watch?v=PkUmYhahiMw)\n\n[![Youtube](https://img.shields.io/youtube/likes/AxpK7fOndRQ?label=SadedeGel%20Annotator%20(Turkish)\u0026style=social\u0026withDislikes)](https://www.youtube.com/watch?v=AxpK7fOndRQ)\n\n[![Youtube](https://img.shields.io/youtube/likes/jKh_t9ZOJ-g?label=SadedeGel%20Baseline%20Özetleyiciler%20(Turkish)\u0026style=social\u0026withDislikes)](https://www.youtube.com/watch?v=jKh_t9ZOJ-g)\n\n[![Youtube](https://img.shields.io/youtube/likes/3DO1X7de1FI?label=SadedeGel%20ROUGE1%20Özetleyici%20(Turkish)\u0026style=social\u0026withDislikes)](https://www.youtube.com/watch?v=3DO1X7de1FI)\n\n[![Youtube](https://img.shields.io/youtube/likes/KGg3DJQVH9c?label=SadedeGel%20Kümeleme%20Bazlı%20Özetleyiciler%20(Turkish)\u0026style=social\u0026withDislikes)](https://www.youtube.com/watch?v=KGg3DJQVH9c)\n\n[![Youtube](https://img.shields.io/youtube/likes/G_erifsGGFs?label=SadedeGel%20BERT%20Embeddings%20(Turkish)\u0026style=social\u0026withDislikes)](https://www.youtube.com/watch?v=G_erifsGGFs)\n\n## References\n\n### Special Thanks\n\n* [Starlang Software](https://starlangyazilim.com/) for their contribution to open source Turkish NLP development and corpus preperation.\n\n* [Olcay Taner Yıldız, Ph.D.](https://github.com/olcaytaner), one of our refrees in [Açık Kaynak Hackathon Programı 2020](https://www.acikhack.com/), for helping our development on sadedegel.\n\n* [Taner Sezer](https://github.com/tanerim) for his contribution on tokenization corpus and labeled news corpus.\n\n### Our Community Contributors\n\nWe would like to thank our community contributors for their bug/enhancement requests and questions to make sadedeGel better everyday\n\n* [Burak Işıklı](https://github.com/burakisikli)\n\n### Software Engineering\n* Special thanks to [spaCy](https://github.com/explosion/spaCy) project for their work in showing us the way to implement a proper python module rather than merely explaining it.\n    * We have borrowed many document and style related stuff from their code base :smile:\n    \n* There are a few free-tier service providers we need to thank:\n  * [GitHub](https://github.com) for\n      * Hosting our projects.\n      * Making it possible to collobrate easily.\n      * Automating our SLM via [Github Actions](https://github.com/features/actions)\n  * [Google Cloud Google Storage Service](https://cloud.google.com/products/storage) for providing low cost storage buckets making it possible to store `sadedegel.dataset.extended` data.\n  * [Heroku](https://heroku.com) for hosting [sadedeGel Server](https://sadedegel.herokuapp.com/api/info) in their free tier dynos.\n  * [CodeCov](https://codecov.io/) for allowing us to transparently share our [test coverage](https://codecov.io/gh/globalmaksimum/sadedegel)\n  * [PyPI](https://pypi.org/) for allowing us to share [sadedegel](https://pypi.org/project/sadedegel) with you.\n  * [binder](https://mybinder.org/) for \n     * Allowing us to share our example [notebooks](notebook/)\n     * Hosting our learn by example boxes in [sadedegel.ai](http://sadedegel.ai) \n    \n### Machine Learning (ML), Deep Learning (DL) and Natural Language Processing (NLP)\n* Resources on Extractive Text Summarization:\n\n    * [Leveraging BERT for Extractive Text Summarization on Lectures](https://arxiv.org/abs/1906.04165)  by Derek Miller\n    * [Fine-tune BERT for Extractive Summarization](https://arxiv.org/pdf/1903.10318.pdf) by Yang Liu\n\n* Other NLP related references\n\n    * [ROUGE: A Package for Automatic Evaluation of Summaries](https://www.aclweb.org/anthology/W04-1013.pdf)\n    * [Speech and Language Processing, Second Edition](https://web.stanford.edu/~jurafsky/slp3/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGlobalMaksimum%2Fsadedegel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGlobalMaksimum%2Fsadedegel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGlobalMaksimum%2Fsadedegel/lists"}