Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[WDX] Similarity
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Ник



Joined: 15 Dec 2004
Posts: 1238
Location: Москва

Post (Separately) Posted: Thu Dec 17, 2009 23:47    Post subject: [WDX] Similarity Reply with quote

Similarity

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

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

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

Он вообще нужен и зачем?
_________________
Xubuntu 17.04-64
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5813
Location: Москва

Post (Separately) Posted: Fri Dec 18, 2009 01:11    Post subject: Reply with quote

Не пробовал, но насколько я понял из описания, это попытка упростить поиск по неточному имени файла с использованием алгоритмов вычисления "похожести" строк. Задаёшь имя файла через EXE (записывается в leven.ini), потом в Тотале в диалоге поиска указываешь максимальный уровень отклонения найденного имени файла от искомого (по одной или нескольким метрикам).
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1238
Location: Москва

Post (Separately) Posted: Fri Dec 18, 2009 11:27    Post subject: Reply with quote

Ага, спасибо, разобрался:

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 17.04-64
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5813
Location: Москва

Post (Separately) Posted: Fri Dec 18, 2009 11:52    Post subject: Reply with quote

Ник wrote:
А вот что за опции в меню поиска и как их использовать - я так и не понял:

Просто разные метрики. "Похожесть" ведь кучей разных способов можно считать. Простейший — contains, он просто возвращает 0 или 1 в зависимости от того, содержится искомая подстрока в данном имени файла или нет (как если в файловой панели в быстром фильтре ввести *текст*). Остальные — какие-то специфические алгоритмы, вычисляющие "расстояние" между именем файла и искомой строкой разными способами (чем сильнее различаются строки, тем больше расстояние между ними). Я о них не знаю, поэтому ничего более конкретного сказать не могу. Возможно, Википедия прояснит ситуацию. Ну и плюс average — вычисляет их все и усредняет.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1238
Location: Москва

Post (Separately) Posted: Fri Dec 18, 2009 14:36    Post subject: Reply with quote

Нашёл:

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

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
_________________
Xubuntu 17.04-64
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1238
Location: Москва

Post (Separately) Posted: Fri Dec 18, 2009 14:37    Post subject: Reply with quote

Только нужно ли это практически - или легче искать как обычно? Smile
_________________
Xubuntu 17.04-64
Back to top
View user's profile Send private message
Rodny



Joined: 24 Jan 2007
Posts: 941
Location: Могилёв, Беларусь

Post (Separately) Posted: Fri Dec 18, 2009 14:42    Post subject: Reply with quote

Так это полезно, если точного написания не помнишь. Если надо по запросу "lefenstein" найти "Levenshtein" Very Happy (пример из доков "QuickSearch eXtended")
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1238
Location: Москва

Post (Separately) Posted: Fri Dec 18, 2009 19:56    Post subject: Reply with quote

А с русским языком работает - я как-то не пойму...?
_________________
Xubuntu 17.04-64
Back to top
View user's profile Send private message
_Johm



Joined: 14 May 2006
Posts: 119

Post (Separately) Posted: Fri Feb 05, 2010 23:38    Post subject: Reply with quote

Кто разобрался,
приведите реальный пример поиска.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2478
Location: Большая деревня Москва

Post (Separately) Posted: Sat Feb 06, 2010 00:13    Post subject: Reply with quote

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

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


_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
_Johm



Joined: 14 May 2006
Posts: 119

Post (Separately) Posted: Sat Feb 06, 2010 01:11    Post subject: Reply with quote

Разобрался. Но странный плагин.
Нажимаем кнопку, вводим <слово>, enter
Он выводи диалог поиска (только не понятно
для чего), поиск закрываю, обнавляю панель

До этого я думал, что нужно задавать в поиске
<примерное слово> и во вкладке Plugins менять
порог чувствительности.
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5813
Location: Москва

Post (Separately) Posted: Mon Feb 08, 2010 00:50    Post subject: Reply with quote

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

Это невозможно сделать в рамках интерфейса WDX- (да и любых других) плагинов. Поэтому автор вынужден был пойти на такой не совсем очевидный способ.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1011
Location: Донецк

Post (Separately) Posted: Tue Apr 02, 2013 01:04    Post subject: Reply with quote

Чуток автоматизировал скрипт:
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() компиляция завершается, хоть и с ворнингами, но плагин как таковой - не работает.
_________________
Total Commander DreamLair - мечтать всегда, мыслить тотально, быть командиром жизни
Win10 x64 HE SL Eng | TC DreamLair v2018 eternal pre-α (9.0a x32+x64) | AkelPad Lair v2018α (4.9.9 x86) | Slimjet Lair v2018α
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5813
Location: Москва

Post (Separately) Posted: Thu Apr 04, 2013 13:22    Post subject: Reply with quote

LonerD wrote:
Кто-нибудь может попробовать откомпилировать 64-х битную версию?

http://flint-inc.ru/Temp/similarity_x64_test.rar
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1011
Location: Донецк

Post (Separately) Posted: Thu Apr 04, 2013 18:00    Post subject: Reply with quote

CaptainFlint
Спасибо большое! На первый взгляд всё работает отлично.
Файлы с юникод-символами в именах отображаются и даже плагин пытается найти между ними сходство (правда, поиск по иероглифам некорректный, но и понятно - не для них плагин заточен).
32-х битная версия была перекомпилирована чтобы уменьшить размер или какие-то существенные правки в работу?
_________________
Total Commander DreamLair - мечтать всегда, мыслить тотально, быть командиром жизни
Win10 x64 HE SL Eng | TC DreamLair v2018 eternal pre-α (9.0a x32+x64) | AkelPad Lair v2018α (4.9.9 x86) | Slimjet Lair v2018α
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group