Форум программистов, компьютерный форум, киберфорум
C#: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для adept_csharpa
0 / 0 / 0
Регистрация: 03.02.2017
Сообщений: 58

Файл: Реализовать алгоритм работы чат-бота...

01.07.2017, 21:02. Показов 1902. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Задача такова:
- Пользователя просят написать слово, например "Привет"
- программа ищет в текстовом файле с кучей текста строки, которые начинаются с этого слова
- если программа нашла несколько, выводит рандомно одну из строк со всем содержимым пользователю, начиная с символа, следующего за этим словом.

Вот

Конкретно я застопорился на моменте выбора рандомной строки из нескольких. Я не знаю как заставить программу запомнить все подходящие строки из текстового файла, а их может быть произвольное количество, и выбрать из них потом одну.

Алгоритм я продумал такой: Прога просит пользователя ввести слово --> введенное слово перегоняется в переменную string --> программа начинает считывать строку за строкой, парся слово из переменной string --> собирает для себя коллекцию всех найденных подходящих строк --> выбирает рандомайзером одну из них для вывода пользователю.

Выделенные жирным шрифтом шаги я не дотумкал, как реализовать. Как вообще реализуются такие вещи? Может у строк есть свои числовые индексы? Как их тогда вычленить? Я понимаю если бы было строго определенное количество строк с совпадениями, например 2. Тогда легко кажется загоняешь обе строки в заранее заготовленные две переменные типа string, но тут ведь не предусмотреть их количество. Объясните, кто может, что для таких целей предусмотрено (еще не весь язык знаю)

p.s. Практикуюсь создавая бота, который будет давать рандомные ответы (из предусмотренных) в ответ на ключевое слово пользователя. Пользователь пишет слово-Тэг, а по тэгу бот ищет все подходящие строки. Но не суть в общем, если кому интересно просто поясняю. Буду рад любым дельным советам

Добавлено через 11 минут
Добавлю важный момент по ключевым словам:
При парсинге слова в строках может возникнуть у бота путаница, например строка: "Привет: Привет-привет!" Здесь "Привет:" - это Тэг (ну я так придумал, хы), а "Привет-привет" - уже сам вариант ответа. Но в другой строке по тэгу "Пока:" может далее тоже содержаться слово "привет" и чтобы бот не запутался, он ищет именно "Привет:" с двоеточием.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.07.2017, 21:02
Ответы с готовыми решениями:

Алгоритм работы чат-бота
Задумал создать чат бота. Кюрю доки и хотелось юы услышать советы умных людей. Пока я сдел альфу альфа. и недоволен результатом...

Обучение чат бота
Всем привет. Написал простейший чат бот. Нужен архив диалогов типа вопрос - ответ для его обучения. Возможно у кого то завалялся...

создание чат-бота
Здравствуйте. Как создать чат-бота на какое-либо устройство? Какой язык лучше всего? По какому алгоритму это делается вообще? Заранее...

3
Эксперт .NET
 Аватар для Rius
13228 / 7725 / 1679
Регистрация: 25.05.2015
Сообщений: 23,542
Записей в блоге: 14
01.07.2017, 21:04
Если бы строки хранились в массиве, а не файле, можно было бы запоминать их индексы.
А с файлом проще запоминать сами строки в List<string>.
Хотя если совпадения в каждой строке, а файл на гигабайты, будет проблема.

Вы чтоль решили утилиту grep воспроизвести?
1
 Аватар для adept_csharpa
0 / 0 / 0
Регистрация: 03.02.2017
Сообщений: 58
01.07.2017, 21:24  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Если бы строки хранились в массиве, а не файле, можно было бы запоминать их индексы.
Нужен внешний доступ к вариантам ответа без перекомпиляции. Дописываешь в текстовик строки сколько хочешь со временем, а программа сама по себе, ей лишь нужен этот файл.
Цитата Сообщение от Rius Посмотреть сообщение
Хотя если совпадения в каждой строке, а файл на гигабайты, будет проблема.
Не гигабайты уж точно, столько текста не исписать. Но строк реально может быть дофига.
Цитата Сообщение от Rius Посмотреть сообщение
Вы чтоль решили утилиту grep воспроизвести?
Даже не знаю, о чём вы

p.s. пошел гуглить про List<string>
0
Эксперт .NET
 Аватар для Rius
13228 / 7725 / 1679
Регистрация: 25.05.2015
Сообщений: 23,542
Записей в блоге: 14
01.07.2017, 21:28
Цитата Сообщение от adept_csharpa Посмотреть сообщение
Даже не знаю, о чём вы
Консольная утилита поиска, в частности по текстовым файлам.
Вывести все опции команды grep, описанные в man
Как убрать лишнее из вывода grep?
https://ru.wikipedia.org/wiki/Grep
Что такое grep и с чем его едят

Добавлено через 1 минуту
Цитата Сообщение от adept_csharpa Посмотреть сообщение
пошел гуглить про List<string>
Да что там гуглить...
MSDN: List<T> https://msdn.microsoft.com/ru-... .110).aspx
И пример, и перечень методов. Рекомендую ознакомиться со всеми.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.07.2017, 21:28
Помогаю со студенческими работами здесь

похож на чат бота
мне очень нужен php код. это должно быть на страницах сайта и отвечать на вопросы пользователей..... так то я знаю но вот поле ввода я не...

Создание чат-бота
Здраствуйте!Хочу начать изучать чат-ботов и создать своего.Может кто подробно рассказать про чат-ботов(язык,что нужно и тд).В гугле искал...

Создание чат бота
с чего начать? нужен бот для психологического форума, делающий какие то прогнозы на основе информации которую человек понаписал. ...

Написать чат бота
Задача следующая: Есть игровой клиент ip адрес коннекта я заснифферил. Хотелось бы что-бы прога коннектилась к клиенту заходила на сервак и...

Клавиатура чат-бота vk api
Добрый день, уважаемые коллеги, кто нибудь сталкивался с подобной ошибкой? Создаю клавиатуру для чат-бота с 4 элементами Buttons =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru