бот ии 10-08
мы вводим запрос текста через input
нужно найти фразу в файле данных с похожими словами из фразы запроса
без учёта окончаний слов
например слово = словам = слову = в слове = о словах = словами и так далее
и выбрать одну из найденых фраз случайно
затем добавить введённую фразу в файл фразы txt
далее продолжить новый цикл ввода через while (без команды exit)
import random
import re
def normalize_word(word):
"""
Преобразует слово в нормализованную форму для сравнения.
"""
return re.sub(r'[аеёиоуыэюя]$', '', word.lower())
def find_similar_phrases(phrases, query):
"""
Ищет фразы с похожими словами на основе введённого запроса.
"""
query_words = [normalize_word(word) for word in query.split()]
similar_phrases = []
for phrase in phrases:
phrase_words = [normalize_word(word) for word in phrase.split()]
if any(q_word in phrase_words for q_word in query_words):
similar_phrases.append(phrase)
return similar_phrases
def main():
file_path = 'фразы.txt'
with open(file_path, 'r', encoding='utf-8') as file:
phrases = [line.strip() for line in file.readlines()]
while True:
query = input("Введите запрос: ")
# Найти похожие фразы
similar_phrases = find_similar_phrases(phrases, query)
if similar_phrases:
chosen_phrase = random.choice(similar_phrases)
print(f"Найдена похожая фраза: {chosen_phrase}")
else:
print("Похожих фраз не найдено.")
# Добавить введённую фразу в файл
with open(file_path, 'a', encoding='utf-8') as file:
file.write(query + '\n')
# Добавить новую фразу в список фраз для будущих итераций
phrases.append(query)
if __name__ == "__main__":
main()
Как работает код:
normalize_word: Функция, которая нормализует слово, удаляя окончания, чтобы разные формы одного слова были похожи.
find_similar_phrases: Функция, которая ищет в файле фразы с похожими словами на основе введённого запроса.
main: Основной цикл программы, который выполняется бесконечно (пока не будет прерван вручную). Он запрашивает ввод, ищет похожие фразы, случайным образом выбирает одну из них, затем добавляет введённую фразу в файл.
Что нужно учесть:
Файл фразы.txt: Убедитесь, что файл существует и находится в том же каталоге, что и скрипт.
Остановить программу: Программу можно остановить вручную с помощью прерывания (например, нажав Ctrl+C в командной строке).
Этот скрипт должен удовлетворить вашу задачу поиска похожих фраз без учёта окончаний и добавления новых запросов в файл.
import random
import re
def normalize_word(word):
"""
Преобразует слово в нормализованную форму для сравнения.
"""
return re.sub(r'[аеёиоуыэюя]$', '', word.lower())
def find_similar_phrases(phrases, query):
"""
Ищет фразы с похожими словами на основе введённого запроса.
"""
query_words = [normalize_word(word) for word in query.split()]
similar_phrases = []
for phrase in phrases:
phrase_words = [normalize_word(word) for word in phrase.split()]
if any(q_word in phrase_words for q_word in query_words):
similar_phrases.append(phrase)
return similar_phrases
def main():
file_path = 'фразы1.txt'
with open(file_path, 'r', encoding='utf-8') as file:
phrases = [line.strip() for line in file.readlines()]
while True:
query = input("Вы: ")
# Найти похожие фразы
similar_phrases = find_similar_phrases(phrases, query)
if similar_phrases:
chosen_phrase = random.choice(similar_phrases)
print(f"бот: {chosen_phrase}")
else:
print("Похожих фраз не найдено.")
# Добавить введённую фразу в файл
with open(file_path, 'a', encoding='utf-8') as file:
file.write(query + '\n')
# Добавить новую фразу в список фраз для будущих итераций
phrases.append(query)
if __name__ == "__main__":
main()
вывод ->
= C:\Users\MSI\Desktop\мой бот\бот нов 10-8 .py
Вы: я что должен это всё знать и помнить
бот: Современные пользователи сети стремятся искать информацию, которая было бы полезной, актуальной и удовлетворила их потребности в знаниях и развлечении.
Вы: и как они это могут делать так просто
бот: GPT-3 — это универсальная генеративная языковая модель, разработанная OpenAI в 2020 году. Она была предобучена на 570 гигабайтах неразмеченных текстов из интернета и благодаря этому сумела получить общее понимание того, как должен выглядеть осмысленный текст на языке, с которым она работает.
Вы: это мне не очень то понятно наверно
бот: мне кажется что уже есть интеллект, который в чём-то умнее человека
Вы: и что из этого следует тогда как ты думаешь об этом
бот: мы можем осознать компьютер как человека который может с нами поговорить ?
Вы: это всё не так просто как нам надо
Свидетельство о публикации №124081004767