Bikarhêner:Şêr/navber.py
# -*- coding: utf-8 -*-
def levenshtein_distance(word1, word2):
if len(word1) > len(word2):
word1, word2 = word2, word1
distances = range(len(word1) + 1)
for index2, char2 in enumerate(word2):
new_distances = [index2 + 1]
for index1, char1 in enumerate(word1):
if char1 == char2:
new_distances.append(distances[index1])
else:
new_distances.append(1 + min((distances[index1], distances[index1 + 1], new_distances[-1])))
distances = new_distances
return distances[-1]
def load_words_from_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
words = [line.strip() for line in file]
return words
def spellchecker(input_word, word_list):
suggestions = sorted(word_list, key=lambda word: levenshtein_distance(input_word, word))
return suggestions
def main():
# Laden Sie die Wörter aus der Datei
file_path = 'kurdische_worter.txt'
kurdische_woerter = load_words_from_file(file_path)
while True:
user_input = input("Geben Sie ein kurdisches Wort ein (oder 'exit' zum Beenden): ")
if user_input.lower() == 'exit':
break
suggestions = spellchecker(user_input, kurdische_woerter)[:20] # Begrenzen Sie auf die ersten 20 Vorschläge
print(f"Vorschläge für '{user_input}': {suggestions}")
if __name__ == "__main__":
main()
--> encam: runfile('C:/Users/xxx/.spyder-py3/distanz.py', wdir='C:/Users/xxx/.spyder-py3') Geben Sie ein kurdisches Wort ein (oder 'exit' zum Beenden): deng Vorschläge für 'deng': ['deng', 'reng', 'ceng', 'çeng', 'heng', 'den', 'derg', 'denq', 'ding', 'şeng', 'dang', 'deg', 'denk', 'meng', 'veng', 'zeng', 'dest', 'dem', 'yen', 'deşt'] Geben Sie ein kurdisches Wort ein (oder 'exit' zum Beenden):