[Сценарий] Что такое | кто такой (запрос к wikipedia)

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

[Сценарий] Что такое | кто такой (запрос к wikipedia)

Сообщение directman66 » Чт май 25, 2017 7:45 am

Делюсь своим вариантом. Где-то в группе был пример, но он какой-то замороченный.

Создаем шаблоны поведения (пришлось заводить 2 шт) что такое (.+) и кто такой (.+) Объединение в один шаблон не работает почему-то.

в теле шаблона пишем:

Код: Выделить всё

runScript('wiki', array('zapros' => $matches[1]));
сценарий:

Код: Выделить всё

//$zap="Мастер и Маргарита";
$zap=$params['zapros'];
//say('Запрашиваю у Wikipedia информацию о '.$zap);
$zapurl=urlencode($zap);
$url='http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$zapurl.'&prop=info&format=xml&inprop=url';
$answ=file_get_contents($url);
$xml = simplexml_load_string($answ);
$otvet=$xml->Section->Item->Description; 
echo $otvet;
say($otvet,2);
Вариант использования сетевой Алисы через конект на все вопросы отвечает попробуйте воспользоваться поиском.
За это сообщение автора directman66 поблагодарил:
VladPTZ (Пт июн 08, 2018 6:44 pm)
Рейтинг: 1.16%
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение olehs » Чт май 25, 2017 11:16 am

попробуйте спросить, что такое "работа" или какое-то заимствованное слово.
в свое время наигрался с заменой букв с ударением и вырезанием происхождения на иностранном языке.
слово с несколькими вариантами так и не поборол - забросил
yurat2008
Сообщения: 147
Зарегистрирован: Сб мар 04, 2017 7:04 pm
Благодарил (а): 15 раз
Поблагодарили: 13 раз

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение yurat2008 » Чт май 25, 2017 4:00 pm

у меня сам скрипт отказывается работать

Код: Выделить всё

$zap="Мастер и Маргарита";
$zapurl=urlencode($zap);
$url='http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$zapurl.'&prop=info&format=xml&inprop=url';
$answ=file_get_contents($url);
$xml = simplexml_load_string($answ);
$otvet=$xml->Section->Item->Description; 
echo $otvet;
say($otvet,2);
дает ошибку

Код: Выделить всё

Error in script "wiki". Code: $zap="Мастер и Маргарита";
//$zap=$params['zapros'];
say('Запрашиваю у Wikipedia информацию о '.$zap);
$zapurl=urlencode($zap);
$url='http://ru.wikipedia.org/w/api.php?action=opensearch&search='.$zapurl.'&prop=info&format=xml&inprop=url';
$answ=file_get_contents($url);
$xml = simplexml_load_string($answ);
$otvet=$xml->Section->Item->Description; 
echo $otvet;
say($otvet,2) 
Dark_Veter
Сообщения: 295
Зарегистрирован: Вт апр 23, 2013 5:16 pm
Откуда: Брянск
Благодарил (а): 18 раз
Поблагодарили: 94 раза

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение Dark_Veter » Чт май 25, 2017 5:01 pm

А у вас точка с запятой в последней строке не пропущена?
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение directman66 » Чт май 25, 2017 5:25 pm

Пропущена ))

также, чтоб система говорила слова с ударениями, помог следующий код

Код: Выделить всё

$otvet2=urlencode($otvet);
$otvet=urldecode($otvet2);
echo $otvet;
say($otvet,2); 
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
yurat2008
Сообщения: 147
Зарегистрирован: Сб мар 04, 2017 7:04 pm
Благодарил (а): 15 раз
Поблагодарили: 13 раз

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение yurat2008 » Пт май 26, 2017 10:31 am

Dark_Veter писал(а):А у вас точка с запятой в последней строке не пропущена?
в скрипте стоит, это я на форум скопировал не правильно
Dark_Veter
Сообщения: 295
Зарегистрирован: Вт апр 23, 2013 5:16 pm
Откуда: Брянск
Благодарил (а): 18 раз
Поблагодарили: 94 раза

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение Dark_Veter » Пт май 26, 2017 10:46 am

А ошибка при сохранении происходит или при выполнении?
Debian GNU/Linux 7.9 (wheezy), версия 0.9.0b, Connect
Аватара пользователя
lanket
Сообщения: 1168
Зарегистрирован: Вт окт 14, 2014 11:27 pm
Откуда: Санкт-Петербург
Благодарил (а): 260 раз
Поблагодарили: 163 раза

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение lanket » Пт май 26, 2017 5:20 pm

directman66 писал(а):Пропущена ))

также, чтоб система говорила слова с ударениями, помог следующий код

Код: Выделить всё

$otvet2=urlencode($otvet);
$otvet=urldecode($otvet2);
echo $otvet;
say($otvet,2);
Не понял на что это влияет.
Откуда возьмутся ударения?
Туда сюда погоняли и вдруг тот же текст та-же функция по другому отработает.

Отправлено с моего Redmi Note 3 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
:arrow: Обсужение
:arrow: gitHub 2й версии терминала
:arrow: GitHub модуля для МД
gitHub сырого модуля 2й версии
:arrow: Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение olehs » Пт май 26, 2017 5:26 pm

lanket писал(а): Не понял на что это влияет.
Откуда возьмутся ударения?
Туда сюда погоняли и вдруг тот же текст та-же функция по другому отработает.
Тут обратная проблема решается - избавление от символов ударения, т.к. говорилки с ними не дружат
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Что такое | кто такой (запрос к wikipedia)

Сообщение xor » Пт май 26, 2017 9:57 pm

мне этот способ не помог избавиться от ударений.
Заработало так:

Код: Выделить всё

//избавимся от ударений
$otvet=iconv("UTF-8","CP1251//IGNORE",$otvet);
$otvet=iconv("CP1251","UTF-8",$otvet);
За это сообщение автора xor поблагодарил:
directman66 (Сб май 27, 2017 8:51 pm)
Рейтинг: 1.16%
Ответить