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 

Поиск в Total Commander в пределах заданного количества слов

 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Anna_27



Joined: 14 Apr 2021
Posts: 1

Post (Separately) Posted: Wed Apr 14, 2021 16:54    Post subject: Поиск в Total Commander в пределах заданного количества слов Reply with quote

Добрый день. Посмотрела все форумы, вопросы и ответы на них, но нигде не нашла внятный ответ на следующий специфический вопрос.
На HDD имеется более 10 000 000 документов в PDF. Распознанные (созданные из Word). Требуется совершать в них поиск ключевых фраз в пределах нескольких слов. Например, мы хотим найти слова "мама" и "папа". В каждом документе есть слова "мама" и "папа". Значит, система найдёт нам все 10 000 000 документов. Но нам это не нужно.
Нам нужно найти эти слова с таким условием, чтобы они повторялись В ПРЕДЕЛАХ пяти слов. Или трёх слов, или шести слов, или десяти слов (в зависимости от поставленной лингвостатистической аналитической задачи). Более чёткий пример на пальцах: Имеется предложение "Наверное, мама хорошо знает как найти папу" (предложение состоит из семи слов). Нам НЕ ТРЕБУЕТСЯ найти существительные "мама" и "папа", раскиданные по тексту где попало и повторяющиеся тысячу раз. Нам ТРЕБУЕТСЯ найти все выражения где "мама" и "папа" расположены, в данном случае, в пределах семи слов.
Можете, пожалуйста, расписать пошагово, как это сделать через Total Commander? Или посоветуете другую программу с такого рода возможностью? Спасибо!
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Wed Apr 14, 2021 18:42    Post subject: Reply with quote

Anna_27
Слишком сложные условия. А если, как в приведённом примере, ещё и падеж может меняться... Впрочем, могут быть и другие мнения.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Mailk



Joined: 16 Jan 2010
Posts: 251

Post (Separately) Posted: Thu Apr 15, 2021 00:05    Post subject: Reply with quote

Плагин для поиска и обсуждался здесь http://forum.wincmd.ru/viewtopic.php?t=15967&start=30, через регулярные выражения реализуем легко.
Ну и наверно плагин http://wincmd.ru/plugring/TextSearch.html
Сколько нужно "И" и "или " пропиши и найдет.
Да и лучше не" на пальцах писать" а не стеснятся и прислать реальную задачу.. а то про папу или маму не понятно..

Posted after 4 minutes:

Anna_27
Скиньте реальную задачу с примером, Вам помогут..
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Thu Apr 15, 2021 06:23    Post subject: Reply with quote

Mailk
Кто поможет, вы что ли? Зная ваши прошлые достижения на этом форуме, крайне сомневаюсь, а за других говорить не следует. И в любом случае не надо тут очередных "умных советов" и рассуждений о том, как легко решить задачу (между прочим, приведённую с вполне реальным примером), которую вы, похоже, даже не соизволили как следует понять. В очередной раз, как обычно. Если нечего сказать полно и точно по существу дела, не надо говорить ничего. Иначе получается флуд. А что у нас делают с флудом и флудерами, в правилах форума сказано.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Thu Apr 15, 2021 15:31    Post subject: Reply with quote

PCREsearch, конечно, может много чего, но тут слишком уж замысловатые условия... Задача, видимо, не разовая, практичнее, наверное, найти программиста (может и скриптовое что-то, типа того же Python) или поискать что-то специализированное для анализа текста (возможно, есть не готовый софт, но подходящие библиотеки), в т.ч. и под Linux, там нередко попадаются нерядовые вещи (в крайнем случае можно в виртуалку поставить).

Возможно, программы для поиска файлов по содержимому с индексацией, типа Recoll или DocFetcher, позволяют составлять такие замысловатые поисковые запросы, а использование базы может существенно оптимизировать работу. Кстати, у Recoll вроде есть API для Python, возможно, это может упростить поиск решения задачи.
Back to top
View user's profile Send private message
Mailk



Joined: 16 Jan 2010
Posts: 251

Post (Separately) Posted: Thu Apr 15, 2021 16:57    Post subject: Reply with quote

Я прочитал внимательно Авада, и зная что есть квантаторы в регулярных. Будет реальный тект будет реальный ответ я уверен что пример приведенный не корректен. И под каждую задачу можно написать разные выражения. В рамках строки можно найти например.
Мама (\s\w\s){3,9} папа
это выражение по задумке ищет сочетание
"мама" потом несколько слов от 3х до 9ти и потом "папа"
Спецы по регулярным поправите если что то не так. Я только начал тему регулярок изучать. Я просто пример написал , будет реальный текст будет реальное выражение.
Ну если не прав поправте.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Thu Apr 15, 2021 17:39    Post subject: Reply with quote

Кстати, да, постоянно забываю, что в PCRE есть возможрость использовать юникод (чаще имею дело с другими реализациями).
Учитывая, что для каждого PDF плагин сначала будет выдирать текст, причём не раз, если условий (полей) больше одного, это будет то ещё веселье...

"Мама (\s\w\s){3,9} папа" не очень подходит, т.к. не учитывает регистр и склонения и повторение неправильно задано, для предела в 7 слов как минимум
Code:
\bмам\w*\b(?s)\s+\K(\w+){,6}\s+пап\w*

тогда можно рассчитывать зацепить и "мамочка", например.
Если нужно и наоборот, с "папа" в начале, то тут либо в лоб, добавив аналогичное правило в новое поле плагина и искать по двум полям, либо усложнять - просмотр назад или обратные ссылки, если вообще возможно прикрутить условие, чтобы не зацепить "папа"-"папа".

Кто у нас хорошо разбирается в регулярках? Может быть, у milo1012 на оффоруме стоит спросить?
Back to top
View user's profile Send private message
Mailk



Joined: 16 Jan 2010
Posts: 251

Post (Separately) Posted: Thu Apr 15, 2021 18:42    Post subject: Reply with quote

Skif_off wrote:
не очень подходит, т.к. не учитывает регистр и склонения и повторение неправильно задано, для предела в 7 слов как минимум
Code:
\bмам\w*\b(?s)\s+\K(\w+){,6}\s+пап\w*

тогда можно рассчитывать зацепить и "мамочка", например.

Спасибо !!! Главное ты меня понял! Я просто как пример написал так как нету самого текста задания а "на пальцах" и я "на пальцах" написал.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Page 1 of 1

 
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