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

Тема в разделе "Задачи", создана пользователем EceninPars, 13 июн 2018 в 08:21.

  1. EceninPars

    EceninPars A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    14 янв 2013
    Сообщения:
    28
    Симпатии:
    3
    В парсер гугл подсказок добавить фильтр на определение к чему отностися подсказка - к части фразы или к общей фразе ?

    Например:
    [​IMG]
    тут подсказки идут к букве "п" - относится только к последнему слову фразы

    [​IMG]
    а тут уже подсказки ко всей фразе, которые более релевантные.
     
  2. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    1.858
    Симпатии:
    1.311
    А по каким признакам это можно определить?
     
  3. EceninPars

    EceninPars A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    14 янв 2013
    Сообщения:
    28
    Симпатии:
    3
    Например разделением фразы на слова и проверкой, есть ли эти слова в предложенной подсказке, а так-же по количеству слов в подсказке - должно быть всегда > либо =.
     
  4. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    1.858
    Симпатии:
    1.311
    Не совсем понятно, как это должно работать...
    Например, по запросу новости дня онлайн видео п выдаются такие подсказки:
    В запросе 5 слов, 4 из них (новости, дня, онлайн, видео) есть в каждой подсказке, 5-го (п) - нету нигде.
    При этом кол-во слов в каждой подсказке больше либо равно кол-ву в запросе.

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

    Получается всегда срабатывают указанные вами условия и все подсказки не подходят (нету одного слова из запроса). Врятли это то, что нужно)
    При этом, данную задачу вполне можно решать шаблонизатором.
     
  5. EceninPars

    EceninPars A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    14 янв 2013
    Сообщения:
    28
    Симпатии:
    3
    Подскажите, как-же такую задачу можно решить шаблонизатором ?
     
    Vvtex нравится это.
  6. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    1.858
    Симпатии:
    1.311
    Точно так, как описано выше: разбить запрос и каждую подсказку на слова, проверить кол-во совпадений и сравнить кол-во слов. Примерно так это выглядит:
    Код:
    [% #разделяем запрос на слова
    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 %]
    Но, как уже было описано выше, данный способ не даст ожидаемого результат, причины также описаны выше.
     

Поделиться этой страницей