Lord_of_Rings
@Lord_of_Rings
Python developer

Классификация вопросов?

Всем добрый день! Пишу программу, которая принимает вопрос от пользователя, определяет к какой категории он относится и даёт ответ. Например на вопросы "Сколько времени?", "Какой час?", "Время" программа должна ответить текущим временем, а на вопросы "Как тебя зовут?", "Как твоё имя?" и др., напечатать "Меня зовут Python". Подскажите, как это можно реализовать?
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
@o5a
Если не нужна какая-то продвинутая система, которая анализирует разные формы слов и т.п., то самое простое - забить нужные ключевые слова или части слов, и проверять их на вхождение в строку вопроса. Например, так через regexp (проще комбинировать варианты)
import re

categories = {
    r"(время|времени|час)": "время",
    r"(зовут|имя)": "имя",
}

# тестовые вопросы
questions = ["Сколько времени?", "Какой час?", "Время", "Как тебя зовут?", "Как твоё имя?"]

for question in questions:
    for pattern, category in categories.items():
        if re.search(pattern, question, re.I):
            print(f"{question} = {category}")

Это для примера, структуру для шаблонов можно потом уже выбрать с учетом специфики задачи.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
самое простое - забить в программу все возможные варианты и проверять по условию

причем буквально сравнением, удалив из строки с вопросом лишние символы (лишние пробелы, знаки препинания если конечно не дойдешь до фраз типа 'казнить нельзя помиловать' и т.п)

правильное решение как ни странно существует, но оно не подъемно для задающих такие вопросы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы