30 open-source projects similar to facebook/duckling, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Duckling alternative.
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
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
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
Named entity recognition is a natural language processing library that implements statistical and neural sequence labeling models to extract entities from text. The toolkit provides implementations for hidden Markov models, conditional random fields, and bidirectional recurrent neural networks combined with conditional random field layers. The library supports training machine learning models on annotated training corpora using maximum likelihood estimation for parameter and transition structure estimation. It includes ensemble majority voting consensus strategies to combine independent outpu
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
Entity-Relation-Extraction is a machine learning framework designed to identify entities and their logical connections within unstructured text. It functions as a pipeline that transforms raw documents into structured knowledge graphs by utilizing deep learning models and transformer architectures. The project distinguishes itself through a schema-driven approach, which maps extracted information to predefined relational templates to ensure output consistency. It employs a multi-stage process that combines sequence-labeling token classification with contextual encoding to delineate entity bou
Agriculture Knowledge Graph is a structured triple-store system and decision support platform designed to transform raw agricultural documents into a machine-readable graph. It functions as a domain information retrieval system that extracts and queries agricultural data to provide intelligent answers and planning support. The project implements a full pipeline for knowledge graph construction, featuring a relation extraction framework and named entity recognition tools. It utilizes remote supervision and machine learning to identify and classify relationships between entities, converting uns
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
DeepKE is a knowledge extraction toolkit and framework designed to transform unstructured text into structured knowledge graphs. It provides a pipeline for identifying and classifying named entities, semantic relations, and events, converting raw datasets into structured triples. The project utilizes large language models as tool callers through a standardized context protocol to drive automated data extraction processes. It supports schema-driven extraction across multiple domains and bilingual text, employing joint entity and relation extraction to identify components in a single structured
docetl is an AI-powered document ETL tool and map-reduce orchestrator designed to transform large collections of unstructured documents into structured, queryable tables using language models. It provides a declarative pipeline framework for extracting, cleaning, and transforming data from sources such as PDFs and text files into predefined schemas. The project distinguishes itself through a semantic data integration suite that enables joining datasets and resolving duplicate entities based on embedding-based similarity. It includes an interactive prompt playground for developing and optimizi
KnowledgeGraphData is a collection of structured datasets and corpora designed to provide a foundational layer for cognitive intelligence and artificial intelligence systems. It primarily consists of large-scale Chinese knowledge graph datasets, including entity-relation data and NLP training sets used to drive semantic understanding and automated question answering. The project focuses on the construction and export of massive entity-attribute-value graphs, organizing knowledge into portable formats. It provides specialized domain partitioning to tailor information retrieval for professional
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
snips-nlu is a Python library and natural language understanding engine designed to convert unstructured text into structured data. It identifies user intents and extracts associated entities from natural language sentences to enable machine-readable command processing. The engine functions as a multilingual parser capable of processing text across multiple languages. It maps identified entities to canonical values or standardized ISO formats, such as timestamps, to ensure data consistency. The project covers intent classification and named entity recognition, utilizing sequence labeling and
Tika is a content analysis toolkit and Java library designed for detecting and extracting metadata and text from thousands of different file types. It functions as a universal document text extractor and metadata extraction engine, converting complex files into plain text or XHTML. The system employs a specialized MIME type detector that identifies document formats using magic bytes and metadata to determine the correct parser. It serves as an OCR integration gateway, connecting to external text recognition tools to extract content from image files. The project covers a broad range of extrac
Chumsky is a parser combinator library used to build high-performance parsers by composing small parsing functions into complex grammars. It provides multiple parsing engines, including recursive descent and precedence-climbing implementations for resolving the order of operations in mathematical and logical expressions. The library is distinguished by its zero-copy text parsing, which minimizes memory allocations to increase throughput, and its ability to run without a standard library for use in embedded or resource-constrained environments. It also features an error-recovering parser that
OpenNRE is a natural language processing library and neural relation extraction framework designed to transform unstructured text into structured relational data. It serves as a toolkit for identifying relationship types between entities and generating entity-relation-entity triples to populate and expand knowledge bases. The framework provides tools for both supervised and distantly supervised relation extraction, allowing neural models to be trained on labeled datasets or via automated pipelines that align knowledge base triples with raw text. The project covers a full information extracti
Moment is a JavaScript date manipulation library used for parsing, validating, manipulating, and formatting dates and times. It provides a system for converting date strings into structured objects using the ISO 8601 standard or custom tokens. The library includes a timezone management tool for handling UTC offsets and geographic timezones, ensuring accurate date calculations across different regions. It features an internationalized date formatter and a relative time calculator to render timestamps as human-friendly durations adapted to various cultural locales and languages. The project co
Day.js is a lightweight utility for parsing, validating, and manipulating date objects. It provides a fluent, chainable interface that allows for complex time calculations and transformations to be performed through a sequence of readable method calls. By utilizing an immutable wrapper pattern, the library ensures data integrity by creating new instances for every operation rather than modifying existing objects. The project is distinguished by a minimalist core abstraction that maintains a small footprint by offloading non-essential features to an optional, modular plugin system. This archit
Pendulum is a Python datetime library used for creating, manipulating, and formatting date and time objects with native timezone awareness. It extends the native Python datetime class to maintain compatibility while providing a specialized engine for date arithmetic and timezone management. The library features a dedicated ISO 8601 and RFC 3339 parser that converts standardized strings into date objects without requiring manual format strings. It also includes a relative time generator for producing natural language descriptions of time differences and a timezone management tool that automati
DateTools is a date manipulation library for iOS applications that provides utilities for date arithmetic, range management, and relative time formatting. It functions as a set of tools to shift dates by specific units, calculate durations between timestamps, and convert dates into localized, human-readable strings. The library specializes in the analysis of time spans, offering systems to define, compare, and organize overlapping or sequential time periods. It includes logic to determine chronological relationships, such as whether dates fall within specific windows or how different time per
This project is a comprehensive date and time library designed for parsing, formatting, and calculating dates and times with high precision. It provides a multi-calendar system implementation that supports conversions between proleptic Gregorian, Julian, ISO week, and Tabular Islamic calendars. The library is distinguished by its high-precision time clocks and its implementation of the IANA time zone database. It tracks physical time using UTC, TAI, and GPS clocks to account for leap seconds and provides a system for managing geographic time zones and offsets based on IANA data. The capabili
Arrow is a Python date and time library that provides a simplified interface for creating and manipulating timestamps by wrapping the Python standard library. It serves as a tool for managing date objects, handling timezone offsets, and performing relative date calculations. The library is distinguished by its ability to humanize timestamps into natural language relative descriptions across multiple locales and parse human-readable time phrases back into precise date objects. It also features a specialized parser for converting ISO 8601 strings and custom formatted text into date objects. Br
Luxon is a JavaScript library for parsing, validating, manipulating, and formatting dates and times. It provides a suite of immutable objects for managing points in time, durations, and intervals, ensuring that all transformations return new instances to maintain predictable state. The library distinguishes itself by leveraging the native Internationalization API and environment-based time zone databases. This architecture allows for localized date formatting and global time zone conversions without requiring external data files or additional dependencies. It also supports non-Gregorian calen
Ai-chatbot-framework is a conversational AI platform designed for building, training, and managing virtual assistants. It features a natural language processing engine that recognizes user intents and extracts named entities using machine learning models and word embeddings to drive dialogues. The platform supports end-to-end agent development lifecycles alongside visual scenario authoring interfaces for creating and configuring conversation flows. The platform includes stateful multi-turn session stores that preserve contextual history across exchanges, as well as a modular tool execution en
This project is a named entity recognition framework and TensorFlow-based natural language processing model. It provides a pipeline for adapting pre-trained language models to specific entity recognition and text classification tasks. The system implements a sequence labeling architecture that combines transformer-based embeddings with bidirectional sequence modeling and conditional random field decoding. It includes tools for fine-tuning model weights and training the network to identify and categorize entities within unstructured text. The framework also includes a client-server architectu
Chrono is a Rust date and time library used for managing calendar dates, clock times, and timezone conversions. It functions as a high-precision timestamp tool and temporal data serializer for converting date and time objects into structured formats. The library includes a timezone conversion engine to translate timestamps between different geographical zones and manage local time configurations. Its broader capabilities cover date string formatting, high-precision timing, and the serialization of temporal data for database storage or network transmission.
Carbon is a date and time manipulation library for PHP that extends the native DateTime class. It provides a set of tools for calculating, formatting, and comparing dates and times using a simplified, human-readable syntax. The library utilizes a fluent interface and static factory methods to allow for chained method calls and intuitive object instantiation. It supports both mutable and immutable state options to manage how date objects are modified and returned. The toolset covers temporal data management, including time zone handling and localization-based formatting to convert date compon
Tempo is a JavaScript date manipulation library that provides a suite of tools for parsing, formatting, and calculating dates and times. It serves as a date arithmetic engine, a locale-aware formatter, and a timezone offset manager for native JavaScript date objects. The library includes a dedicated ISO 8601 date parser for validating and converting standardized strings into date objects. It handles geographic normalization through IANA timezone offset management and utilizes the native Internationalization API for region-specific date formatting. The project covers a broad range of date and
nano-graphrag is a retrieval system that uses knowledge graphs to provide structured context for large language model responses. It functions as a knowledge graph indexer that transforms unstructured text into a network of entities and relationships, as well as a hybrid graph retrieval system. The project differentiates itself by combining local neighborhood searches with global community summaries to answer complex natural language questions. It includes a knowledge graph visualizer that generates HTML representations of entities and their relationships to map indexed knowledge. The framewo
Arrow is a Python date and time library designed for parsing, formatting, and manipulating date and time objects. It provides a simplified interface for these operations compared to the Python standard library. The library includes tools for converting standardized date strings via an ISO 8601 parser and transforming timestamps into human-readable relative strings across different locales. It also features a utility for translating timestamps between global timezones using location data objects. Additional capabilities cover date string formatting, time object generation, and the calculation