# -*- 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):