В любом случае рекомендую использовать hard-алгоритм с ручной доработкой по топам. Актуальные данные по выдаче - вот всё, что у нас есть, плюс немного собственной логики и возможности фильтровать откровенные ошибки машины.
Документ может высоко ранжироваться вовсе не по причине хорошо проработанной семантики. Его может "подбросить" в топы на "бандите", благодаря накруткам, высоким показателям хостовых метрик, просто в результате ошибки. Насколько я понимаю, инструментария для автоматической фильтрации таких шумов в данных сейчас нет, только руки и голова специалиста.