Необходимо найти сходства у этих строк по смыслу и рассортировать
Уважаемый автор вопроса, victorvsk Вам ответил правильно - Вы задали некорректный вопрос.
Как я понял, из тех данных, что Вы предоставили, сортировка будет осуществляться именно по смыслу. Тогда что такое смысл? На мой взгляд, в представленном случае, вариантов может быть несколько - смыслом будет сортировка по слову "проблема" или по слову "задача" или по слову "есть/нет решения". Что для Вас будет смыслом - непонятно из вопроса.
Так же victorvsk Вам ответил правильно - самым простым вариантом будет поиск по расстоянию. Я делал по связке двух подходов Левенштейна и Оливера.
Реализация расстояния по Левенштейну. Посмотрите, попробуйте, там все очень просто, а на словах более 3-х символов, дает очень неплохие результаты.
Либо, как уже советовали, пользуйте готовые решения, в Гугле их очень много.
Дополнение
Вот реализация алгоритмов на
PHP и
еще.
Где то была реализация на Питоне, но пока не могу найти. Посмотрите еще вот эту
статью.
Удачи. :)