python
from pydeep import pyhashxx
def ngram_features(text, n=3):
return [text[i:i+n] for i in range(len(text)-n+1)]
def construct_feature_vector(text):
features = ngram_features(text)
feature_vector = {}
for feature in features:
if feature in feature_vector:
feature_vector[feature] += 1
else:
feature_vector[feature] = 1
return feature_vector
pydeep_obj = pyhashxx.PyDeep(64, 8)
def calculate_similarity(text1, text2):
feature_vector1 = construct_feature_vector(text1)
feature_vector2 = construct_feature_vector(text2)
similarity = pydeep_obj.similarity(feature_vector1, feature_vector2)
return similarity
def search_similar_strings(strings, threshold):
similar_strings = []
for string in strings:
similarity = calculate_similarity(query_string, string)
if similarity >= threshold:
similar_strings.append(string)
return similar_strings
threshold = 0.8
similar_strings = search_similar_strings(strings, threshold)
print(similar_strings)