Улучшение Фильтр для гугл подсказок

EceninPars

A-Parser Enterprise License
A-Parser Enterprise
В парсер гугл подсказок добавить фильтр на определение к чему отностися подсказка - к части фразы или к общей фразе ?

Например:
9e1c37c5fa.jpg

тут подсказки идут к букве "п" - относится только к последнему слову фразы

5bd34aad32.jpg

а тут уже подсказки ко всей фразе, которые более релевантные.
 
А по каким признакам это можно определить?
 
Например разделением фразы на слова и проверкой, есть ли эти слова в предложенной подсказке, а так-же по количеству слов в подсказке - должно быть всегда > либо =.
 
Не совсем понятно, как это должно работать...
Например, по запросу новости дня онлайн видео п выдаются такие подсказки:
новости дня онлайн видео первый канал
новости дня онлайн видео путин
новости дня онлайн видео перми
новости дня онлайн видео последние
новости дня онлайн видео павлодар
новости дня онлайн видео пмр сегодня
новости дня онлайн видео прямой эфир
новости дня онлайн видео политические
новости дня онлайн видео последнии
новости дня онлайн видео первого канала сегодня
В запросе 5 слов, 4 из них (новости, дня, онлайн, видео) есть в каждой подсказке, 5-го (п) - нету нигде.
При этом кол-во слов в каждой подсказке больше либо равно кол-ву в запросе.

То же самое для запроса новости дня онлайн в:
новости дня онлайн видео
новости дня видео онлайн 1 канал
новости дня украина онлайн видео
В запросе 4 слова, 3 из них (новости, дня, онлайн) есть в каждой подсказке, 4-го (в) - нету нигде.
При этом кол-во слов в каждой подсказке больше либо равно кол-ву в запросе.

Получается всегда срабатывают указанные вами условия и все подсказки не подходят (нету одного слова из запроса). Врятли это то, что нужно)
При этом, данную задачу вполне можно решать шаблонизатором.
 
Точно так, как описано выше: разбить запрос и каждую подсказку на слова, проверить кол-во совпадений и сравнить кол-во слов. Примерно так это выглядит:
Код:
[% #разделяем запрос на слова
qArr = p1.query.query.split(' ');
#перебираем в цикле полученные подсказки
FOREACH s IN p1.results;
    #разделяем подсказку на слова
    sArr = s.suggest.split(' ');
    #считаем кол-во слов из запроса в подсказке
    count = 0;
    FOREACH q IN qArr;
        IF sArr.grep('^' _ q _ '$').size;
            count = count + 1;
        END;
    END;
    #выводим результат
    'В запросе ' _ qArr.size _ ' слов, в подсказке ' _ sArr.size _ ' слов, совпадений ' _ count _ "\n";
    IF qArr.size == count && sArr.size >= qArr.size;
        s.suggest _ "\n";
    END;
END %]
Но, как уже было описано выше, данный способ не даст ожидаемого результат, причины также описаны выше.
 
Назад
Верх