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

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
facebook avatar

facebook/duckling

0
View on GitHub↗
4,292 stars·737 forks·Haskell·3 views

Duckling

Duckling is a deterministic named entity recognizer and natural language entity extractor. It transforms unstructured text into machine-readable data by mapping language-specific input strings to universal structured formats.

The system utilizes a rule-based engine and composable language rules to resolve entities without relying on probabilistic models. It supports multilingual text parsing across various regional locales, employing a logic-driven approach to normalize diverse natural language expressions into standardized numeric values.

The project covers the extraction and normalization of dates, times, durations, distances, monetary values, temperatures, and quantities. It also recognizes contact information such as email addresses, phone numbers, URLs, and credit card numbers.

Users can extend the system by defining custom dimensions and extraction rules to identify domain-specific information.

Features

  • Entity and Relation Extraction - Provides a deterministic system for identifying and extracting named entities from unstructured text.
  • Natural Language Entity Extraction - Provides a deterministic engine for extracting structured entities like dates, numbers, and currencies from natural language text.
  • Custom Entity Recognizers - Allows for the definition of domain-specific entity detection rules via composable language rules and configurations.
  • Multilingual Text Processors - Supports extraction of structured information across various regional locales and different languages.
  • Named Entity Recognition - Identifies and classifies entities in unstructured text using predefined linguistic patterns and regular expressions.
  • Natural Language Date Parsing - Parses complex natural language date and time expressions into structured machine-readable formats.
  • Currency Value Extraction - Identifies currency symbols and spelled-out money amounts to extract structured financial values from text.
  • Numerical Value Extraction - Converts written numerals, fractions, and quantities of weight or volume into standardized numeric values.
  • Natural Language Value Normalization - Normalizes diverse natural language expressions of time, distance, and currency into standardized numeric formats.
  • Rule-Based Text Parsers - Employs rule-based text parsers to tokenize and tag text based on predefined linguistic grammars.
  • Text-to-Numeric Normalizers - Converts diverse natural language expressions of time and measurement into standardized numeric values.
  • Document and Unstructured Extraction - Parses unstructured natural language strings into machine-readable formats.
  • Date and Time Libraries - Parses natural language expressions of dates, times, and holidays into structured formats.
  • Deterministic Linguistic Resolution - Employs a logic-driven, rule-based engine to resolve complex entities without relying on probabilistic models.
  • Deterministic Entity Parsers - Provides a logic-driven parser that transforms natural language expressions into standardized units of measurement, currency, and time.
  • Locale Resolution - Resolves the active language and locale to map input strings to universal structured formats.
  • Context-Aware State Engines - Maintains internal variables and state to drive context-dependent behavior when parsing textual environments.
  • Locale Mapping Rules - Maps language-specific strings to universal structured formats using locale-specific rule sets.
  • Rule-Based Pattern Matching - Compares input strings against predefined linguistic and regular expression patterns to identify entities.
  • Parsing Contexts - Uses runtime parsing contexts and state tracking to resolve ambiguous natural language expressions.
  • Custom Entity Dimensions - Allows users to update rules and classifiers to add support for new entity types and locales.
  • Contact Information Extraction - Recognizes and structures common patterns for email addresses, phone numbers, URLs, and credit card numbers.
  • User-Defined Entities - Enables the creation of user-defined data types and extraction rules for domain-specific information.
  • Customizable Extraction Rules - Provides customizable extraction rules using regex patterns and production functions for new locales.
  • Physical Distance and Duration Extraction - Provides the ability to translate natural language descriptions of time spans and physical lengths into standardized units.
  • Extraction Dimension Modules - Implements a modular architecture that organizes extraction logic into independent dimensions to resolve complex entities.
  • Extraction Logic Compositions - Organizes extraction rules into independent modular dimensions that combine to resolve complex entities.
  • Natural Language Expression Decomposition - Breaks down complex phrases into smaller components to resolve nested entities like durations and dates.
  • Natural Language Temperature Extraction - Extracts temperature readings and intervals expressed in various scales and natural language formats.

Star history

Star history chart for facebook/ducklingStar history chart for facebook/duckling

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Duckling

Similar open-source projects, ranked by how many features they share with Duckling.
  • 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

    JavaScriptbotbotschatbot
    View on GitHub↗6,574
  • loadfive/knwl.jsloadfive avatar

    loadfive/Knwl.js

    5,260View on GitHub↗

    Knwl.js is a JavaScript named entity recognition library and rule-based text parser. It serves as an extensible information extraction tool designed to identify and pull structured entities, such as dates, times, and locations, from unstructured text strings. The library allows for the definition of specialized rules and custom plugins to identify and extract unique pieces of information. This extensibility enables the automation of information retrieval by converting human-readable text into structured formats for applications and databases. The system utilizes regular expression matching a

    JavaScript
    View on GitHub↗5,260
  • dongrixinyu/jionlpdongrixinyu avatar

    dongrixinyu/JioNLP

    3,847View on GitHub↗

    JioNLP is a Chinese natural language processing toolkit designed for cleaning, normalizing, and extracting structured information from unstructured text. It functions as a linguistic analyzer for Chinese characters and a rule-based named entity extractor, providing a specialized system for sentiment scoring and synthetic data generation for machine learning workflows. The project features a lexicon-based sentiment analysis engine that computes numerical emotional tone scores and a data augmentation library that uses back-translation and synonym replacement to expand training datasets. It incl

    Python
    View on GitHub↗3,847
  • benhmoore/knwl.jsbenhmoore avatar

    benhmoore/Knwl.js

    5,259View on GitHub↗

    Knwl.js is a JavaScript named entity recognition library and text entity extractor. It functions as an extensible text parsing engine designed to scan unstructured strings for specific data patterns and convert them into structured information. The engine utilizes a modular framework that allows for the recognition of custom data types. This is achieved through a plugin system for language pattern matching, enabling the integration of custom logic to identify unique data types within text. The library identifies and isolates entities such as dates, times, phone numbers, emails, and locations

    JavaScript
    View on GitHub↗5,259
See all 30 alternatives to Duckling→

Frequently asked questions

What does facebook/duckling do?

Duckling is a deterministic named entity recognizer and natural language entity extractor. It transforms unstructured text into machine-readable data by mapping language-specific input strings to universal structured formats.

What are the main features of facebook/duckling?

The main features of facebook/duckling are: Entity and Relation Extraction, Natural Language Entity Extraction, Custom Entity Recognizers, Multilingual Text Processors, Named Entity Recognition, Natural Language Date Parsing, Currency Value Extraction, Numerical Value Extraction.

What are some open-source alternatives to facebook/duckling?

Open-source alternatives to facebook/duckling include: axa-group/nlp.js — nlp.js is a JavaScript natural language processing library and development framework used to build natural language… loadfive/knwl.js — Knwl.js is a JavaScript named entity recognition library and rule-based text parser. It serves as an extensible… dongrixinyu/jionlp — JioNLP is a Chinese natural language processing toolkit designed for cleaning, normalizing, and extracting structured… benhmoore/knwl.js — Knwl.js is a JavaScript named entity recognition library and text entity extractor. It functions as an extensible text… yuanxiaosc/entity-relation-extraction — Entity-Relation-Extraction is a machine learning framework designed to identify entities and their logical connections… qq547276542/agriculture_knowledgegraph — Agriculture Knowledge Graph is a structured triple-store system and decision support platform designed to transform…