Уведомления

Группа в Telegram: @pythonsu

#1 Июль 9, 2023 01:09:33

altek7
Зарегистрирован: 2023-07-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

локальный чат бот

как улучшить этот код ?

import random
# Функция для чтения фраз из файла и создания базы данных
def read_phrases_from_file(file_name):
database =
with open(file_name, “r”, encoding=“utf-8”) as file:
for line in file:
# Разделение фразы на слова
words = line.strip().split()
database.append(words)
return database

# Функция, которая ищет наиболее похожую фразу на основе слов в запросе
def search_response(message, database):
# Разделение запроса на слова
query_words = message.strip().split()
# Переменная для хранения наибольшего количества похожих слов
max_similar_words = 0
# Переменная для хранения наиболее похожей фразы
most_similar_phrase = “”

for words in database:
# Поиск похожих слов в каждой фразе
similar_words = len(set(words) & set(query_words))
if similar_words > max_similar_words:
max_similar_words = similar_words
most_similar_phrase = “ ”.join(words)

# Проверка, была ли найденная фраза уже в диалоге
while most_similar_phrase in database:
most_similar_phrase = random.choice(database)

if most_similar_phrase:
return most_similar_phrase
else:
return “Извините, я не понимаю вас.”

# Чтение фраз из файла и создание базы данных
database = read_phrases_from_file(“бтт.txt”)

# Основной цикл программы
while True:
user_input = input(“Вы: ”)
response = search_response(user_input, database)
print(“Бот:”, response)

# Сохранение фразы пользователя в файл и базе данных
with open(“бтт.txt”, ‘a’, encoding='utf-8') as file:
file.write('\n' + user_input)
database.append(user_input.strip().split())

Прикреплённый файлы:
attachment бот сим2.py (2,1 KБ)

Офлайн

#2 Июль 9, 2023 13:51:03

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9798
Репутация: +  849  -
Профиль   Отправить e-mail  

локальный чат бот

altek7
как улучшить этот код ?
Всё должно быть в функциях.

Функция должна либо возвращать что-то осмысленное, либо возвращать None. И дальше этот None обрабатывается в месте вызова функции.

altek7
  
return "Извините, я не понимаю вас."
Если человек введёт именно эту фразу и она попадёт в базу данных, как ты отличишь наличие этой фразы в базе данных от отсутствия фразы в базе данных?



Отредактировано py.user.next (Июль 9, 2023 13:56:04)

Офлайн

#3 Июль 9, 2023 23:58:10

altek7
Зарегистрирован: 2023-07-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

#4 Июль 12, 2023 16:39:31

altek7
Зарегистрирован: 2023-07-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

локальный чат бот

import random

def search_phrase(keywords, file_path):
result = set() # Используем множество для сохранения уникальных фраз
with open(file_path, ‘r’, encoding='utf-8') as file:
for line in file:
phrase = line.strip()
if any(keyword in phrase for keyword in keywords):
result.add(phrase) # Добавляем уникальную фразу в множество
if len(result) >= 60: # Ограничение числа фраз поиска
break
return list(result) # Преобразуем множество обратно в список

file_path = ‘дтт.txt’

while True:
query = input(“Вы: ”)
keywords = query.strip().split()

found_phrases = search_phrase(keywords, file_path)
if found_phrases:
random_phrase = random.choice(found_phrases) # Случайная фраза из найденных
print(random_phrase)
else:
print(“.. я не нашёл нужной фразы”)

# Запись новой фразы в базу
with open(file_path, ‘a’, encoding='utf-8') as file:
file.write('\n' + query)

Прикреплённый файлы:
attachment бот 1а.py (1,2 KБ)

Офлайн

#5 Июль 12, 2023 16:55:56

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1338
Репутация: +  116  -
Профиль   Отправить e-mail  

локальный чат бот

[code python]между этими тегами вставлять код, для отображения с отступами[/code]

Офлайн

#6 Окт. 19, 2023 07:07:26

kalyl
Зарегистрирован: 2023-10-19
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

локальный чат бот

altek7
фразы для бота -https://vk.com/doc617321754_662931943?hash=4AT55Tz5WlzZFGwJ3MRazx8WtVjcjZXMGxp6gmoL2DD&dl=QEni0IDfWsA9jRlzv8JBp0czyF9ZLogkjYbciFhmLTX можно писать сюда -https://vk.com/altek7 geometry dash
Спасибо, это очень полезно для меня.

Офлайн

#7 Июль 12, 2024 17:10:42

NedHayes
Зарегистрирован: 2024-07-12
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

локальный чат бот

altek7
фразы для бота -https://vk.com/doc617321754_662931943?hash=4AT55Tz5WlzZFGwJ3MRazx8WtVjcjZXMGxp6gmoL2DD&dl=QEni0IDfWsA9jRlzv8JBp0czyF9ZLogkjYbciFhmLTX heardle unlimited
Спасибо! Здорово, что все в одном месте, не нужно искать по отдельности.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version