расспознование sklearn
я пытаюсь написать своего голосового ассистента. Из за того, что отсутствие команд он воспринимает как рандомную команду пришлось ввести порог совпадения, но теперь он не расспознаёт часть команд. например у меня есть команда 'спать'. небольшая вставка из data_set
data_set = {
'выключи компьютер': 'offpc отключаю компьютер',
'спать': 'offBot пока, пока',
'как у тебя дела':'passive работаю в фоне, не переживай'
}
и когда я запускаю ассистента и говорю 'Кеша спать' он не расспознаёт команду небольшая вставка из терминала выполнения команды
Привет, Кеша слушает
[Log] кешью спать
Я векторизую слово: спать
Получился вектор:
<Compressed Sparse Row sparse matrix of dtype 'int64'
with 1 stored elements and shape (1, 44)>
Coords Values
(0, 31) 1
Максимальная совместимость: 0.0934204648390774
Вот кусок кода, который это выводит:
data = data.split()
filtered_data = [word for word in data if word not in words.TRIGGERS]
data = ' '.join(filtered_data)
print("Я векторизую слово: " + data)
# получаем вектор полученного текста
# сравниваем с вариантами, получая наиболее подходящий ответ
# Преобразование команды пользователя в числовой вектор
user_command_vector = vectorizer.transform([data])
print("Получился вектор:")
print(user_command_vector)
# Предсказание вероятностей принадлежности к каждому классу
predicted_probabilities = clf.predict_proba(user_command_vector)
# Задание порога совпадения
threshold = 0.1
# Поиск наибольшей вероятности и выбор ответа, если он превышает порог
max_probability = max(predicted_probabilities[0])
print("Максимальная совместимость: " + str(max_probability))
if max_probability >= threshold:
answer = clf.classes_[predicted_probabilities[0].argmax()]
else:
speak("Команда не распознана")
return