Вопрос про снипеты

  • Автор темы Автор темы Dmitron
  • Дата начала Дата начала

Dmitron

A-Parser Enterprise License
A-Parser Enterprise
Добрый день!
Паршу снипеты бинга, всего их собирается штук 30, а мне надо только 3 рандомных предложения из этой кучи текста. Может подсказать как отфильтровать?
 
Добрый день.
Это легко решается с помощью шаблонизатора:
  • объединяем все сниппеты в одну строку
  • из нее парсим регулярным выражением предложения
  • рандомно берем нужное кол-во предложений и выводим, удаляя выведенные предложения из массива, чтобы исключить повторы
Код:
[% sentences = p1.serp.format('$snippet. ').match('([A-BА-Я][^.!?]{30,}(?:[.!?]|$))', 1);
USE Math;
FOREACH i IN [1..3];
    sentences.splice(Math.int(Math.rand(sentences.size)), 1).0 _ "\n";
END %]
yovnc_180424103540.png
 
А как тут же сделать
  • объединяем все сниппеты в одну строку
  • из нее парсим регулярным выражением предложения
  • выводим все, исключая повторы
У меня всегда полчуается ARRAY(0x119115a0) :(
Спасибо.
 
Просто выведите массив, например, через .join:
Код:
sentences.join("\n");
Повторы удалять нужно уникализацией по строке.
 
Назад
Верх