"slogan":"Use DBpedia Spotlight to link entities inside SpaCy",
"description":"This library links SpaCy with [DBpedia Spotlight](https://www.dbpedia-spotlight.org/). You can easily get the DBpedia entities from your documents, using the public web service or by using your own instance of DBpedia Spotlight. The `doc.ents` are populated with the entities and all their details (URI, type, ...).",
"github":"MartinoMensio/spacy-dbpedia-spotlight",
"pip":"spacy-dbpedia-spotlight",
"code_example":[
"import spacy_dbpedia_spotlight",
"# load your model as usual",
"nlp = spacy.load('en_core_web_lg')",
"# add the pipeline stage",
"nlp.add_pipe('dbpedia_spotlight')",
"# get the document",
"doc = nlp('The president of USA is calling Boris Johnson to decide what to do about coronavirus')",
"# see the entities",
"print('Entities', [(ent.text, ent.label_, ent.kb_id_) for ent in doc.ents])",
"slogan":"Easy sentiment analysis for spaCy using TextBlob",
"description":"spaCyTextBlob is a pipeline component that enables sentiment analysis using the [TextBlob](https://github.com/sloria/TextBlob) library. It will add the additional extenstion `._.sentiment` to `Doc`, `Span`, and `Token` objects.",
"slogan":"Parallel and distributed training with spaCy and Ray",
"description":"[Ray](https://ray.io/) is a fast and simple framework for building and running **distributed applications**. This very lightweight extension package lets you use Ray for parallel and distributed training with spaCy. If `spacy-ray` is installed in the same environment as spaCy, it will automatically add `spacy ray` commands to your spaCy CLI.",
"description":"This library lets you use the embeddings from [sentence-transformers](https://github.com/UKPLab/sentence-transformers) of Docs, Spans and Tokens directly from spaCy. Most models are for the english language but three of them are multilingual.",
"github":"MartinoMensio/spacy-sentence-bert",
"pip":"spacy-sentence-bert",
"code_example":[
"import spacy_sentence_bert",
"# load one of the models listed at https://github.com/MartinoMensio/spacy-sentence-bert/",
"slogan":"spaCy building blocks for Streamlit apps",
"github":"explosion/spacy-streamlit",
"description":"This package contains utilities for visualizing spaCy models and building interactive spaCy-powered apps with [Streamlit](https://streamlit.io). It includes various building blocks you can use in your own Streamlit app, like visualizers for **syntactic dependencies**, **named entities**, **text classification**, **semantic similarity** via word vectors, token attributes, and more.",
"description":"Spaczz provides fuzzy matching and multi-token regex matching functionality for spaCy. Spaczz's components have similar APIs to their spaCy counterparts and spaczz pipeline components can integrate into spaCy pipelines where they can be saved/loaded as models.",
"slogan":"Make interactive visualisations to figure out 'what lies' in word embeddings.",
"description":"This small library offers tools to make visualisation easier of both word embeddings as well as operations on them. It has support for spaCy prebuilt models as a first class citizen but also offers support for sense2vec. There's a convenient API to perform linear algebra as well as support for popular transformations like PCA/UMAP/etc.",
"slogan":"Use the latest Stanza (StanfordNLP) research models directly in spaCy",
"description":"This package wraps the Stanza (formerly StanfordNLP) library, so you can use Stanford's models as a spaCy pipeline. Using this wrapper, you'll be able to use the following annotations, computed by your pretrained `stanza` model:\n\n- Statistical tokenization (reflected in the `Doc` and its tokens)\n - Lemmatization (`token.lemma` and `token.lemma_`)\n - Part-of-speech tagging (`token.tag`, `token.tag_`, `token.pos`, `token.pos_`)\n - Dependency parsing (`token.dep`, `token.dep_`, `token.head`)\n - Named entity recognition (`doc.ents`, `token.ent_type`, `token.ent_type_`, `token.ent_iob`, `token.ent_iob_`)\n - Sentence segmentation (`doc.sents`)",
"slogan":"\uD83E\uDD9C Containerized HTTP API for spaCy NLP",
"description":"For developers who need programming language agnostic NLP, spaCy Server is a containerized HTTP API that provides industrial-strength natural language processing. Unlike other servers, our server is fast, idiomatic, and well documented.",
"github":"neelkamath/spacy-server",
"code_example":[
"docker run --rm -dp 8080:8080 neelkamath/spacy-server",
"curl http://localhost:8080/ner -H 'Content-Type: application/json' -d '{\"sections\": [\"My name is John Doe. I grew up in California.\"]}'"
"slogan":"Emoji handling and meta data as a spaCy pipeline component",
"github":"ines/spacymoji",
"description":"spaCy v2.0 extension and pipeline component for adding emoji meta data to `Doc` objects. Detects emoji consisting of one or more unicode characters, and can optionally merge multi-char emoji (combined pictures, emoji with skin tone modifiers) into one token. Human-readable emoji descriptions are added as a custom attribute, and an optional lookup table can be provided for your own descriptions. The extension sets the custom `Doc`, `Token` and `Span` attributes `._.is_emoji`, `._.emoji_desc`, `._.has_emoji` and `._.emoji`.",
"slogan":"Add spellchecking and spelling suggestions to your spaCy pipeline using Hunspell",
"description":"This package uses the [spaCy 2.0 extensions](https://spacy.io/usage/processing-pipelines#extensions) to add [Hunspell](http://hunspell.github.io) support for spellchecking.",
"slogan":"Language Tool style grammar handling with spaCy",
"description":"This packages leverages the [Matcher API](https://spacy.io/docs/usage/rule-based-matching) in spaCy to quickly match on spaCy tokens not dissimilar to regex. It reads a `grammar.yml` file to load up custom patterns and returns the results inside `Doc`, `Span`, and `Token`. It is extensible through adding rules to `grammar.yml` (though currently only the simple string matching is implemented).",
"github":"tokestermw/spacy_grammar",
"code_example":[
"import spacy",
"from spacy_grammar.grammar import Grammar",
"",
"nlp = spacy.load('en')",
"grammar = Grammar(nlp)",
"nlp.add_pipe(grammar)",
"doc = nlp('I can haz cheeseburger.')",
"doc._.has_grammar_error # True"
],
"author":"Motoki Wu",
"author_links":{
"github":"tokestermw",
"twitter":"plusepsilon"
},
"category":["pipeline"]
},
{
"id":"spacy_kenlm",
"slogan":"KenLM extension for spaCy 2.0",
"github":"tokestermw/spacy_kenlm",
"pip":"spacy_kenlm",
"code_example":[
"import spacy",
"from spacy_kenlm import spaCyKenLM",
"",
"nlp = spacy.load('en_core_web_sm')",
"spacy_kenlm = spaCyKenLM() # default model from test.arpa",
"nlp.add_pipe(spacy_kenlm)",
"doc = nlp('How are you?')",
"doc._.kenlm_score # doc score",
"doc[:2]._.kenlm_score # span score",
"doc[2]._.kenlm_score # token score"
],
"author":"Motoki Wu",
"author_links":{
"github":"tokestermw",
"twitter":"plusepsilon"
},
"category":["pipeline"]
},
{
"id":"spacy_readability",
"slogan":"Add text readability meta data to Doc objects",
"description":"spaCy v2.0 pipeline component for calculating readability scores of of text. Provides scores for Flesh-Kincaid grade level, Flesh-Kincaid reading ease, and Dale-Chall.",
"github":"mholtzscher/spacy_readability",
"pip":"spacy-readability",
"code_example":[
"import spacy",
"from spacy_readability import Readability",
"",
"nlp = spacy.load('en')",
"read = Readability(nlp)",
"nlp.add_pipe(read, last=True)",
"doc = nlp(\"I am some really difficult text to read because I use obnoxiously large words.\")",
"doc._.flesch_kincaid_grade_level",
"doc._.flesch_kincaid_reading_ease",
"doc._.dale_chall"
],
"author":"Michael Holtzscher",
"author_links":{
"github":"mholtzscher"
},
"category":["pipeline"]
},
{
"id":"spacy-sentence-segmenter",
"title":"Sentence Segmenter",
"slogan":"Custom sentence segmentation for spaCy",
"slogan":"Add language detection to your spaCy pipeline using CLD2",
"description":"spaCy-CLD operates on `Doc` and `Span` spaCy objects. When called on a `Doc` or `Span`, the object is given two attributes: `languages` (a list of up to 3 language codes) and `language_scores` (a dictionary mapping language codes to confidence scores between 0 and 1).\n\nspacy-cld is a little extension that wraps the [PYCLD2](https://github.com/aboSamoor/pycld2) Python library, which in turn wraps the [Compact Language Detector 2](https://github.com/CLD2Owners/cld2) C library originally built at Google for the Chromium project. CLD2 uses character n-grams as features and a Naive Bayes classifier to identify 80+ languages from Unicode text strings (or XML/HTML). It can detect up to 3 different languages in a given document, and reports a confidence score (reported in with each language.",
"github":"nickdavidhaynes/spacy-cld",
"pip":"spacy_cld",
"code_example":[
"import spacy",
"from spacy_cld import LanguageDetector",
"",
"nlp = spacy.load('en')",
"language_detector = LanguageDetector()",
"nlp.add_pipe(language_detector)",
"doc = nlp('This is some English text.')",
"",
"doc._.languages # ['en']",
"doc._.language_scores['en'] # 0.96"
],
"author":"Nicholas D Haynes",
"author_links":{
"github":"nickdavidhaynes"
},
"category":["pipeline"]
},
{
"id":"spacy-lookup",
"slogan":"A powerful entity matcher for very large dictionaries, using the FlashText module",
"description":"spaCy v2.0 extension and pipeline component for adding Named Entities metadata to `Doc` objects. Detects Named Entities using dictionaries. The extension sets the custom `Doc`, `Token` and `Span` attributes `._.is_entity`, `._.entity_type`, `._.has_entities` and `._.entities`. Named Entities are matched using the python module `flashtext`, and looked up in the data provided by different dictionaries.",
"description":"This package uses the [spaCy 2.0 extensions](https://spacy.io/usage/processing-pipelines#extensions) to add [IWNLP-py](https://github.com/Liebeck/iwnlp-py) as German lemmatizer directly into your spaCy pipeline.",
"description":"This package uses the [spaCy 2.0 extensions](https://spacy.io/usage/processing-pipelines#extensions) to add [SentiWS](http://wortschatz.uni-leipzig.de/en/download) as German sentiment score directly into your spaCy pipeline.",
"slogan":"POS and French lemmatization with Lefff",
"description":"spacy v2.0 extension and pipeline component for adding a French POS and lemmatizer based on [Lefff](https://hal.inria.fr/inria-00521242/).",
"description":"Lemmy is a lemmatizer for Danish 🇩🇰 . It comes already trained on Dansk Sprognævns (DSN) word list (‘fuldformliste’) and the Danish Universal Dependencies and is ready for use. Lemmy also supports training on your own dataset. The model currently included in Lemmy was evaluated on the Danish Universal Dependencies dev dataset and scored an accruacy > 99%.\n\nYou can use Lemmy as a spaCy extension, more specifcally a spaCy pipeline component. This is highly recommended and makes the lemmas easily accessible from the spaCy tokens. Lemmy makes use of POS tags to predict the lemmas. When wired up to the spaCy pipeline, Lemmy has the benefit of using spaCy’s builtin POS tagger.",
"github":"sorenlind/lemmy",
"pip":"lemmy",
"code_example":[
"import da_custom_model as da # name of your spaCy model",
"import lemmy.pipe",
"nlp = da.load()",
"",
"# create an instance of Lemmy's pipeline component for spaCy",
"pipe = lemmy.pipe.load()",
"",
"# add the comonent to the spaCy pipeline.",
"nlp.add_pipe(pipe, after='tagger')",
"",
"# lemmas can now be accessed using the `._.lemma` attribute on the tokens",
"nlp(\"akvariernes\")[0]._.lemma"
],
"thumb":"https://i.imgur.com/RJVFRWm.jpg",
"author":"Søren Lind Kristiansen",
"author_links":{
"github":"sorenlind"
},
"category":["pipeline"],
"tags":["lemmatizer","danish"]
},
{
"id":"wmd-relax",
"slogan":"Calculates word mover's distance insanely fast",
"description":"Calculates Word Mover's Distance as described in [From Word Embeddings To Document Distances](http://www.cs.cornell.edu/~kilian/papers/wmd_metric.pdf) by Matt Kusner, Yu Sun, Nicholas Kolkin and Kilian Weinberger.\n\n⚠️ **This package is currently only compatible with spaCy v.1x.**",
"description":"This coreference resolution module is based on the super fast [spaCy](https://spacy.io/) parser and uses the neural net scoring model described in [Deep Reinforcement Learning for Mention-Ranking Coreference Models](http://cs.stanford.edu/people/kevclark/resources/clark-manning-emnlp2016-deep.pdf) by Kevin Clark and Christopher D. Manning, EMNLP 2016. Since ✨Neuralcoref v2.0, you can train the coreference resolution system on your own dataset—e.g., another language than English! — **provided you have an annotated dataset**. Note that to use neuralcoref with spaCy > 2.1.0, you'll have to install neuralcoref from source.",
"slogan":"State-of-the-art coreference resolution based on neural nets and spaCy",
"description":"In short, coreference is the fact that two or more expressions in a text – like pronouns or nouns – link to the same person or thing. It is a classical Natural language processing task, that has seen a revival of interest in the past two years as several research groups applied cutting-edge deep-learning and reinforcement-learning techniques to it. It is also one of the key building blocks to building conversational Artificial intelligences.",
"url":"https://huggingface.co/coref/",
"image":"https://i.imgur.com/3yy4Qyf.png",
"thumb":"https://i.imgur.com/j6FO9O6.jpg",
"github":"huggingface/neuralcoref",
"category":["visualizers","conversational"],
"tags":["coref","chatbots"],
"author":"Hugging Face",
"author_links":{
"github":"huggingface"
}
},
{
"id":"spacy-vis",
"slogan":"A visualisation tool for spaCy using Hierplane",
"description":"A visualiser for spaCy annotations. This visualisation uses the [Hierplane](https://allenai.github.io/hierplane/) Library to render the dependency parse from spaCy's models. It also includes visualisation of entities and POS tags within nodes.",
"description":"Test spaCy's rule-based `Matcher` by creating token patterns interactively and running them over your text. Each token can set multiple attributes like text value, part-of-speech tag or boolean flags. The token-based view lets you explore how spaCy processes your text – and why your pattern matches, or why it doesn't. For more details on rule-based matching, see the [documentation](https://spacy.io/usage/rule-based-matching).",
"slogan":"A modern syntactic dependency visualizer",
"description":"Visualize spaCy's guess at the syntactic structure of a sentence. Arrows point from children to heads, and are labelled by their relation type.",
"description":"Visualize spaCy's guess at the named entities in the document. You can filter the displayed types, to only show the annotations you're interested in.",
"slogan":"Beautiful visualizations of how language differs among document types",
"description":"A tool for finding distinguishing terms in small-to-medium-sized corpora, and presenting them in a sexy, interactive scatter plot with non-overlapping term labels. Exploratory data analysis just got more fun.",
"slogan":"Conversational AI platform for deep-domain voice interfaces and chatbots",
"description":"The MindMeld Conversational AI platform is among the most advanced AI platforms for building production-quality conversational applications. It is a Python-based machine learning framework which encompasses all of the algorithms and utilities required for this purpose. (https://github.com/cisco/mindmeld)",
"slogan":"An open-source NLP research library, built on PyTorch and spaCy",
"description":"AllenNLP is a new library designed to accelerate NLP research, by providing a framework that supports modern deep learning workflows for cutting-edge language understanding problems. AllenNLP uses spaCy as a preprocessing component. You can also use Allen NLP to develop spaCy pipeline components, to add annotations to the `Doc` object.",
"github":"allenai/allennlp",
"pip":"allennlp",
"thumb":"https://i.imgur.com/U8opuDN.jpg",
"url":"http://allennlp.org",
"author":" Allen Institute for Artificial Intelligence",
"description":"`textacy` is a Python library for performing a variety of natural language processing (NLP) tasks, built on the high-performance `spacy` library. With the fundamentals – tokenization, part-of-speech tagging, dependency parsing, etc. – delegated to another library, `textacy` focuses on the tasks that come before and follow after.",
"description":"`textpipe` is a Python package for converting raw text in to clean, readable text and extracting metadata from that text. Its functionalities include transforming raw text into readable text by removing HTML tags and extracting metadata such as the number of words and named entities from the text.",
"slogan":"Full text geoparsing using spaCy, Geonames and Keras",
"description":"Extract the place names from a piece of text, resolve them to the correct place, and return their coordinates and structured geographic information.",
"github":"openeventdata/mordecai",
"pip":"mordecai",
"thumb":"https://i.imgur.com/gPJ9upa.jpg",
"code_example":[
"from mordecai import Geoparser",
"geo = Geoparser()",
"geo.geoparse(\"I traveled from Oxford to Ottawa.\")"
"slogan":"Biomedical relation extraction using spaCy",
"description":"Kindred is a package for relation extraction in biomedical texts. Given some training data, it can build a model to identify relations between entities (e.g. drugs, genes, etc) in a sentence.",
"description":"sense2vec ([Trask et. al](https://arxiv.org/abs/1511.06388), 2015) is a nice twist on [word2vec](https://en.wikipedia.org/wiki/Word2vec) that lets you learn more interesting, detailed and context-sensitive word vectors. For an interactive example of the technology, see our [sense2vec demo](https://explosion.ai/demos/sense2vec) that lets you explore semantic similarities across all Reddit comments of 2015.",
"txt <- c(d1 = \"spaCy excels at large-scale information extraction tasks.\",",
" d2 = \"Mr. Smith goes to North Carolina.\")",
"",
"# process documents and obtain a data.table",
"parsedtxt <- spacy_parse(txt)"
],
"code_language":"r",
"author":"Kenneth Benoit & Aki Matsuo",
"category":["nonpython"]
},
{
"id":"cleannlp",
"title":"CleanNLP",
"slogan":"A tidy data model for NLP in R",
"description":"The cleanNLP package is designed to make it as painless as possible to turn raw text into feature-rich data frames. the package offers four backends that can be used for parsing text: `tokenizers`, `udpipe`, `spacy` and `corenlp`.",
"github":"statsmaths/cleanNLP",
"cran":"cleanNLP",
"author":"Taylor B. Arnold",
"author_links":{
"github":"statsmaths"
},
"category":["nonpython"]
},
{
"id":"spacy-cpp",
"slogan":"C++ wrapper library for spaCy",
"description":"The goal of spacy-cpp is to expose the functionality of spaCy to C++ applications, and to provide an API that is similar to that of spaCy, enabling rapid development in Python and simple porting to C++.",
"slogan":"NLP server for spaCy, WordNet and NeuralCoref as a Docker image",
"github":"artpar/languagecrunch",
"code_example":[
"docker run -it -p 8080:8080 artpar/languagecrunch",
"curl http://localhost:8080/nlp/parse?`echo -n \"The new twitter is so weird. Seriously. Why is there a new twitter? What was wrong with the old one? Fix it now.\" | python -c \"import urllib, sys; print(urllib.urlencode({'sentence': sys.stdin.read()}))\"`"
],
"code_language":"bash",
"author":"Parth Mudgal",
"author_links":{
"github":"artpar"
},
"category":["apis"]
},
{
"id":"spacy-nlp",
"slogan":" Expose spaCy NLP text parsing to Node.js (and other languages) via Socket.IO",
"github":"kengz/spacy-nlp",
"thumb":"https://i.imgur.com/w41VSr7.jpg",
"code_example":[
"const spacyNLP = require(\"spacy-nlp\")",
"// default port 6466",
"// start the server with the python client that exposes spacyIO (or use an existing socketIO server at IOPORT)",
"slogan":"Radically efficient machine teaching, powered by active learning",
"description":"Prodigy is an annotation tool so efficient that data scientists can do the annotation themselves, enabling a new level of rapid iteration. Whether you're working on entity recognition, intent detection or image classification, Prodigy can help you train and evaluate your models faster. Stream in your own examples or real-world data from live APIs, update your model in real-time and chain models together to build more complex systems.",
"thumb":"https://i.imgur.com/UVRtP6g.jpg",
"image":"https://i.imgur.com/Dt5vrY6.png",
"url":"https://prodi.gy",
"code_example":[
"prodigy dataset ner_product \"Improve PRODUCT on Reddit data\"",
"with Flow(\"Natural Language Processing\") as flow:",
" doc = SpacyNLP(text=\"This is some text\", nlp=nlp)",
"",
"flow.run()"
],
"author":"Prefect",
"author_links":{
"website":"https://prefect.io"
},
"category":["standalone"]
},
{
"id":"graphbrain",
"title":"Graphbrain",
"slogan":"Automated meaning extraction and text understanding",
"description":"Graphbrain is an Artificial Intelligence open-source software library and scientific research tool. Its aim is to facilitate automated meaning extraction and text understanding, as well as the exploration and inference of knowledge.",
"title":"Natural Language Processing Using Python",
"slogan":"No Starch Press, 2020",
"description":"Natural Language Processing Using Python is an introduction to natural language processing (NLP), the task of converting human language into data that a computer can process. The book uses spaCy, a leading Python library for NLP, to guide readers through common NLP tasks related to generating and understanding human language with code. It addresses problems like understanding a user's intent, continuing a conversation with a human, and maintaining the state of a conversation.",
"title":"Introduction to Machine Learning with Python: A Guide for Data Scientists",
"slogan":"O'Reilly, 2016",
"description":"Machine learning has become an integral part of many commercial applications and research projects, but this field is not exclusive to large companies with extensive research teams. If you use Python, even as a beginner, this book will teach you practical ways to build your own machine learning solutions. With all the data available today, machine learning applications are limited only by your imagination.",
"description":"*Text Analytics with Python* teaches you the techniques related to natural language processing and text analytics, and you will gain the skills to know which technique is best suited to solve a particular problem. You will look at each technique and algorithm with both a bird's eye view to understand how it can be used as well as with a microscopic view to understand the mathematical concepts and to implement them to solve your own problems.",
"description":"Master the essential skills needed to recognize and solve complex problems with machine learning and deep learning. Using real-world examples that leverage the popular Python machine learning ecosystem, this book is your perfect companion for learning the art and science of machine learning to become a successful practitioner. The concepts, techniques, tools, frameworks, and methodologies used in this book will teach you how to think, design, build, and execute machine learning systems and projects successfully.",
"title":"Natural Language Processing and Computational Linguistics",
"slogan":"Packt, 2018",
"description":"This book shows you how to use natural language processing, and computational linguistics algorithms, to make inferences and gain insights about data you have. These algorithms are based on statistical machine learning and artificial intelligence techniques. The tools to work with these algorithms are available to you right now - with Python, and tools like Gensim and spaCy.",
"title":"Learning Path: Mastering spaCy for Natural Language Processing",
"slogan":"O'Reilly, 2017",
"description":"spaCy, a fast, user-friendly library for teaching computers to understand text, simplifies NLP techniques, such as speech tagging and syntactic dependencies, so you can easily extract information, attributes, and objects from massive amounts of text to then document, measure, and analyze. This Learning Path is a hands-on introduction to using spaCy to discover insights through natural language processing. While end-to-end natural language processing solutions can be complex, you’ll learn the linguistics, algorithms, and machine learning skills to get the job done.",
"description":"In this free interactive course, you'll learn how to use spaCy to build advanced natural language understanding systems, using both rule-based and machine learning approaches.",
"slogan":"Incremental parsing with bloom embeddings and residual CNNs",
"description":"spaCy v2.0's Named Entity Recognition system features a sophisticated word embedding strategy using subword features and \"Bloom\" embeddings, a deep convolutional neural network with residual connections, and a novel transition-based approach to named entity parsing. The system is designed to give a good balance of efficiency, accuracy and adaptability. In this talk, I sketch out the components of the system, explaining the intuition behind the various choices. I also give a brief introduction to the named entity recognition problem, with an overview of what else Explosion AI is working on, and why.",
"youtube":"sqDHBH9IjRU",
"author":"Matthew Honnibal",
"author_links":{
"twitter":"honnibal",
"github":"honnibal",
"website":"https://explosion.ai"
},
"category":["videos"]
},
{
"type":"education",
"id":"video-new-nlp-solutions",
"title":"Building new NLP solutions with spaCy and Prodigy",
"slogan":"PyData Berlin 2018",
"description":"In this talk, I will discuss how to address some of the most likely causes of failure for new Natural Language Processing (NLP) projects. My main recommendation is to take an iterative approach: don't assume you know what your pipeline should look like, let alone your annotation schemes or model architectures.",
"author":"Matthew Honnibal",
"author_links":{
"twitter":"honnibal",
"github":"honnibal",
"website":"https://explosion.ai"
},
"youtube":"jpWqz85F_4Y",
"category":["videos"]
},
{
"type":"education",
"id":"video-modern-nlp-in-python",
"title":"Modern NLP in Python",
"slogan":"PyData DC 2016",
"description":"Academic and industry research in Natural Language Processing (NLP) has progressed at an accelerating pace over the last several years. Members of the Python community have been hard at work moving cutting-edge research out of papers and into open source, \"batteries included\" software libraries that can be applied to practical problems. We'll explore some of these tools for modern NLP in Python.",
"title":"Advanced NLP with spaCy · A free online course",
"description":"spaCy is a modern Python library for industrial-strength Natural Language Processing. In this free and interactive online course, you'll learn how to use spaCy to build advanced natural language understanding systems, using both rule-based and machine learning approaches.",
"url":"https://course.spacy.io/en",
"author":"Ines Montani",
"author_links":{
"twitter":"_inesmontani",
"github":"ines"
},
"youtube":"THduWAnG97k",
"category":["videos"]
},
{
"type":"education",
"id":"video-spacy-course-de",
"title":"Modernes NLP mit spaCy · Ein Gratis-Onlinekurs",
"description":"spaCy ist eine moderne Python-Bibliothek für industriestarkes Natural Language Processing. In diesem kostenlosen und interaktiven Onlinekurs lernst du, mithilfe von spaCy fortgeschrittene Systeme für die Analyse natürlicher Sprache zu entwickeln und dabei sowohl regelbasierte Verfahren, als auch moderne Machine-Learning-Technologie einzusetzen.",
"title":"NLP avanzado con spaCy · Un curso en línea gratis",
"description":"spaCy es un paquete moderno de Python para hacer Procesamiento de Lenguaje Natural de potencia industrial. En este curso en línea, interactivo y gratuito, aprenderás a usar spaCy para construir sistemas avanzados de comprensión de lenguaje natural usando enfoques basados en reglas y en machine learning.",
"description":"In this new video series, data science instructor Vincent Warmerdam gets started with spaCy, an open-source library for Natural Language Processing in Python. His mission: building a system to automatically detect programming languages in large volumes of text. Follow his process from the first idea to a prototype all the way to data collection and training a statistical named entity recogntion model from scratch.",
"description":"In this new video series, data science instructor Vincent Warmerdam gets started with spaCy, an open-source library for Natural Language Processing in Python. His mission: building a system to automatically detect programming languages in large volumes of text. Follow his process from the first idea to a prototype all the way to data collection and training a statistical named entity recogntion model from scratch.",
"description":"In this new video series, data science instructor Vincent Warmerdam gets started with spaCy, an open-source library for Natural Language Processing in Python. His mission: building a system to automatically detect programming languages in large volumes of text. Follow his process from the first idea to a prototype all the way to data collection and training a statistical named entity recogntion model from scratch.",
"author":"Vincent Warmerdam",
"author_links":{
"twitter":"fishnets88",
"github":"koaning"
},
"youtube":"4V0JDdohxAk",
"category":["videos"]
},
{
"type":"education",
"id":"video-intro-to-nlp-episode-4",
"title":"Intro to NLP with spaCy (4)",
"slogan":"Episode 4: Named Entity Recognition",
"description":"In this new video series, data science instructor Vincent Warmerdam gets started with spaCy, an open-source library for Natural Language Processing in Python. His mission: building a system to automatically detect programming languages in large volumes of text. Follow his process from the first idea to a prototype all the way to data collection and training a statistical named entity recogntion model from scratch.",
"description":"In this new video series, data science instructor Vincent Warmerdam gets started with spaCy, an open-source library for Natural Language Processing in Python. His mission: building a system to automatically detect programming languages in large volumes of text. Follow his process from the first idea to a prototype all the way to data collection and training a statistical named entity recogntion model from scratch.",
"description":"Most NLP projects rely crucially on the quality of annotations used for training and evaluating models. In this episode, Matt and Ines of Explosion AI tell us how Prodigy can improve data annotation and model development workflows. Prodigy is an annotation tool implemented as a python library, and it comes with a web application and a command line interface. A developer can define input data streams and design simple annotation interfaces. Prodigy can help break down complex annotation decisions into a series of binary decisions, and it provides easy integration with spaCy models. Developers can specify how models should be modified as new annotations come in in an active learning framework.",
"description":"As the amount of text available on the internet and in businesses continues to increase, the need for fast and accurate language analysis becomes more prominent. This week Matthew Honnibal, the creator of spaCy, talks about his experiences researching natural language processing and creating a library to make his findings accessible to industry.",
"description":"The state of the art in natural language processing is a constantly moving target. With the rise of deep learning, previously cutting edge techniques have given way to robust language models. Through it all the team at Explosion AI have built a strong presence with the trifecta of spaCy, Thinc, and Prodigy to support fast and flexible data labeling to feed deep learning models and performant and scalable text processing. In this episode founder and open source author Matthew Honnibal shares his experience growing a business around cutting edge open source libraries for the machine learning developent process.",
"description":"One core question around open source is how do you fund it? Well, there is always that PayPal donate button. But that's been a tremendous failure for many projects. Often the go-to answer is consulting. But what if you don't want to trade time for money? You could take things up a notch and change the equation, exchanging value for money. That's what Ines Montani and her co-founder did when they started Explosion AI with spaCy as the foundation.",
"description":"\"Ines and I caught up to discuss her various projects, including the aforementioned spaCy, an open-source NLP library built with a focus on industry and production use cases. In our conversation, Ines gives us an overview of the spaCy Library, a look at some of the use cases that excite her, and the Spacy community and contributors. We also discuss her work with Prodigy, an annotation service tool that uses continuous active learning to train models, and finally, what other exciting projects she is working on.\"",
"title":"DataHack Radio #23: The Brains behind spaCy",
"slogan":"June 2019",
"description":"\"What would you do if you had the chance to pick the brains behind one of the most popular Natural Language Processing (NLP) libraries of our era? A library that has helped usher in the current boom in NLP applications and nurtured tons of NLP scientists? Well – you invite the creators on our popular DataHack Radio podcast and let them do the talking! We are delighted to welcome Ines Montani and Matt Honnibal, the developers of spaCy – a powerful and advanced library for NLP.\"",
"description":"\"spaCy is awesome for NLP! It’s easy to use, has widespread adoption, is open source, and integrates the latest language models. Ines Montani and Matthew Honnibal (core developers of spaCy and co-founders of Explosion) join us to discuss the history of the project, its capabilities, and the latest trends in NLP. We also dig into the practicalities of taking NLP workflows to production. You don’t want to miss this episode!\"",
"description":"EcoHealth Alliance uses EpiTator to catalog the what, where and when of infectious disease case counts reported in online news. Each of these aspects is extracted using independent annotators than can be applied to other domains. EpiTator organizes annotations by creating \"AnnoTiers\" for each type. AnnoTiers have methods for manipulating, combining and searching annotations. For instance, the `with_following_spans_from()` method can be used to create a new tier that combines a tier of one type (such as numbers), with another (say, kitchenware). The resulting tier will contain all the phrases in the document that match that pattern, like \"5 plates\" or \"2 cups.\"\n\nAnother commonly used method is `group_spans_by_containing_span()` which can be used to do things like find all the spaCy tokens in all the GeoNames a document mentions. spaCy tokens, named entities, sentences and noun chunks are exposed through the spaCy annotator which will create a AnnoTier for each. These are basis of many of the other annotators. EpiTator also includes an annotator for extracting tables embedded in free text articles. Another neat feature is that the lexicons used for entity resolution are all stored in an embedded sqlite database so there is no need to run any external services in order to use EpiTator.",
"slogan":"Excel Integration with spaCy. Training NER using XLSX from PDF, DOCX, PPT, PNG or JPG.",
"description":"ExcelCy is a toolkit to integrate Excel to spaCy NLP training experiences. Training NER using XLSX from PDF, DOCX, PPT, PNG or JPG. ExcelCy has pipeline to match Entity with PhraseMatcher or Matcher in regular expression.",
"slogan":"Query spaCy's linguistic annotations using GraphQL",
"github":"ines/spacy-graphql",
"description":"A very simple and experimental app that lets you query spaCy's linguistic annotations using [GraphQL](https://graphql.org/). The API currently supports most token attributes, named entities, sentences and text categories (if available as `doc.cats`, i.e. if you added a text classifier to a model). The `meta` field will return the model meta data. Models are only loaded once and kept in memory.",
"url":"https://explosion.ai/demos/spacy-graphql",
"category":["apis"],
"tags":["graphql"],
"thumb":"https://i.imgur.com/xC7zpTO.png",
"code_example":[
"{",
" nlp(text: \"Zuckerberg is the CEO of Facebook.\", model: \"en_core_web_sm\") {",
"slogan":"JavaScript API for spaCy with Python REST API",
"github":"ines/spacy-js",
"description":"JavaScript interface for accessing linguistic annotations provided by spaCy. This project is mostly experimental and was developed for fun to play around with different ways of mimicking spaCy's Python API.\n\nThe results will still be computed in Python and made available via a REST API. The JavaScript API resembles spaCy's Python API as closely as possible (with a few exceptions, as the values are all pre-computed and it's tricky to express complex recursive relationships).",
"code_language":"javascript",
"code_example":[
"const spacy = require('spacy');",
"",
"(async function() {",
" const nlp = spacy.load('en_core_web_sm');",
" const doc = await nlp('This is a text about Facebook.');",
"description":"`spacy-wordnet` creates annotations that easily allow the use of WordNet and [WordNet Domains](http://wndomains.fbk.eu/) by using the [NLTK WordNet interface](http://www.nltk.org/howto/wordnet.html)",
"slogan":"Parsing to CoNLL with spaCy, spacy-stanza, and spacy-udpipe",
"description":"This module allows you to parse text into CoNLL-U format. You can use it as a command line tool, or embed it in your own scripts by adding it as a custom pipeline component to a spaCy, spacy-stanfordnlp, spacy-stanza, or spacy-udpipe pipeline. It also provides an easy-to-use function to quickly initialize a parser. CoNLL-related properties are added to Doc elements, sentence Spans, and Tokens.",
"doc = nlp(\"A cookie is a baked or cooked food that is typically small, flat and sweet. It usually contains flour, sugar and some type of oil or fat.\")",
"",
"# Get the CoNLL representation of the whole document, including headers",
"description":"Ludwig makes it easy to build deep learning models for many applications, including NLP ones. It uses spaCy for tokenizing text in different languages.",
"description":"pic2phrase_bot runs inside Telegram messenger and can be used to generate a phrase describing a submitted photo, employing computer vision, web scraping, and syntactic dependency analysis powered by spaCy.",
"description":"An example of a basic [Starlette](https://github.com/encode/starlette) app using [Spacy](https://github.com/explosion/spaCy) and [Graphene](https://github.com/graphql-python/graphene). The main goal is to be able to use the amazing power of spaCy from other languages and retrieving only the information you need thanks to the GraphQL query definition. The GraphQL schema tries to mimic as much as possible the original Spacy API with classes Doc, Span and Token.",
"description":"This package uses the [spaCy 2.0 extensions](https://spacy.io/usage/processing-pipelines#extensions) to add word inflections to the system.",
"slogan":"A Python module for English lemmatization and inflection",
"description":"LemmInflect uses a dictionary approach to lemmatize English words and inflect them into forms specified by a user supplied [Universal Dependencies](https://universaldependencies.org/u/pos/) or [Penn Treebank](https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html) tag. The library works with out-of-vocabulary (OOV) words by applying neural network techniques to classify word forms and choose the appropriate morphing rules. The system acts as a standalone module or as an extension to spaCy.",
"slogan":"A python library that makes AMR parsing, generation and visualization simple.",
"description":"amrlib is a python module and spaCy add-in for Abstract Meaning Representation (AMR). The system can parse sentences to AMR graphs or generate text from existing graphs. It includes a GUI for visualization and experimentation.",
"github":"bjascob/amrlib",
"pip":"amrlib",
"code_example":[
"import spacy",
"import amrlib",
"amrlib.setup_spacy_extension()",
"nlp = spacy.load('en_core_web_sm')",
"doc = nlp('This is a test of the spaCy extension. The test has multiple sentences.')",
"slogan":"A spaCy pipeline and model for NLP on unstructured legal text",
"description":"Blackstone is a spaCy model and library for processing long-form, unstructured legal text. Blackstone is an experimental research project from the [Incorporated Council of Law Reporting for England and Wales'](https://iclr.co.uk/) research lab, [ICLR&D](https://research.iclr.co.uk/).",
"slogan":"A little Windows GUI for training models with spaCy",
"description":"NeuralGym is a Python application for Windows with a graphical user interface to train models with spaCy. Run the application, select an output folder, a training data file in spaCy's data format, a spaCy model or blank model and press 'Start'.",
"description":"Holmes is a Python 3 library that supports a number of use cases involving information extraction from English and German texts, including chatbot, structural extraction, topic matching and supervised document classification. There is a [website demonstrating intelligent search based on topic matching](https://holmes-demo.xt.msg.team).",
"description":"This package provides spaCy model pipelines that wrap [Hugging Face's `transformers`](https://github.com/huggingface/transformers) package, so you can use them in spaCy. The result is convenient access to state-of-the-art transformer architectures, such as BERT, GPT-2, XLNet, etc.",
"slogan":"spaCy pipeline object for negating concepts in text based on the NegEx algorithm.",
"github":"jenojp/negspacy",
"url":"https://github.com/jenojp/negspacy",
"description":"negspacy is a spaCy pipeline component that evaluates whether Named Entities are negated in text. It adds an extension to 'Span' objects.",
"description":"The corpus holds 5127 sentences, annotated with 16 classes, with a total of 26376 annotated entities. The corpus comes into two formats: BRAT and CONLLUP.",
"slogan":"Numeric Fused-Head Identificaiton and Resolution in English",
"description":"This package provide a wrapper for the Numeric Fused-Head in English. It provides another information layer on numbers that refer to another entity which is not obvious from the syntactic tree.",
"github":"yanaiela/num_fh",
"pip":"num_fh",
"category":["pipeline","research"],
"code_example":[
"import spacy",
"from num_fh import NFH",
"nlp = spacy.load('en_core_web_sm')",
"nfh = NFH(nlp)",
"nlp.add_pipe(nfh, first=False)",
"doc = nlp(\"I told you two, that only one of them is the one who will get 2 or 3 icecreams\")",
"slogan":"Context aware, pluggable and customizable data protection and PII data anonymization",
"description":"Presidio *(Origin from Latin praesidium ‘protection, garrison’)* helps to ensure sensitive text is properly managed and governed. It provides fast ***analytics*** and ***anonymization*** for sensitive text such as credit card numbers, names, locations, social security numbers, bitcoin wallets, US phone numbers and financial data. Presidio analyzes the text using predefined or custom recognizers to identify entities, patterns, formats, and checksums with relevant context.",
"slogan":"Toolbox for developing and evaluating PII detectors, NER models for PII and generating fake PII data",
"description":"This package features data-science related tasks for developing new recognizers for Microsoft Presidio. It is used for the evaluation of the entire system, as well as for evaluating specific PII recognizers or PII detection models. Anyone interested in evaluating an existing Microsoft Presidio instance, a specific PII recognizer or to develop new models or logic for detecting PII could leverage the preexisting work in this package. Additionally, anyone interested in generating new data based on previous datasets (e.g. to increase the coverage of entity values) for Named Entity Recognition models could leverage the data generator contained in this package.",
"description":"pySBD is 'real-world' sentence segmenter which extracts reasonable sentences when the format and domain of the input text are unknown. It is a rules-based algorithm based on [The Golden Rules](https://s3.amazonaws.com/tm-town-nlp-resources/golden_rules.txt) - a set of tests to check accuracy of segmenter in regards to edge case scenarios developed by [TM-Town](https://www.tm-town.com/) dev team. pySBD is python port of ruby gem [Pragmatic Segmenter](https://github.com/diasks2/pragmatic_segmenter).",
"description":"Docker-based cookiecutter for easy spaCy APIs using FastAPI. The default endpoints expect batch requests with a list of Records in the Azure Search Cognitive Skill format. So out of the box, this cookiecutter can be setup as a Custom Cognitive Skill. For more on Azure Search and Cognitive Skills [see this page](https://docs.microsoft.com/en-us/azure/search/cognitive-search-custom-skill-interface).",
"slogan":"Py impl of TextRank for lightweight phrase extraction",
"description":"An implementation of TextRank in Python for use in spaCy pipelines which provides fast, effective phrase extraction from texts, along with extractive summarization. The graph algorithm works independent of a specific natural language and does not require domain knowledge. See (Mihalcea 2004) https://web.eecs.umich.edu/~mihalcea/papers/mihalcea.emnlp04.pdf",
"text = 'Compatibility of systems of linear constraints over the set of natural numbers. Criteria of compatibility of a system of linear Diophantine equations, strict inequations, and nonstrict inequations are considered.'",
"doc = nlp(text)",
"",
"# examine the top-ranked phrases in the document",
"description":"Spacy Syllables is a pipeline component that adds multilingual syllable annotations to Tokens. It uses Pyphen under the hood and has support for a long list of languages.",
"description":"gobbli is a Python library which wraps several modern deep learning models in a uniform interface that makes it easy to evaluate feasibility and conduct analyses. It leverages the abstractive powers of Docker to hide nearly all dependency management and functional differences between models from the user. It also contains an interactive app for exploring text data and evaluating classification models. spaCy's base text classification models, as well as models integrated from `spacy-transformers`, are available in the collection of classification models. In addition, spaCy is used for data augmentation and document embeddings.",
"slogan":"An open source platform for the machine learning lifecycle",
"description":"MLflow is an open source platform to manage the ML lifecycle, including experimentation, reproducibility, deployment, and a central model registry. MLflow currently offers four components: Tracking, Projects, Models and Registry.",
"description":"PyATE is a term extraction library written in Python using Spacy POS tagging with Basic, Combo Basic, C-Value, TermExtractor, and Weirdness.",
"string = 'Central to the development of cancer are genetic changes that endow these “cancer cells” with many of the hallmarks of cancer, such as self-sufficient growth and resistance to anti-growth and pro-death signals. However, while the genetic changes that occur within cancer cells themselves, such as activated oncogenes or dysfunctional tumor suppressors, are responsible for many aspects of cancer development, they are not sufficient. Tumor promotion and progression are dependent on ancillary processes provided by cells of the tumor environment but that are not necessarily cancerous themselves. Inflammation has long been associated with the development of cancer. This review will discuss the reflexive relationship between cancer and inflammation with particular focus on how considering the role of inflammation in physiologic processes such as the maintenance of tissue homeostasis and repair may provide a logical framework for understanding the connection between the inflammatory response and cancer.'",
"description":"This package currently focuses on Out of Vocabulary (OOV) word or non-word error (NWE) correction using BERT model. The idea of using BERT was to use the context when correcting NWE.",
"slogan":"Text preprocessing, representation and visualization from zero to hero.",
"description":"Texthero is a python package to work with text data efficiently. It empowers NLP developers with a tool to quickly understand any text-based dataset and it provides a solid pipeline to clean and represent text data, from zero to hero.",
"slogan":"spaCy pipeline for COVID-19 surveillance.",
"github":"abchapman93/VA_COVID-19_NLP_BSV",
"description":"A spaCy rule-based pipeline for identifying positive cases of COVID-19 from clinical text. A version of this system was deployed as part of the US Department of Veterans Affairs biosurveillance response to COVID-19.",
"slogan":"A toolkit for clinical NLP with spaCy.",
"github":"medspacy/medspacy",
"description":"A toolkit for clinical NLP with spaCy. Features include sentence splitting, section detection, and asserting negation, family history, and uncertainty.",
"slogan":"Domain Specific Language for creating language rules",
"github":"zaibacu/rita-dsl",
"description":"A Domain Specific Language (DSL) for building language patterns. These can be later compiled into spaCy patterns, pure regex, or any other format",
"slogan":"SpacyDotNet is a .NET Core compatible wrapper for spaCy, based on Python.NET",
"description":"This projects relies on [Python.NET](http://pythonnet.github.io/) to interop with spaCy. It's not meant to be a complete and exhaustive implementation of all spaCy features and [APIs](https://spacy.io/api). Although it should be enough for basic tasks, it's considered as a starting point if you need to build a complex project using spaCy in .NET Most of the basic features in _Spacy101_ are available. All `Container` classes are present (`Doc`, `Token`, `Span` and `Lexeme`) with their basic properties/methods running and also `Vocab` and `StringStore` in a limited form. Anyway, any developer should be ready to add the missing properties or classes in a very straightforward manner.",
"slogan":"A library for statistics extraction from texts in Russian",
"description":"The library allows extracting the following statistics from a text: basic statistics, readability metrics, lexical diversity metrics, morphological statistics",