Я бы сказал, что первым шагом было бы определить, какие строки (или подстроки) на самом деле являются вопросами.Простой подход к этому заключался бы в поиске «?», Но опять же, в зависимости от ваших требований, вы можете усилить это - возможно, ищите «вопросительные слова».Вероятно, это будет самая легкая часть вашей задачи.
Как только вы получите список строк (которые предположительно являются вопросами) - вам нужно сгруппировать подобные и вернуть 10 самых больших корзин.Лучшим способом было бы объединить семантический + синтаксический подход.Возможно, вы могли бы взглянуть на эту статью , поскольку они, похоже, решают проблему нахождения сходства между двумя строками.Они приводят некоторые убедительные причины того, почему требуется двойной синтаксически-семантический подход.