Pull to refresh
16
0
Илья Кацев @bromozel

User

Send message

На самом деле к моменту написание Вашего комментария уже выкатили масштабное улучшение сниппетов и этот текст стал выделяться (из текста на сайте) намного лучше. Для примера сниппет, приведенный в посте, теперь выглядит так:

Добрый день
Я немножко умею играть в эту игру. Программа, увы, пока не особо сильная :)
Если вообще эта тема интересна, то есть даже чемпионат мира среди программ по гомоку:
http://gomocup.org
Там можно узнать о программах, которые играют сильно (непрофессионала обыграют). Если будут вопросы — пишите!
Нет, регулярки тоже генерятся автоматически, есть специальный алгоритм. Если интересно, могу сказать, что он выдаст для каких-нибудь наборов строк.
Привет! А на вашем сайте можно прочитать подробности об этом? Еду на конфу, буду жить прямо в Hitech City.
Спасибо за добрые слова! Да, работа очень интересная, это правда.
Да, вот тут странно, что пролезло. А откуда этот скрин? Там старый интерфейс, я вижу.
Тут все зависит от того, на каких страницах обучать робота. Это решает человек. В самом простом случае роботу для обучения дается одна страница. Он открывает ее несколько раз, запоминает, что где, а что меняется при открытии, и сохраняет себе такую модель.
Чуть более сложный случай — несколько схожих страниц. Например, выдача поиска по видео с разными запросами. Там разный контент, но структура страницы более-менее та же.
Наконец, можно пойти дальше и дать на вход уже принципиально разные страницы одного и того же сервиса. Тогда робот извлечет как правило только наличие шапки и футера, я думаю.
То есть создаются правила, которым удовлетворяет нужный процент страниц обучающей выборки. Если там везде ссылка «о компании» была сверстана одним и тем же образом — именно наличие точно такой же ссылки и будет проверяться. Если же в выборку попали разные страницы, то робот уже будет проверять наличие или блока А или блока Б, как-то так.
Интересный вопрос! У меня когда-то (когда я еще сам занимался Маркетом) была мысль, что можно так отлавливать ошибки, находя слишком большие цены. И там был какой-то телефон за 200 с чем-то тысяч. Однако, я пошел на сайт магазина и увидел, что никакой ошибки нет — это какое-то специальное исполнение телефона, под гжель, с инкрустациями и все такое :)
Так что все может быть!

На самом деле на Маркете есть фильтры по цене, чтобы, скажем, чехол для айфона случайно не «приклеился» к карточке айфона, но на 195300, почти уверен, они не сработают, по вышеописанной причине.
Мне трудно назвать число, все очень зависит от того, насколько правильно настроено все. То есть если модель построена по достаточно полной выборке, то ложных срабатываний нет, или почти нет. Однако, никогда заранее не ясно, что выборка полная. Например, когда мы только начали экспериментировать и настраивать на разных сервисах, я настраивал МТ на страницах карточек книг на Маркете. Построилась с виду хорошая модель, а потом при сверке она показала расхождение в поле ISBN для карточки одной книги. При внимательном изучении данной страницы выяснилось, что там белорусский ISBN, а во всех примерах для обучения, видимо, были русские коды. Мы добавили такой пример в обучающую выборку и все исправилось.
Так приходится делать часто — иногда трудно заранее понять, точно ли все случаи учтены. И при настройке ложных срабатываний может быть много. Но когда построена хорошая модель — их уже не должно быть.
Конечно, при сильном изменении верстки значительное число тестов начинают выдавать очень много ошибок. Это проблема, она существует для стандартного подхода (когда тесты пишутся вручную) и, увы, сохраняется в ситуации, когда тесты автоматически генерятся, как у нас.
Мы делаем некоторые вещи, чтобы уменьшить этот эффект.
1. Мы перестраиваем модели при каждой итерации (при каждой выкладке на тестовую среду). Тогда мы можем поймать ошибки, которые возникли ровно при этой выкладке. Ведь часто бывает так — уже вроде все проверено, почти готовы выезжать на продакшн — и надо внести «небольшое исправление». Как понять, что оно ничего не сломало? У нас уже готовы тесты в такой ситуации.
2. У нас есть очень много настроек, какие теги, атрибуты и части страницы не учитываются при построении модели. Все это можно настраивать. Если функциональность не изменилась, а изменились только, я не знаю, стили, то их можно просто отключить и модель, основанная на остальных данных, будет хороша.
Но здесь, конечно, начинается уже ручная настройка, это не так просто.

В целом, конечно, идеальная ситуация для применения нашего тула — когда почти ничего не изменилось и надо это проверить.
Я теперь боюсь обещать подобное :)
Мы столько раз обещали, что когда-нибудь выложим Роботестера в опенсорс (и такая работа ведется!), что мне уже неудобно.
Короче, ответ такой: хотим! Но пока не обещаем.
Еще чуть добавлю, что Вас отсутствие этого блока расстраивает именно в результате работы механизма обучения, аналогичного описанному — Вы видели такой блок на многих сайтах, Вам он показался удобным и для Вас сформировалось правило «наличие такого блока — это хорошо».
На самом деле все зависит от того, где робот обучается :)
Но да, это как раз пример того, что мы теперь умеем делать. Если в обучающей выборке такой блок всегда есть (даже с небольшими изменениями), то факт его наличия выделится как правило, и робот сможет сигнализировать про отсутствие такого блока.
Код у нас, конечно, есть. Но все сервисы Яндекса сделаны по-разному и получается, что мы должны в совершенно разный код вставлять модуль, который создает нам модель. А итоговый html — это нечто универсальное.
Но, конечно, да, описанный подход тоже имеет право на жизнь.
Говорят, исправление будет в новой версии API
Да, была такая мысль (да и осталась), но пока все не настолько стабильно работает, чтобы выдавать  API внешним людям. Но мы думаем «в эту сторону», да.
Спасибо, мы посмотрим!
Спасибо! Я передал ответственным людям.
К сожалению, пока еще не все проверяется роботами.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Date of birth
Registered
Activity