20 SimilarStrings(std::string reference,
double similarityFactor = 0.6,
bool caseSensitive =
true);
25 bool isSimilar(std::string
const&
string)
const;
31 bool add(std::string
const&
string);
36 std::vector<std::string>
toList()
const;
45 std::string reference;
46 double similarityFactor;
50 bool operator()(std::pair<uint64_t, std::string>
const& lhs, std::pair<uint64_t, std::string>
const& rhs)
const {
51 return lhs.first < rhs.first ? true : (lhs.first == rhs.first && lhs.second < rhs.second);
54 std::set<std::pair<uint64_t, std::string>, comp> distances;
60uint64_t
levenshteinDistance(std::string
const& lhs, std::string
const& rhs,
bool caseSensitive =
true);
bool add(std::string const &string)
Adds the given string to the set of similar strings (if it is similar)
std::string toDidYouMeanString() const
Returns a "Did you mean abc?" string.
bool isSimilar(std::string const &string) const
std::vector< std::string > toList() const
Gets a list of all added strings that are similar to the reference string.
uint64_t levenshteinDistance(std::string const &lhs, std::string const &rhs, bool caseSensitive)
Levenstein distance to find similar strings.