ukkonen - Ukkonen's Approximate String Matching algorithm

  •        30

This project implements the Approximate String Matching algorithm by Esko Ukkonen extended with ideas from An Extension of Ukkonen's Enhanced Dynamic Programming ASM Algorith by Hal Berghel and David Roach. Ukkonen's algorithm is very competitive with the Levenshtein distance and for longer strings it is much more performant than Levenshtein distance.

https://github.com/sunesimonsen/ukkonen

Tags
Implementation
License
Platform

   




Related Projects

fast-levenshtein - Efficient Javascript implementation of Levenshtein algorithm with locale-specific collator support

  •    Javascript

An efficient Javascript implementation of the Levenshtein algorithm with locale-specific collator support. If you are not using any module loader system then the API will then be accessible via the window.Levenshtein object.

SymSpell - 1 million times faster through Symmetric Delete spelling correction algorithm

  •    CSharp

Spelling correction & Fuzzy search: 1 million times faster through Symmetric Delete spelling correction algorithm The Symmetric Delete spelling correction algorithm reduces the complexity of edit candidate generation and dictionary lookup for a given Damerau-Levenshtein distance. It is six orders of magnitude faster (than the standard approach with deletes + transposes + replaces + inserts) and language independent.

python-Levenshtein - The Levenshtein Python C extension module contains functions for fast computation of Levenshtein distance and string similarity

  •    C

I (Mikko Ohtamaa) am not currently maintaining this code. I just pulled in to Github for general good (was not available in public repo before). So if you file any issues I won't be looking into them.It supports both normal and Unicode strings.


Levenshtein - Javascript implementation of the L-diggity.

  •    Javascript

Levenshtein string difference in Javascript. Levenshtein works in both the browser and node.js.

string_score - JavaScript string ranking 0 for no match upto 1 for perfect

  •    Javascript

Simply include one of the string score JavaScript files and call the .score() method on any string. ** IE 7 fails (stop running this script message) with 4000 iterations of the benchmark test. All other browsers tested survived this test, and in fact survive a larger number of iterations. The benchmark that is causing IE to choke is: 4000 iterations of 446 character string scoring a 70 character match.

fuzzywuzzy - Fuzzy String Matching in Python

  •    Python

Fuzzy string matching like a boss. It uses Levenshtein Distance to calculate the differences between sequences in a simple-to-use package.

vhost - virtual domain hosting

  •    Javascript

Create a new middleware function to hand off request to handle when the incoming host for the request matches hostname. The function is called as handle(req, res, next), like a standard middleware. hostname can be a string or a RegExp object. When hostname is a string it can contain * to match 1 or more characters in that section of the hostname. When hostname is a RegExp, it will be forced to case-insensitive (since hostnames are) and will be forced to match based on the start and end of the hostname.

regexp-examples - Generate strings that match a given regular expression

  •    Ruby

Regexp#examples generates a list of all* strings that will match the given regular expression. Regexp#random_example returns one, random string (from all possible strings!!) that matches the regex.

StringDefs

  •    

C# and VB.NET are great languages but they lack the highly abstracted string processing routines. Other contemporary scripting languages like perl, python has good support for string processing. StringDefs allows developers to write powerful string processing in .NET.

asm-dom - A minimal WebAssembly virtual DOM to build C++ SPA (Single page applications)

  •    C++

asm-dom is a minimal WebAssembly virtual DOM to build C++ SPA (Single page applications). You can write an entire SPA in C++ and compile it to WebAssembly (or asmjs as fallback) using Emscripten, asm-dom will call DOM APIs for you. This will produce an app that aims to execute at native speed by taking advantage of common hardware capabilities, also, you can use your C/C++ code without any change, you haven't to create a binding layer to use it (as we have to do if we want to use a C++ lib from JS). Basically we are creating an app in C++ that call javascript if needed instead of the opposite. You can write only once in C++ and share as much code as possible with desktop/mobile apps and web site. If you want to learn more about performance, please see this. asm-dom is a low-level virtual DOM library. It is unopinionated with regards to how you should structure your application.

hal-browser - An API browser for the hal+json media type

  •    Javascript

More detail about HAL can be found at http://stateless.co/hal_specification.html. By default, the HAL Browser can’t assume there is any metadata. When you click on the non-GET request button (to create a new resource), the user must enter the JSON document to submit. If your service includes metadata you can access, it’s possible to plugin a custom view that makes use of it.

url-pattern - easier than regex string matching patterns for urls and other strings

  •    CoffeeScript

easier than regex string matching patterns for urls and other strings. turn strings into data or data into strings.a pattern is immutable after construction. none of its methods changes its state. that makes it easier to reason about.

learn-regex - Learn regex the easy way

  •    

Regular expression is a group of characters or symbols which is used to find a specific pattern from a text. A regular expression is a pattern that is matched against a subject string from left to right. The word "Regular expression" is a mouthful, you will usually find the term abbreviated as "regex" or "regexp". Regular expression is used for replacing a text within a string, validating form, extract a substring from a string based upon a pattern match, and so much more.

learn-regex - Learn regex the easy way

  •    

Regular expression is a group of characters or symbols which is used to find a specific pattern from a text. A regular expression is a pattern that is matched against a subject string from left to right. The word "Regular expression" is a mouthful, you will usually find the term abbreviated as "regex" or "regexp". Regular expression is used for replacing a text within a string, validating form, extract a substring from a string based upon a pattern match, and so much more.

fuzzysearch - :pig: Tiny and fast fuzzy search in Go

  •    Go

Inspired by bevacqua/fuzzysearch, a fuzzy matching library written in JavaScript. But contains some extras like ranking using Levenshtein distance (see RankMatch()) and finding matches in a list of words (see Find()). Fuzzy searching allows for flexibly matching a string with partial input, useful for filtering data very quickly based on lightweight user input.

fuzzysearch - :pig: Tiny and fast fuzzy search in Go

  •    Go

Inspired by bevacqua/fuzzysearch, a fuzzy matching library written in JavaScript. But contains some extras like ranking using Levenshtein distance (see RankMatch()) and finding matches in a list of words (see Find()). Fuzzy searching allows for flexibly matching a string with partial input, useful for filtering data very quickly based on lightweight user input.

natural - general natural language facilities for node

  •    Javascript

"Natural" is a general natural language facility for nodejs. Tokenizing, stemming, classification, phonetics, tf-idf, WordNet, string similarity, and some inflections are currently supported.

textdistance - Compute distance between sequences

  •    Python

TextDistance -- python library for comparing distance between two or more sequences by many algorithms. Work in progress. Now all algorithms compare two strings as array of bits.





We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.