Package: sadedegel
SadedeGel: A General Purpose NLP library for TurkishSadedeGel is initially designed to be a library for unsupervised extraction-based news summarization using several old and new NLP techniques.Development of the library started as a part ofAçık Kaynak Hackathon Programı 2020in which SadedeGel was the2nd place winner.We are keeping on adding features with the goal of becoming a general purpose open source NLP library for Turkish language.💫Version 0.21 out now!Check out the release notes here.📖 DocumentationDocumentationContributeHow to contribute to the sadedeGel project and code base.💬 Where to ask questionsThe SadedeGel project is initialized by@globalmaksimumAI team members@dafajon,@askarbozcan,@mccakir,@husnusensoyand@ertugruldemir.Other community maintainers@doruktiktiklarcontributesTFIDF SummarizerTypePlatforms🚨Bug ReportsGitHub Issue Tracker🎁Feature RequestsGitHub Issue TrackerQuestionsSlack WorkspaceFeaturesSeveral datasetsBasic corpusRaw corpus (sadedegel.dataset.load_raw_corpus)Sentences tokenized corpus (sadedegel.dataset.load_sentences_corpus)Human annotated summary corpus (sadedegel.dataset.load_annotated_corpus)Extended corpusRaw corpus (sadedegel.dataset.extended.load_extended_raw_corpus)Sentences tokenized corpus (sadedegel.dataset.extended.load_extended_sents_corpus)TsCorpus(sadedegel.dataset.tscorpus)Thanks toTaner Sezer, over 300K documents from tscorpus is also a part of sadedegel. Allowing us toEvaluateour tokenizers (word tokenizers)Build ourprebuilt news category classifierVarious domain specificdatasets(e-commerce, social media, tourism etc.)ML based sentence boundary detector (SBD) trained for Turkish languageSadedegel Extractive SummarizersVarious baseline summarizersPosition SummarizerLength SummarizerBand SummarizerRandom SummarizerVarious unsupervised/supervised summarizersROUGE1 SummarizerTextRank SummarizerCluster SummarizerLexrank SummarizerBM25 SummarizerTfIdf SummarizerVarious Word TokenizersBERT Tokenizer - Trained tokenizer (pip install sadedegel[bert])Simple Tokenizer - Regex BasedIcU Tokenizer (default by0.19)Various Sparse and Dense Embeddings implemented forSentencesandDocumentobjects.BERT Embeddings (pip install sadedegel[bert])TfIdf EmbeddingsWord Vectors for your tokens (pip install sadedegel[w2v])AsklearncompatibleFeature Extraction APIWord Vectors for your tokens (pip install sadedegel[w2v])AsklearncompatibleFeature Extraction API[Experimental] Prebuilt models for several common NLP tasks (sadedegel.prebuilt).fromsadedegel.prebuiltimportnews_classificationmodel=news_classification.load()doc_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 ""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 ""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ı. ""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.")y_pred=model.predict([doc_str])📖For more details, refer tosadedegel.aiInstall sadedeGelOperating system: macOS / OS X · Linux · Windows (Cygwin, MinGW, Visual
Studio)Python version: 3.6+ (only 64 bit)Package managers:pippipUsing pip, sadedeGel releases are available as source packages and binary wheels.pipinstallsadedegelor update nowpipinstallsadedegel-UWhen using pip it is generally recommended to install packages in a virtual
environment to avoid modifying system state:python-mvenv.envsource.env/bin/activate
pipinstallsadedegelVocabulary DumpCertaing attributes of SadedeGel's NLP objects are dependent on shipped vocabulary dumps that are created oversadedegel.dataset.extened_corpusvia 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:python-msadedegel.bblock.clibuild-vocabulary-t[bert|icu|simple]This will create a vocabulary dump usingsadedegel.dataset.extended_corpusbased on custom user settings.For all options to customize your vocab dump refer to:python-msadedegel.bblock.clibuild-vocabulary--helpOptionalTo keep core sadedegel as light as possible we decomposed our initial monolitic design.To enable BERT embeddings and related capabilities usepipinstallsadedegel[bert]We ship 100-dimension word vectors with the library. If you need to re-train those word embeddings you can usepython-msadedegel.bblock.clibuild-vocabulary-t[bert|icu|simple]--w2v--w2voption requiresw2voption to be installed. To install option useThis will create a vocabulary dump with keyed vectors of arbitrary size usingsadedegel.dataset.extended_corpusbased on custom user settings.pipinstallsadedegel[w2v]Quickstart with SadedeGelTo load SadedeGel, usesadedegel.load()fromsadedegelimportDocfromsadedegel.datasetimportload_raw_corpusfromsadedegel.summarizeimportRouge1Summarizerraw=load_raw_corpus()d=Doc(next(raw))summarizer=Rouge1Summarizer()summarizer(d,k=5)To trigger sadedeGel NLP pipeline, initializeDocinstance with a document string.Access all sentences using Python built-inlistfunction.fromsadedegelimportDocdoc_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 ""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 ""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ı. ""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.")doc=Doc(doc_str)list(doc)['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 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 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ı.','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.']Access sentences by index.doc[2]Türkiyedebugelişmelere1960yılındaKarayollarıUmumMüdürlüğü(şimdikiKarayollarıGenelMüdürlüğü)içinIBM’densatınaldığıilkbilgisayarıyladahiloldu.SadedeGel ServerIn order to integrate with your applications we provide a quick summarizer server with sadedeGel.python3-msadedegel.serverSadedeGel Server on HerokuSadedeGel Serveris hosted on free tier ofHerokucloud services.OpenAPI DocumentationRedoc DocumentationRedirection to sadedegel.aiPyLint, Flake8 and BanditsadedeGel utilizedpylintfor static code analysis,flake8for code styling andbanditfor code security check.To run all testsmakelintRun testssadedeGel comes with anextensive test suite. In order to run the
tests, you'll usually want to clone the repository and build sadedeGel from source.
This will also install the required development dependencies and test utilities
defined in therequirements.txt.Alternatively, you can find out where sadedeGel is installed and runpyteston
that directory. Don't forget to also install the test utilities via sadedeGel'srequirements.txt:maketest📓 KaggleCheckcomprehensive notebookof Kaggle MasterErtugrul Demirexplaining the capabilities of sadedegel on Turkish clickbate datasetYoutube ChannelSome videos fromsadedeGel YouTube ChannelSkyLab YTU Webinar PlaylistReferencesSpecial ThanksStarlang Softwarefor their contribution to open source Turkish NLP development and corpus preperation.Olcay Taner Yıldız, Ph.D., one of our refrees inAçık Kaynak Hackathon Programı 2020, for helping our development on sadedegel.Taner Sezerfor his contribution on tokenization corpus and labeled news corpus.Our Community ContributorsWe would like to thank our community contributors for their bug/enhancement requests and questions to make sadedeGel better everydayBurak IşıklıSoftware EngineeringSpecial thanks tospaCyproject for their work in showing us the way to implement a proper python module rather than merely explaining it.We have borrowed many document and style related stuff from their code base :smile:There are a few free-tier service providers we need to thank:GitHubforHosting our projects.Making it possible to collobrate easily.Automating our SLM viaGithub ActionsGoogle Cloud Google Storage Servicefor providing low cost storage buckets making it possible to storesadedegel.dataset.extendeddata.Herokufor hostingsadedeGel Serverin their free tier dynos.CodeCovfor allowing us to transparently share ourtest coveragePyPIfor allowing us to sharesadedegelwith you.binderforAllowing us to share our examplenotebooksHosting our learn by example boxes insadedegel.aiMachine Learning (ML), Deep Learning (DL) and Natural Language Processing (NLP)Resources on Extractive Text Summarization:Leveraging BERT for Extractive Text Summarization on Lecturesby Derek MillerFine-tune BERT for Extractive Summarizationby Yang LiuOther NLP related referencesROUGE: A Package for Automatic Evaluation of SummariesSpeech and Language Processing, Second Edition