Страница 1 из 2
[Сценарий] Что такое | кто такой (запрос к wikipedia)
Добавлено: Чт май 25, 2017 7:45 am
directman66
Делюсь своим вариантом. Где-то в группе был пример, но он какой-то замороченный.
Создаем шаблоны поведения (пришлось заводить 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);
Вариант использования сетевой Алисы через конект на все вопросы отвечает попробуйте воспользоваться поиском.
Re: Что такое | кто такой (запрос к wikipedia)
Добавлено: Чт май 25, 2017 11:16 am
olehs
попробуйте спросить, что такое "работа" или какое-то заимствованное слово.
в свое время наигрался с заменой букв с ударением и вырезанием происхождения на иностранном языке.
слово с несколькими вариантами так и не поборол - забросил
Re: Что такое | кто такой (запрос к wikipedia)
Добавлено: Чт май 25, 2017 4:00 pm
yurat2008
у меня сам скрипт отказывается работать
Код: Выделить всё
$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)
Re: Что такое | кто такой (запрос к wikipedia)
Добавлено: Чт май 25, 2017 5:01 pm
Dark_Veter
А у вас точка с запятой в последней строке не пропущена?
Re: Что такое | кто такой (запрос к wikipedia)
Добавлено: Чт май 25, 2017 5:25 pm
directman66
Пропущена ))
также, чтоб система говорила слова с ударениями, помог следующий код
Код: Выделить всё
$otvet2=urlencode($otvet);
$otvet=urldecode($otvet2);
echo $otvet;
say($otvet,2);
Re: Что такое | кто такой (запрос к wikipedia)
Добавлено: Пт май 26, 2017 10:31 am
yurat2008
Dark_Veter писал(а):А у вас точка с запятой в последней строке не пропущена?
в скрипте стоит, это я на форум скопировал не правильно
Re: Что такое | кто такой (запрос к wikipedia)
Добавлено: Пт май 26, 2017 10:46 am
Dark_Veter
А ошибка при сохранении происходит или при выполнении?
Re: Что такое | кто такой (запрос к wikipedia)
Добавлено: Пт май 26, 2017 5:20 pm
lanket
directman66 писал(а):Пропущена ))
также, чтоб система говорила слова с ударениями, помог следующий код
Код: Выделить всё
$otvet2=urlencode($otvet);
$otvet=urldecode($otvet2);
echo $otvet;
say($otvet,2);
Не понял на что это влияет.
Откуда возьмутся ударения?
Туда сюда погоняли и вдруг тот же текст та-же функция по другому отработает.
Отправлено с моего Redmi Note 3 через Tapatalk
Re: Что такое | кто такой (запрос к wikipedia)
Добавлено: Пт май 26, 2017 5:26 pm
olehs
lanket писал(а):
Не понял на что это влияет.
Откуда возьмутся ударения?
Туда сюда погоняли и вдруг тот же текст та-же функция по другому отработает.
Тут обратная проблема решается - избавление от символов ударения, т.к. говорилки с ними не дружат
Re: Что такое | кто такой (запрос к wikipedia)
Добавлено: Пт май 26, 2017 9:57 pm
xor
мне этот способ не помог избавиться от ударений.
Заработало так:
Код: Выделить всё
//избавимся от ударений
$otvet=iconv("UTF-8","CP1251//IGNORE",$otvet);
$otvet=iconv("CP1251","UTF-8",$otvet);