[WDX] Similarity
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
[WDX] Similarity
Similarity
Информационный плагин для отображения похожих строк.
http://wincmd.ru/plugring/similarity.html
Кто-нибудь понял, как пользоваться?
Он вообще нужен и зачем?
Информационный плагин для отображения похожих строк.
http://wincmd.ru/plugring/similarity.html
Кто-нибудь понял, как пользоваться?
Он вообще нужен и зачем?
Xubuntu
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Не пробовал, но насколько я понял из описания, это попытка упростить поиск по неточному имени файла с использованием алгоритмов вычисления "похожести" строк. Задаёшь имя файла через EXE (записывается в leven.ini), потом в Тотале в диалоге поиска указываешь максимальный уровень отклонения найденного имени файла от искомого (по одной или нескольким метрикам).
Почему же, ё-моё, ты нигде не пишешь "ё"?
Ага, спасибо, разобрался:
1) Распаковать плагин в нужную папку и вручную установить в ТК.
2) Скопировать файл leven.ini в главную директорию Total Commander.
3) Добавить клавиатурное сочетание или кнопку для similarity.exe - параметр указать просто знак вопроса (у меня получилось сделать работающую кнопку только, поставив знак вопроса в кавычки).
А вот что за опции в меню поиска и как их использовать - я так и не понял:
"- distanceLev - Levenshtein distance between filename and phrase,
- similarityLev - similarity computed using values from above,
- simil1 - using Rui A. Rebelo's method (see links in Credits),
- simil2 - same as above but arguments are switched,
- similRO - using Ratcliff/Obershelp pattern recognition,
- average - average value for methods from above with "50" added if "contains" is true,
- contains - returns 1 if filename contains phrase (0 otherwise),"
1) Распаковать плагин в нужную папку и вручную установить в ТК.
2) Скопировать файл leven.ini в главную директорию Total Commander.
3) Добавить клавиатурное сочетание или кнопку для similarity.exe - параметр указать просто знак вопроса (у меня получилось сделать работающую кнопку только, поставив знак вопроса в кавычки).
А вот что за опции в меню поиска и как их использовать - я так и не понял:
"- distanceLev - Levenshtein distance between filename and phrase,
- similarityLev - similarity computed using values from above,
- simil1 - using Rui A. Rebelo's method (see links in Credits),
- simil2 - same as above but arguments are switched,
- similRO - using Ratcliff/Obershelp pattern recognition,
- average - average value for methods from above with "50" added if "contains" is true,
- contains - returns 1 if filename contains phrase (0 otherwise),"
Xubuntu
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Просто разные метрики. "Похожесть" ведь кучей разных способов можно считать. Простейший — contains, он просто возвращает 0 или 1 в зависимости от того, содержится искомая подстрока в данном имени файла или нет (как если в файловой панели в быстром фильтре ввести *текст*). Остальные — какие-то специфические алгоритмы, вычисляющие "расстояние" между именем файла и искомой строкой разными способами (чем сильнее различаются строки, тем больше расстояние между ними). Я о них не знаю, поэтому ничего более конкретного сказать не могу. Возможно, Википедия прояснит ситуацию. Ну и плюс average — вычисляет их все и усредняет.Ник писал(а):А вот что за опции в меню поиска и как их использовать - я так и не понял:
Почему же, ё-моё, ты нигде не пишешь "ё"?
- Вахмурка
- Сообщения: 2587
- Зарегистрирован: Пн дек 27, 2004 14:47
- Откуда: Большая деревня Москва
- Контактная информация:
Возможно, я не освоил всех тонкостей, но этот вариант сработал.
1. Сделать то. что написано в ридми
;
2. Создать колонки с полями плагина.
3. Вывести на панель все файлы по Ctrl+B;
4. Нажать кнопку и ввести примерное имя (часть имени - найти экспериментально);
5. Отсортировать имена по similarity или average (у меня примерно равнозначно);
6. При необходимости обновить Ctrl+R.
Пример: есть куча музыкальных альбомов Gregorian.
Мне нужно найти песни с именем, являющимся переводом русского слова "Аллилуйя".
В ответ на запрос ввожу "alelu". Результат - на скриншоте

1. Сделать то. что написано в ридми
2. Создать колонки с полями плагина.
3. Вывести на панель все файлы по Ctrl+B;
4. Нажать кнопку и ввести примерное имя (часть имени - найти экспериментально);
5. Отсортировать имена по similarity или average (у меня примерно равнозначно);
6. При необходимости обновить Ctrl+R.
Пример: есть куча музыкальных альбомов Gregorian.
Мне нужно найти песни с именем, являющимся переводом русского слова "Аллилуйя".
В ответ на запрос ввожу "alelu". Результат - на скриншоте

Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
Чуток автоматизировал скрипт:
И соответствующий набор колонок:
(номер колонки и команду для него в последней строке скрипта надо подправить под себя, равно как и остальные параметры по желанию).
Запускаем скрипт с параметром ?, вводим искомое слово - и больше ничего вручную делать не надо - после отработки скрипта автоматически происходит переключение в режим просмотра без каталогов и в заданный набор колонок.
Кто-нибудь может попробовать откомпилировать 64-х битную версию? Плагин хоть и весьма своеобразный в работе, но выдаёт интересные и небесполезные результаты.
Попробовал перекомпилировать - ничего не вышло. После декларации функции main() компиляция завершается, хоть и с ворнингами, но плагин как таковой - не работает.
Код: Выделить всё
IfWinActive , ahk_class TTOTAL_CMD
{
if 0 < 1
{
MsgBox, Too less parameters!`nInsert searched file name.
}
else
{
searchStr :=""
Loop, %0%
{
param := %A_Index%
searchStr = %searchStr% %param%
}
EnvGet, COMMANDER_PATH, %COMMANDER_PATH%
IniFile = %COMMANDER_PATH%\leven.ini
IniWrite, %searchStr%, %IniFile%, Search, Phrase
PostMessage 1075, 2026, , , ahk_class TTOTAL_CMD
PostMessage 1075, 501, , , ahk_class TTOTAL_CMD
WinWait, ahk_class TFindFile
WinClose, ahk_class TFindFile
PostMessage 1075, 7539, , , ahk_class TTOTAL_CMD
}
}
Код: Выделить всё
Widths39=120,25,-50,-70,-30,-30,-30,-30
Headers39=Size\nDate\ndistance\nsimilarity\naverage\ncontains
Contents39=[=tc.size]\n[=tc.writedate.Y.M.D h:m:s]\n[=similarity.distanceLev]\n[=similarity.similarityLev]\n[=similarity.average]\n[=similarity.contains]
Options39=1936|1Запускаем скрипт с параметром ?, вводим искомое слово - и больше ничего вручную делать не надо - после отработки скрипта автоматически происходит переключение в режим просмотра без каталогов и в заданный набор колонок.
Кто-нибудь может попробовать откомпилировать 64-х битную версию? Плагин хоть и весьма своеобразный в работе, но выдаёт интересные и небесполезные результаты.
Попробовал перекомпилировать - ничего не вышло. После декларации функции main() компиляция завершается, хоть и с ворнингами, но плагин как таковой - не работает.
Windows 11 | TC DreamLair eternal pre-α
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
http://flint-inc.ru/Temp/similarity_x64_test.rarLonerD писал(а):Кто-нибудь может попробовать откомпилировать 64-х битную версию?
Почему же, ё-моё, ты нигде не пишешь "ё"?
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
CaptainFlint
Спасибо большое! На первый взгляд всё работает отлично.
Файлы с юникод-символами в именах отображаются и даже плагин пытается найти между ними сходство (правда, поиск по иероглифам некорректный, но и понятно - не для них плагин заточен).
32-х битная версия была перекомпилирована чтобы уменьшить размер или какие-то существенные правки в работу?
Спасибо большое! На первый взгляд всё работает отлично.
Файлы с юникод-символами в именах отображаются и даже плагин пытается найти между ними сходство (правда, поиск по иероглифам некорректный, но и понятно - не для них плагин заточен).
32-х битная версия была перекомпилирована чтобы уменьшить размер или какие-то существенные правки в работу?
Windows 11 | TC DreamLair eternal pre-α