Fuzzy String Matching -- Approximate Text Similarity

maschere - Code Plugins - Jun 16, 2022

Calculate how similar two strings / texts are by using several established string distance computation methods.

  • Supported Platforms
  • Supported Engine Versions
    4.26 - 4.27, 5.0 - 5.1
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.

How similar are the words "Hello" and "Hallo"? By editing 1 of the 5 letters ("e" to "a") you get the same string. That's a similarity of 80% according to the Levenshtein Edit Distance. Use this and other scientific string similarity methods to quickly match or validate strings approximately.

FuzzyString function library enables you to

  • automatically fix user typos
  • build a robust text search (e.g., for tech trees, unlocks or shop system)
  • filter in-game chat

Tutorial & Documentation | Support Forum


Changelog:

2022-12-11: UE 5.1 compatibility update.

2022-09-22: Fixed critical crash under UE4.26 and UE4.27 (UE5.0 was not affected). Pease update if you installed it before.

Technical Details

Features:

  •  Easy calculation of fuzzy string similarity in C++ or Blueprints
  •  Six scientifically established string distance methods: Levenshtein Edit Distance, Optimal Alignment, Token Set, Token Sort, Weighted Ratio and Longest Common Substring
  •  Plug and Play, with no setup
  • Works in any Blueprints
  • Comprehensive documentation
  • All C++ code is fully documented and source-open

Code Modules:

  •  FuzzyStringLibrary (Runtime)

Number of Blueprints: 1

Number of C++ Classes: 2

Network Replicated: N/A

Supported Development Platforms: Windows, Mac

Supported Target Build Platforms: Windows, Mac

Documentation: https://maschere.github.io/asset-documentation/fuzzy-string/

Example Project: Demo widget and demo level included in plugin content folder.

Important/Additional Notes: This plugin is partially based on the excellent, MIT licensed rapidfuzz-cpp library.