awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

Natural Language Processing Libraries

Ranking updated Jun 30, 2026

For a library for natural language processing, the first results are google-research/bert (BERT is a transformer-based NLP toolkit that provides pre-trained language models, tokenization, text classification, NER, and multilingual support via a Python API, making it a powerful and comprehensive framework for the NLP tasks described), nlpchina/ansj_seg (ansjseg is a Java NLP toolkit for Chinese text segmentation, POS tagging, and NER — it matches the NLP library category but is narrowly focused on Chinese and lacks general-purpose features like text classification and pre-trained language models) and naturalnode/natural (Natural is a Node.js NLP library covering tokenization, classification, and stemming, but it lacks a Python API, pre‑trained models, named entity recognition, and part‑of‑speech tagging, making it a narrower fit for a general‑purpose Python‑centric NLP framework). stanfordnlp/corenlp and flairnlp/flair round out the shortlist. Compare the match explanations and check the project documentation against your requirements.

Open-source frameworks and tools for building applications that process, analyze, and generate human language data.

Natural Language Processing Libraries

Find the best repos with AI.We'll search the best matching repositories with AI.
  • google-research/bertgoogle-research avatar

    google-research/bert

    39,869View on GitHub↗

    This project is a transformer-based language model and natural language processing toolkit designed to generate deep contextual representations of text. By utilizing a transformer-based encoder architecture, the system processes input sequences through stacked self-attention layers to capture the semantic meaning of tokens based on their surrounding sentence structure. The model distinguishes itself through bidirectional contextual processing, which analyzes text in both directions simultaneously, and masked language modeling, which trains the system by predicting hidden tokens within a seque

    BERT is a transformer-based NLP toolkit that provides pre-trained language models, tokenization, text classification, NER, and multilingual support via a Python API, making it a powerful and comprehensive framework for the NLP tasks described.

    PythonTransformer Language ModelsMultilingual Parameter SharingMultilingual Representation Learners
    View on GitHub↗39,869
  • nlpchina/ansj_segNLPchina avatar

    NLPchina/ansj_seg

    6,528View on GitHub↗

    ansj_seg is a Java NLP toolkit and segmentation library designed for processing Chinese text. It functions as a word segmenter, part-of-speech tagger, and named entity recognizer to divide continuous Chinese characters into meaningful words and tokens. The library utilizes statistical models for text segmentation and provides capabilities for identifying and extracting person names from unstructured documents. It also assigns grammatical categories to tokens to determine their linguistic roles within a sentence. The toolkit supports domain-specific text processing through the use of custom d

    ansj_seg is a Java NLP toolkit for Chinese text segmentation, POS tagging, and NER — it matches the NLP library category but is narrowly focused on Chinese and lacks general-purpose features like text classification and pre-trained language models.

    JavaNamed Entity RecognitionPart-of-Speech TaggersPart-of-Speech Tagging Pipelines
    View on GitHub↗6,528
  • naturalnode/naturalNaturalNode avatar

    NaturalNode/natural

    10,878View on GitHub↗

    Natural is a natural language processing library for Node.js that provides tools for text analysis, tokenization, and phonetic matching. It functions as a collection of specialized toolsets for word stemming, string similarity quantification, and pattern-based text classification. The library includes a phonetic sound analyzer that converts words into phonetic representations to identify matches based on sound rather than literal spelling. It also features a text classification engine that assigns categories to text inputs using trained models and pattern recognition. Additional capabilities

    Natural is a Node.js NLP library covering tokenization, classification, and stemming, but it lacks a Python API, pre‑trained models, named entity recognition, and part‑of‑speech tagging, making it a narrower fit for a general‑purpose Python‑centric NLP framework.

    JavaScriptText ClassificationText TokenizationNatural Language Classification
    View on GitHub↗10,878
  • stanfordnlp/corenlpstanfordnlp avatar

    stanfordnlp/CoreNLP

    10,085View on GitHub↗

    CoreNLP is a Java natural language processing library designed to convert raw human language text into structured data. It utilizes a suite of linguistic annotators to analyze text through a pipeline, extracting grammatical structures, sentiment, and linguistic patterns. The project includes a coreference resolution engine that links multiple mentions of the same entity to maintain contextual consistency across documents. It also provides tools for named entity recognition to categorize people, companies, and locations, and a part-of-speech tagger to assign grammatical categories and base for

    CoreNLP is a Java-based natural language processing library that provides tokenization, part-of-speech tagging, named entity recognition, and coreference resolution, covering many core tasks you need, though it lacks a native Python API and modern pre‑trained language model support.

    JavaNamed Entity RecognitionPart-of-Speech TaggersText Tokenization
    View on GitHub↗10,085
  • flairnlp/flairflairNLP avatar

    flairNLP/flair

    14,378View on GitHub↗

    Flair is a transformer-based natural language processing framework used to build and train models for text classification and sequence tagging. It provides a specialized library for generating contextual text embeddings and performing linguistic analysis. The framework includes dedicated tools for named entity recognition, including the identification of specialized biomedical entities across multiple languages. It further supports entity linking to map identified text mentions to unique entries within general or biomedical knowledge bases. The project covers a broad range of language analys

    Flair is a transformer-based NLP framework that provides pre‑trained models, tokenization, text classification, NER, POS tagging, and multi‑language support via a Python API, making it a comprehensive fit for general‑purpose natural‑language processing.

    PythonPart-of-Speech TaggersText Classification
    View on GitHub↗14,378
  • explosion/spacyexplosion avatar

    explosion/spaCy

    33,688View on GitHub↗

    spaCy is a Python natural language processing framework designed for industrial-scale text processing. It converts raw text into structured data for machine learning pipelines through a combination of statistical language model trainers, transformer-based text processors, and syntactic dependency parsers. The project enables the integration of pretrained transformer architectures to perform complex linguistic analysis and multi-task learning. It also provides a specialized system for neural named entity recognition to identify and categorize key entities within text. The framework covers a b

    spaCy is a comprehensive Python NLP framework with built-in support for tokenization, text classification, named entity recognition, part‑of‑speech tagging, and multilingual pre‑trained models, directly matching the request for a general‑purpose NLP library.

    PythonText ClassificationTokenizers
    View on GitHub↗33,688
  • deeppavlov/deeppavlovdeeppavlov avatar

    deeppavlov/DeepPavlov

    6,985View on GitHub↗

    DeepPavlov is a conversational AI framework and deep learning NLP library designed for building end-to-end dialogue systems and chatbots. It functions as an NLP pipeline orchestrator that allows users to compose pre-trained models and text processing components into sequential data flows for complex linguistic tasks. The system is distinguished by its ability to act as a chatbot deployment server, exposing trained conversational models as web services via REST and Socket APIs. It utilizes JSON-based pipeline configurations and dynamic variable interpolation to decouple model logic from infras

    DeepPavlov is a comprehensive open-source NLP framework with support for pre-trained models, tokenization, text classification, named entity recognition, and other core tasks via a Python API, directly matching your need for a general-purpose NLP library.

    PythonNamed Entity RecognitionText ClassificationText Tokenization
    View on GitHub↗6,985
  • sloria/textblobsloria avatar

    sloria/TextBlob

    9,516View on GitHub↗

    TextBlob is a natural language processing library that provides a unified interface for common linguistic tasks. It operates as a wrapper-based API, simplifying the use of complex processing libraries by delegating core operations to specialized external frameworks. The project features a pluggable processing pipeline that allows for the integration of custom logic and alternative language engines. It supports the extension of processing models through plugins to add specific language support or custom data processing. The library covers a broad range of linguistic capabilities, including se

    TextBlob is a Python NLP library that provides a streamlined interface for common tasks like tokenization, part-of-speech tagging, text classification, and sentiment analysis, with plugin support for additional languages, though it lacks built-in pre-trained language models and native named entity recognition, so it fits your general-purpose NLP framework search with some feature gaps.

    PythonPart-of-Speech TaggersText ClassificationText Tokenization
    View on GitHub↗9,516
  • nltk/nltknltk avatar

    nltk/nltk

    14,649View on GitHub↗

    This project is a comprehensive Python toolkit designed for natural language processing, research, and education. It functions as a linguistic data processor that provides a standardized framework for managing, cleaning, and analyzing large collections of annotated text corpora and lexical resources. The library distinguishes itself through its integration of both symbolic and statistical methods, allowing users to perform complex tasks ranging from rule-based grammar parsing to machine learning-driven classification. It offers a modular pipeline for text processing, enabling the transformati

    NLTK is a comprehensive Python NLP toolkit that delivers tokenization, text classification, named entity recognition, part‑of‑speech tagging, and multilingual support through its built‑in corpora and classic pre‑trained models, making it a solid general‑purpose library for the natural language processing tasks you listed.

    PythonPart-of-Speech TaggersText Classification
    View on GitHub↗14,649
  • hankcs/hanlphankcs avatar

    hankcs/HanLP

    36,413View on GitHub↗

    HanLP is a natural language processing library and deep learning framework specifically optimized for the Chinese language, while also functioning as a multilingual text processor. It serves as a toolkit for performing linguistic analysis, semantic understanding, and script conversion. The project distinguishes itself through a dedicated focus on Chinese linguistic structures, including a specialized script converter for transforming text between Simplified Chinese, Traditional Chinese, and Pinyin. It further supports domain-specific model training to improve the recognition of professional t

    HanLP is a comprehensive NLP library and deep learning framework that covers tokenization, NER, POS tagging, text classification, and multilingual processing (with a Chinese focus), making it a strong fit for general-purpose NLP tasks including language understanding and analysis.

    PythonPart-of-Speech TaggersText Classification
    View on GitHub↗36,413
  • isnowfy/snownlpisnowfy avatar

    isnowfy/snownlp

    6,631View on GitHub↗

    SnowNLP is a Python library for Chinese natural language processing. It provides tools for text segmentation, sentiment analysis, document classification, and phonetic transliteration. The library includes capabilities for training and saving custom machine learning models for tokenization and sentiment analysis using raw training datasets. It covers a range of linguistic processing areas, including parts of speech tagging, sentence splitting, and text similarity measurement. The toolkit also provides utilities for extracting key information through text summarization and calculating word im

    SnowNLP is a Python library for Chinese natural language processing, providing text segmentation, sentiment analysis, classification, and POS tagging—fitting the NLP library category, but its Chinese-only focus and absence of explicit NER or multi-language support narrow its fit for a general-purpose framework.

    PythonPart-of-Speech TaggersText ClassificationChinese POS Tagging
    View on GitHub↗6,631
  • stanfordnlp/stanzastanfordnlp avatar

    stanfordnlp/stanza

    7,809View on GitHub↗

    Stanza is a Python natural language processing library designed for tokenization, lemmatization, and dependency parsing across many human languages using neural models. It provides a neural processing pipeline that converts raw text into structured linguistic data objects, alongside a specialized analyzer for extracting medical insights from clinical and biomedical language. The project includes a wrapper that connects Python scripts to Java-based natural language processing tools and remote annotation servers. This enables a bridge for extracting linguistic annotations and analysis data from

    Stanza is a Python NLP library that provides tokenization, POS tagging, NER, and dependency parsing with multilingual pre-trained models, fitting the search for a general-purpose NLP toolkit, though it does not prominently include text classification.

    PythonNamed Entity RecognitionTransformer ModelsWord Stemming
    View on GitHub↗7,809
  • huggingface/transformershuggingface avatar

    huggingface/transformers

    161,630View on GitHub↗

    Transformers is a comprehensive library for machine learning that provides a unified interface for training, fine-tuning, and deploying transformer-based models. It supports a wide range of tasks, including text classification, language modeling, question answering, and sequence-to-sequence translation, while offering specialized architectures for both text and vision processing. The framework includes tools for managing the entire model lifecycle, from data preprocessing and tokenization to distributed training and inference. The library features extensive support for model optimization and

    Transformers is the premier open-source NLP library, offering pre-trained models, tokenization, text classification, named entity recognition, part-of-speech tagging, and multilingual support through a Python API—exactly the general-purpose framework this search requires.

    PythonText Classification
    View on GitHub↗161,630
  • clips/patternclips avatar

    clips/pattern

    8,852View on GitHub↗

    Pattern is a Python web mining library that functions as an HTML web scraper, a natural language processing toolkit, and a network analysis tool. It provides a mathematical framework for categorizing datasets through a vector space model library. The project enables the extraction of structured data from web services and the creation of searchable web content indexes. It processes unstructured text using sentiment analysis, part-of-speech tagging, and n-gram searching. The library covers machine learning classification through the training of models using perceptron algorithms and support ve

    Pattern is a Python library that offers NLP functionality including part-of-speech tagging, sentiment analysis, and text classification, making it a viable toolkit for tasks like text analysis and language understanding, though it does not include pre-trained language models or named entity recognition and is more oriented toward web mining.

    PythonPart-of-Speech TaggersText Tokenization
    View on GitHub↗8,852
  • allenai/allennlpallenai avatar

    allenai/allennlp

    11,889View on GitHub↗

    AllenNLP is a PyTorch-based research library and deep learning language toolkit designed for developing and training neural network architectures for linguistic tasks. It provides a distributed training system that coordinates data and gradients across multiple GPUs and a framework for integrating pretrained transformer architectures. The system distinguishes itself with a dedicated algorithmic bias mitigation tool used to identify and reduce bias in linguistic model predictions. It also includes model influence analysis to interpret predictions by calculating the influence of specific traini

    AllenNLP is a PyTorch-based research library and deep learning toolkit specifically designed for developing and training neural network models for natural language processing tasks, with built-in support for pretrained transformers, text preprocessing, and a range of linguistic tasks like classification and understanding — a comprehensive fit for a general‑purpose NLP library.

    PythonDeep Learning ToolkitsPyTorch-Based FrameworksComponent Registries
    View on GitHub↗11,889
  • bojone/bert4kerasbojone avatar

    bojone/bert4keras

    5,419View on GitHub↗

    bert4keras is a lightweight reimplementation of the BERT transformer architecture for the Keras deep learning framework. It serves as a natural language processing toolkit and transformer model library used for text classification, sequence labeling, and semantic embedding extraction. The framework includes a sequence-to-sequence model system for question answering and text generation, as well as a model inference server to deploy trained transformers as web APIs for real-time predictions. Capabilities cover a broad range of natural language understanding tasks, including reading comprehensi

    bert4keras is a lightweight NLP library built on Keras that provides BERT-based transformer models for text classification, sequence labeling, and natural language understanding, covering the core NLP tasks and Python API integration you’re looking for.

    PythonText ClassificationTransformer Language Models
    View on GitHub↗5,419
  • spencermountain/compromisespencermountain avatar

    spencermountain/compromise

    12,125View on GitHub↗

    Compromise is a natural language processing library and rule-based text parser designed to analyze unstructured text. It functions as a toolkit for identifying parts of speech, linguistic patterns, and semantic meaning, while providing specialized engines for named entity recognition and the parsing of temporal and numeric data. The project is distinguished by its linguistic morphological engine, which can conjugate verbs across different tenses and inflect nouns and adjectives. It further allows for linguistic model customization through a plugin system that enables the extension of lexicons

    Compromise is a JavaScript NLP library for rule-based text parsing, POS tagging, and named entity recognition, making it a genuine NLP framework, though its JavaScript-only API and lack of pre-trained neural models may not fully align with the Python-centric workflow many NLP tasks expect.

    JavaScriptNamed Entity RecognitionPart-of-Speech Taggers
    View on GitHub↗12,125
  • axa-group/nlp.jsaxa-group avatar

    axa-group/nlp.js

    6,574View on GitHub↗

    nlp.js is a JavaScript natural language processing library and development framework used to build natural language understanding engines. It provides a toolkit for creating local machine learning models for intent classification and acts as a multilingual text processor that detects languages and normalizes text across various dialects. The framework distinguishes itself by supporting local execution on both servers and mobile devices, enabling chatbot functionality without an internet connection. It features a specialized system for conversational slot filling to collect mandatory informati

    nlp.js is a JavaScript-based library and framework for building natural language understanding engines, covering intent classification, entity extraction, and multilingual support, but it does not provide a Python API or pre-trained language models, so it only partially aligns with requested features.

    JavaScriptNamed Entity RecognitionText TokenizationWord Stemming
    View on GitHub↗6,574
  • hit-scir/ltpHIT-SCIR avatar

    HIT-SCIR/ltp

    5,253View on GitHub↗

    This is a Chinese natural language processing toolkit providing a suite of tools for word segmentation, part-of-speech tagging, and named entity recognition. It includes a neural dependency parser for analyzing syntactic and semantic relationships between words and a machine learning training suite for creating custom linguistic models using annotated datasets. The toolkit distinguishes itself through its deployment flexibility, offering a dockerized server and a web service interface that exposes processing capabilities via API. It supports the use of pretrained models and allows for the int

    This is a Chinese-focused NLP toolkit with tokenization, POS tagging, NER, and pretrained models, but it lacks text classification and support for multiple languages, so it only partially meets the requirement for a general‑purpose NLP library.

    PythonNamed Entity RecognitionPart-of-Speech Taggers
    View on GitHub↗5,253
  • nlp-compromise/compromisenlp-compromise avatar

    nlp-compromise/compromise

    12,122View on GitHub↗

    Compromise is a natural language processing library and rule-based engine designed for English text manipulation, analysis, and parsing. It provides a toolkit for tokenizing text, identifying parts of speech, and performing linguistic analysis to achieve semantic understanding of unstructured strings. The project distinguishes itself through its ability to programmatically transform grammar, such as modifying verb tenses, noun plurality, and adjective forms. It also functions as a named entity recognizer capable of extracting people, places, organizations, dates, and contact information from

    Compromise is a JavaScript NLP library for English that handles tokenization, POS tagging, NER, and grammar transformation, but it uses rule-based methods rather than pre-trained models, lacks multilingual support, and is not a Python library, so it only partially matches the general-purpose NLP framework you described.

    JavaScriptPart-of-Speech Taggers
    View on GitHub↗12,122
  • facebookresearch/fairseqfacebookresearch avatar

    facebookresearch/fairseq

    32,228View on GitHub↗

    Fairseq is a PyTorch toolkit for sequence-to-sequence modeling, specializing in neural machine translation, automatic speech recognition, and large-scale language model training. It provides a framework for processing and aligning diverse data sources, including text, audio, and video, to support tasks such as speech-to-text conversion and multimodal sequence learning. The project is distinguished by its distributed training capabilities, which utilize parameter sharding, mixed-precision training, and CPU offloading to handle models that exceed single-device memory. It also includes specializ

    Fairseq is an NLP library focused on sequence-to-sequence modeling and large-scale language model training, which fits the general NLP framework category but is more specialized toward translation and speech tasks rather than broad text analysis like NER or POS tagging.

    PythonMultilingual Parameter SharingMultilingual Representation Learners
    View on GitHub↗32,228
  • pytorch/fairseqpytorch avatar

    pytorch/fairseq

    32,228View on GitHub↗

    Fairseq is a deep learning research toolkit and sequence-to-sequence framework built on PyTorch. It provides a system for training and deploying models that map input sequences to output sequences, with a primary focus on neural machine translation and speech recognition. The toolkit allows for the generation of text sequences through search algorithms such as beam search and nucleus sampling. It includes capabilities for producing synthetic parallel training data by translating monolingual text using reverse sequence models. The framework supports large scale model training through multi-de

    Fairseq is a PyTorch-based sequence-to-sequence framework for NLP research with strong support for machine translation and speech, but its focus on seq2seq tasks means it lacks built-in general-purpose tools for text classification, NER, and POS tagging that a broader NLP library would provide.

    PythonSequence To Sequence ModelsSequence-to-Sequence TasksDeep Learning Toolkits
    View on GitHub↗32,228
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
google-research/bert39.9KPythonapache-2.0Jul 23, 2024
nlpchina/ansj_seg6.5KJavaApache-2.0Nov 19, 2023
naturalnode/natural
10.9K
JavaScript
MIT
Feb 22, 2026
stanfordnlp/corenlp10.1KJavaGPL-3.0Jun 3, 2026
flairnlp/flair14.4KPythonNOASSERTIONOct 27, 2025
explosion/spacy33.7KPythonMITMay 19, 2026
deeppavlov/deeppavlov7KPythonApache-2.0Aug 6, 2025
sloria/textblob9.5KPythonmitFeb 16, 2026
nltk/nltk14.6KPythonApache-2.0Jun 11, 2026
hankcs/hanlp36.4KPythonApache-2.0Nov 15, 2025

Related searches

  • NLP, speech and embeddings
  • NLP datasets
  • a toolkit for entity extraction from text
  • a toolkit for text sentiment analysis
  • a library for generating text embeddings
  • an open source alternative to Grammarly
  • a library for topic modeling
  • a toolkit for document chunking and embedding