|
0 / 0 / 0
Регистрация: 20.11.2023
Сообщений: 4
|
|
Wikipedia API09.06.2024, 10:59. Показов 305. Ответов 0
Приветствую! Решился я сделать чат-бота, который будет отвечать на вопросы пользователя используя данные из Википедии. И возникли некоторые сложности: чат-бот на часть вопросов отвечает правильно ('Вопрос: Кто такой Алексей Михайлович?
Ответ: Алексе́й Миха́йлович Тиша́йший (9 (19) марта 1629, Москва — 29 января (8 февраля) 1676, Москва) — второй русский царь из династии Романовых (14 (24) июля 1645 — 29 января (8 февраля) 1676), сын Михаила Фёдоровича и его второй жены Евдокии. Алексей Михайлович получил образование у своего воспитателя Бориса Морозова, прежде чем взойти на престол в возрасте 16 лет.'), но на некоторых начинает прям тупить ('Вопрос: Что такое СССР? Ответ: «Что такое? Кто такой?» — универсальная энциклопедия в двух (позже — в трёх) томах, предназначенная для детей. ). Как это исправить я не знаю, спрашивал у CHAT GPT, он сделал только хуже, еле поправил. Может у кого-нибудь есть идеи что где и как исправить, чтобы все работало? import spacy import wikipedia import wikipediaapi import random import string from transformers import pipeline, GPT2LMHeadModel, GPT2Tokenizer # Загрузка модели SpaCy для русского языка nlp = spacy.load('ru_core_news_md') # Указание идентификатора модели из Hugging Face model_name_or_path = 'sberbank-ai/rugpt3small_based_on_gpt2' # Загрузка модели и токенизатора model = GPT2LMHeadModel.from_pretrained(model_na me_or_path) tokenizer = GPT2Tokenizer.from_pretrained(model_name _or_path) # Создание генератора текста generator = pipeline('text-generation', model=model, tokenizer=tokenizer) def classify_question(query): query_lower = query.lower() if any(keyword in query_lower for keyword in ["кто", "кто такой", "кто такая"]): return "who" elif any(keyword in query_lower for keyword in ["что", "что такое"]): return "what" elif any(keyword in query_lower for keyword in ["когда"]): return "when" elif any(keyword in query_lower for keyword in ["почему", "зачем"]): return "why" elif "расшифровывается" in query_lower: return "abbreviation" return "general" import wikipedia def search_wikipedia(query): try: # Установка языка поиска на русский wikipedia.set_lang("ru") # Поиск страницы по запросу page = wikipedia.page(query) # Получение краткого резюме страницы summary = wikipedia.summary(query, sentences=2) return summary except wikipedia.exceptions.PageError: return "Страница не найдена." except wikipedia.exceptions.DisambiguationError : return "Найдено несколько возможных страниц. Уточните запрос." def generate_answer(question): prompt = f"Вопрос: {question}\nОтвет:" response = generator(prompt, max_new_tokens=100, num_return_sequences=1, truncation=True) generated_text = response[0]['generated_text'] start_index = generated_text.find("Ответ:") + len("Ответ:") return generated_text[start_index:].strip() def get_abbreviation_meaning(query): # Добавьте здесь логику для расшифровки сокращений return "Расшифровка сокращения не найдена." def main(): while True: user_input = input("Задайте ваш вопрос: ") if user_input.lower() in ['выход', 'exit']: break question_type = classify_question(user_input) print(f"Тип вопроса: {question_type}") # Попробуем найти ответ в Wikipedia wiki_answer = search_wikipedia(user_input) if wiki_answer: print(f"Вопрос: {user_input}") print(f"Ответ: {wiki_answer}") else: # Если не удалось найти ответ в Wikipedia, используем генеративную модель answer = generate_answer(user_input) print(f"Вопрос: {user_input}") print(f"Ответ: {answer}") if __name__ == "__main__": main()
0
|
|
| 09.06.2024, 10:59 | |
|
Ответы с готовыми решениями:
0
Парсинг страницы сайта ru.wikipedia.org/wiki/Россия Wikipedia API Работа с wikipedia api |
| 09.06.2024, 10:59 | |
|
Помогаю со студенческими работами здесь
1
Wikipedia в Топ 1 Excel + wikipedia Wikipedia NoFollow
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|