[WDX] Similarity
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Плагины Total Commander

#1: [WDX] Similarity Author: НикLocation: Москва PostPosted: Thu Dec 17, 2009 23:47
    —
Similarity

Информационный плагин для отображения похожих строк.

http://wincmd.ru/plugring/similarity.html

Кто-нибудь понял, как пользоваться?

Он вообще нужен и зачем?

#2:  Author: CaptainFlintLocation: Москва PostPosted: Fri Dec 18, 2009 01:11
    —
Не пробовал, но насколько я понял из описания, это попытка упростить поиск по неточному имени файла с использованием алгоритмов вычисления "похожести" строк. Задаёшь имя файла через EXE (записывается в leven.ini), потом в Тотале в диалоге поиска указываешь максимальный уровень отклонения найденного имени файла от искомого (по одной или нескольким метрикам).

#3:  Author: НикLocation: Москва PostPosted: Fri Dec 18, 2009 11:27
    —
Ага, спасибо, разобрался:

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),"

#4:  Author: CaptainFlintLocation: Москва PostPosted: Fri Dec 18, 2009 11:52
    —
Ник wrote:
А вот что за опции в меню поиска и как их использовать - я так и не понял:

Просто разные метрики. "Похожесть" ведь кучей разных способов можно считать. Простейший — contains, он просто возвращает 0 или 1 в зависимости от того, содержится искомая подстрока в данном имени файла или нет (как если в файловой панели в быстром фильтре ввести *текст*). Остальные — какие-то специфические алгоритмы, вычисляющие "расстояние" между именем файла и искомой строкой разными способами (чем сильнее различаются строки, тем больше расстояние между ними). Я о них не знаю, поэтому ничего более конкретного сказать не могу. Возможно, Википедия прояснит ситуацию. Ну и плюс average — вычисляет их все и усредняет.

#5:  Author: НикLocation: Москва PostPosted: Fri Dec 18, 2009 14:36
    —
Нашёл:

ссылка на Википедию

http://www.codeproject.com/KB/string/SimilarStrings.aspx

http://www.itl.nist.gov/div897/sqg/dads/HTML/ratcliffObershelp.html

http://www.dcs.shef.ac.uk/~sam/stringmetrics.html

#6:  Author: НикLocation: Москва PostPosted: Fri Dec 18, 2009 14:37
    —
Только нужно ли это практически - или легче искать как обычно? Smile

#7:  Author: RodnyLocation: Могилёв, Беларусь PostPosted: Fri Dec 18, 2009 14:42
    —
Так это полезно, если точного написания не помнишь. Если надо по запросу "lefenstein" найти "Levenshtein" Very Happy (пример из доков "QuickSearch eXtended")

#8:  Author: НикLocation: Москва PostPosted: Fri Dec 18, 2009 19:56
    —
А с русским языком работает - я как-то не пойму...?

#9:  Author: _Johm PostPosted: Fri Feb 05, 2010 23:38
    —
Кто разобрался,
приведите реальный пример поиска.

#10:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Sat Feb 06, 2010 00:13
    —
Возможно, я не освоил всех тонкостей, но этот вариант сработал.
1. Сделать то. что написано в ридми Smile;
2. Создать колонки с полями плагина.
3. Вывести на панель все файлы по Ctrl+B;
4. Нажать кнопку и ввести примерное имя (часть имени - найти экспериментально);
5. Отсортировать имена по similarity или average (у меня примерно равнозначно);
6. При необходимости обновить Ctrl+R.

Пример: есть куча музыкальных альбомов Gregorian.
Мне нужно найти песни с именем, являющимся переводом русского слова "Аллилуйя".
В ответ на запрос ввожу "alelu". Результат - на скриншоте


#11:  Author: _Johm PostPosted: Sat Feb 06, 2010 01:11
    —
Разобрался. Но странный плагин.
Нажимаем кнопку, вводим <слово>, enter
Он выводи диалог поиска (только не понятно
для чего), поиск закрываю, обнавляю панель

До этого я думал, что нужно задавать в поиске
<примерное слово> и во вкладке Plugins менять
порог чувствительности.

#12:  Author: CaptainFlintLocation: Москва PostPosted: Mon Feb 08, 2010 00:50
    —
_Johm wrote:
До этого я думал, что нужно задавать в поиске <примерное слово>

Это невозможно сделать в рамках интерфейса WDX- (да и любых других) плагинов. Поэтому автор вынужден был пойти на такой не совсем очевидный способ.

#13:  Author: LonerDLocation: Донецк PostPosted: Tue Apr 02, 2013 01:04
    —
Чуток автоматизировал скрипт:
Code:
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
   }
}


И соответствующий набор колонок:
Code:
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() компиляция завершается, хоть и с ворнингами, но плагин как таковой - не работает.

#14:  Author: CaptainFlintLocation: Москва PostPosted: Thu Apr 04, 2013 13:22
    —
LonerD wrote:
Кто-нибудь может попробовать откомпилировать 64-х битную версию?

http://flint-inc.ru/Temp/similarity_x64_test.rar

#15:  Author: LonerDLocation: Донецк PostPosted: Thu Apr 04, 2013 18:00
    —
CaptainFlint
Спасибо большое! На первый взгляд всё работает отлично.
Файлы с юникод-символами в именах отображаются и даже плагин пытается найти между ними сходство (правда, поиск по иероглифам некорректный, но и понятно - не для них плагин заточен).
32-х битная версия была перекомпилирована чтобы уменьшить размер или какие-то существенные правки в работу?



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group