Страница 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);