Войти

Показать полную графическую версию : Обработка запросов. Создание словарей синонимов.


Кирилл_Трофименко@vk
01-01-2018, 16:58
Есть у меня давняя задумка реализовать компьютерного помощника и столкнулся с проблемкой..

Например требуется завершить процесс в нужное время(например блокнот)
Человек пишет "Закрой блокнот в 11:25"
Батник обрабатывает запрос и делает команду taskkill... ла ла ла
Как реализовать обработку по запросу?

И не отходя от кассы второй вопрос.
Если мы настроим прогу под определенную последовательность ввода, а человек введет не "Закрой блокнот в 11:25", а например "Выруби блокнот в 11:25"
Компьютеру нужен еще словарь синонимов, aka
Закрой = close
Выруби = close
Собственно вопрос опять стоит в реализации

Сможет кто помочь или направить на какой источник инфы на эту тему?

alpap
02-01-2018, 22:24
требуется завершить процесс в нужное время »
Человек пишет »
Нет, пишет компьютер
С помощью планировщика в нужное время запускается файл name.bat, в котором примерно:

@echo off
set "p=процесс такой-то"
set /p "v=Завершить %p%? Y/N"
if "%v%"=="Y" (taskkill /f /im "%p%"& exit /b)
if "%v%"=="N" (echo Процесс "%p%" еще нужен)
pause

И не надо никаких синонимов

mwz
02-01-2018, 22:28
Нет, пишет компьютер »

Я так понял, что человек пишет свободным стилем, какую программу во сколько завершить.

И автору вопроса надо, чтобы компьютер понял жаргон этого человека, его неграмотные выражения, очепатки и т.д.: чтобы с одной стороны закрыть то, что нужно , а с другой— не дать закрыть то, что закрывать не нужно или вообще нельзя.

NLOLegion
13-01-2018, 06:58
Кирилл_Трофименко@vk, реализовать подобную работу очень сложно!
1) Вопрос синонимов можно решить скачиванием словаря таковых, но ещё надо научить sed находить в этом словаре слово, оставлять только синонимы к этому слову, и работать скрипту при наличии команды (например taskkill) при соответствии к одному из слов. Но с учётом гибкости русского языка "выруби" может определиться как "обездвижить" и это только один пример. Однозначно появятся трудности.
2) Чтобы закрыть приведенный пример Блокнот, нужно получить весь список процессов, а на этом форуме никто не дал ответа как это сделать с временем запуска всех процессов(может невозможно?), а оно может понадобиться, и найти в этом списке соответствующий процесс, а для этого слово "блокнот" нужно прогнать по какой-либо базе (или интернет) и определить какой процесс ему присвоен. Получение списка можно в этом примере упустить, так как если процесса нет то и закрываться нечему, но если смотреть на перспективу, то список нужен - например Открой Блокнот, и тогда надо анализировать нет ли уже запущенного процесса и может его просто нужно вывести на экран с тем что там записано, а не запускать новый.
3) Если нужно задействовать дату и время то я когда-то делал напоминания для голосового помощника и использовал подобную команду
schtasks /create /tn "НАПОМИНАНИЕ20.05.2015:14-33-10" /tr C:\A\finish.bat /sc once /st 14:33:10 /sd 20/05/2015
Можно на её примере всё что нужно сделать.




© OSzone.net 2001-2012