• TypeError: unhashable type: 'list' как исправить?

    @Elisey05 Автор вопроса
    Andy_U,
    import json
    import pickle
    import random
    from codecs import StreamReaderWriter
    from typing import Any, Union, List
    
    import numpy as np
    
    import nltk
    import self as self
    
    lemmatizer = nltk.WordNetLemmatizer()
    nltk.download('punkt')
    nltk.download('wordnet')
    from nltk.stem import WordNetLemmatizer
    
    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense, Activation, Dropout
    from tensorflow.keras.optimizers import SGD
    
    
    
    import codecs
    
    intents: Union[StreamReaderWriter, Any]
    with codecs.open('intents.json', encoding='utf-8') as intents:
        intents = json.load(intents)
        # intents = json.loads(open('intents.json').read())
        # for line in f:
        # print(line)
        words = []
        classes = []
        documents = []
    ignore_letters = ['?', '!', '.', ',']
    
    for intent in intents['intents']:
        for pattern in intent['patterns']:
            word_list = nltk.word_tokenize(pattern)
            words.append(word_list)
            documents.append((word_list, intent['tag']))
            if intent['tag'] not in classes:
                classes.append(intent['tag'])
    
    
    
    
    lemmatizer = WordNetLemmatizer
    
    words = [lemmatizer.lemmatize(self, word) for word in words if word not in ignore_letters]
    words = sorted(set(words))
    classes = sorted(set(classes))
    
    pickle.dump(words, open('words.pkl', 'wb'))
    pickle.dump(words, open('classes.pkl', 'wb'))
    
    training = []
    output_empty = [0] * len(classes)
    
    for document in documents:
        bag = []
        word_patterns = document[0]
        word_patterns = [lemmatizer.lemmatize(word.lower()) for word in word_patterns]
        for word in words:
            bag.append(1) if word in word_patterns else bag.append(0)
    
        output_row = list(output_empty)
        output_row[classes.index(document[1])] = 1
        training.append([bag, output_row])
    
    random.shuffle(training)
    training = np.array(training)
    
    train_x = list(training[:, 0])
    train_y = list(training[:, 1])
    
    model = Sequential()
    model.add(Dense(128, input_shape=(len(train_x[0]),), activation='relu'))
    model.add(Dropout(0.5))
    model.add(Dense(64, activation='relu'))
    model.add(Dropout(0.5))
    model.add(Dense(len(train_y[0]), activation='softmax'))
    
    sgd = SGD(lr=0.01, decay=1e-6, momentum=0/9, nesterov=True)
    model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
    
    model.fit(np.aray(train_x), np.array(train_y), epochs=200, batch_size=5,verbose=1)
    model.save('chatbot_model.model')
    print("Done")
  • TypeError: unhashable type: 'list' как исправить?

    @Elisey05 Автор вопроса
    Andy_U, прошу извинить,сейчас приложу полный текст кода
  • TypeError: unhashable type: 'list' как исправить?

    @Elisey05 Автор вопроса
    Помогите пожалуйста с кодом. Буду очень признателен, так как пока что я новичок...
  • 'StreamReaderWriter' object is not subscriptable как исправить?

    @Elisey05 Автор вопроса
    alexbprofit, обернул. Спасибо ,что сказали)