Я столкнулся с такой же ошибкой внутри DockerFile во время сборки, пока изображение было общедоступным. Я сделал небольшую модификацию в файле Docker.
RUN git clone https://github.com/kacole2/express-node-mongo-skeleton.git /www/nodejs
Это было бы потому, что использование синтаксиса git@github.com: ... заканчивается> использованием SSH для клонирования и внутри контейнера закрытый ключ недоступен. Вместо этого вы хотите использовать RUN git clone> https://github.com/edenhill/librdkafka.git .
blockquote>
В основном вам нужно нечеткое сопоставление строк, см.
https://en.wikipedia.org/wiki/Approximate_string_matching
https: //www.datacamp.com/community/tutorials/fuzzy-string-python
На основании этого вы можете проверить, насколько похожи входные данные по сравнению с вашим словарем:
from fuzzywuzzy import fuzz
name = "nick"
tomatch = ["Nick", "ick", "nik", "nic", "nck", "nickey", "njick", "nickk", "nickn"]
for str in tomatch:
ratio = fuzz.ratio(str.lower(), name.lower())
print(ratio)
Этот код выдаст следующий результат:
100
86
86
86
86
80
89
89
89
Вы должны поэкспериментировать с различными коэффициентами и проверить, какие из ваших требований будут пропускать только одну букву
Вам нужно использовать Levenshtein_distance
.
Из того, что я понимаю, вы не смотрите на нечеткое совпадение. (Потому что вы не проголосовали против других ответов). Если вы просто пытаетесь оценить то, что вы указали в своем запросе, вот код. Я поставил некоторые дополнительные условия, где я напечатал соответствующее сообщение. Не стесняйтесь удалять их.
def wordmatch(baseword, wordtoMatch, lengthOfMatch):
lis_of_baseword = list(baseword.lower())
lis_of_wordtoMatch = list(wordtoMatch.lower())
sum = 0
for index_i, i in enumerate(lis_of_wordtoMatch):
for index_j, j in enumerate(lis_of_baseword):
if i in lis_of_baseword:
if i == j and index_i <= index_j:
sum = sum + 1
break
else:
pass
else:
print("word to match has characters which are not in baseword")
return 0
if sum >= lengthOfMatch and len(wordtoMatch) <= len(baseword):
return 1
elif sum >= lengthOfMatch and len(wordtoMatch) > len(baseword):
print("word to match has no of characters more than that of baseword")
return 0
else:
return 0
base = "Nick"
tomatch = ["Nick", "ick", "nik", "nic", "nck", "nickey","njick","nickk","nickn"]
wordlength_match = 3 # this says how many words to match in the base word. In your case, its 3
for t_word in tomatch:
print(wordmatch(base,t_word,wordlength_match))
результат выглядит следующим образом
1
1
1
1
1
word to match has characters which are not in baseword
0
word to match has characters which are not in baseword
0
word to match has no of characters more than that of baseword
0
word to match has no of characters more than that of baseword
0
Дайте мне знать, послужило ли это вашей цели.