Частичное совпадение строк

Я делаю небольшую систему для личного использования, в которой я хочу обрабатывать файлы. В этой системе я хочу классифицировать файлы на основе имен и максимально автоматизировать. Это привело меня к проблеме с сопоставлением строк.

Скажем, у меня есть категория с именем A category и два файла с именами:

  1. a.category.file
  2. lotsofgarbage.a-big-kateory.file

Мне нужно сопоставить эти имена файлов с категорией. Я предполагаю, что это будет больше похоже на оценку «насколько они похожи», поскольку нет хорошего способа сделать точное совпадение.

Может ли кто-нибудь дать мне простой хороший алгоритм для этой проблемы? Или указать мне направление одного из них?


person Kasper Middelboe Petersen    schedule 12.06.2012    source источник


Ответы (2)


Вероятно, лучший способ решить эту проблему — вычислить расстояние редактирования ваших имен файлов до вашей категории. имя, и если они находятся под определенным порогом, то они должны совпадать.

Проверьте эту ссылку, очевидно, php может сделать это за вас.

person Deleteman    schedule 12.06.2012

Вы можете попробовать использовать это (проще): http://www.php.net/manual/en/function.similar-text.php

Или это: http://www.php.net/manual/en/function.levenshtein.php

person HBv6    schedule 12.06.2012
comment
Что заставляет вас говорить, что Similar_text() проще в использовании? - person Kasper Middelboe Petersen; 12.06.2012
comment
Потому что, возможно, вам не нужен функционал Левенштейна. Я думаю, что вы можете решить свою проблему с помощью Similar_text, но для полноты вы можете решить и с помощью Ленштейна. - person HBv6; 12.06.2012