Учет/игнорирование диакритики при поиске

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
Post Reply
emusic
Posts: 63
Joined: Tue 26 Nov, 2013 06:39
Location: Новосибирск
Has thanked: 1 time
Been thanked: 1 time

Учет/игнорирование диакритики при поиске

Post by emusic »

Было бы здорово иметь возможность задавать игнорирование диакритики при поиске текста. Больше всего нужно при работе с текстами на французском и подобных языках, где она на каждом шагу. Какой-нибудь élément или récupération может встречаться как в правильном написании, так и без одного или обоих диакритических знаков. Ну и в русских текстах долгое время использовали "е" вместо "ё", но в последнее время многие ревнители языка упорно используют "ё".

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

В идеале - чтоб по умолчанию диакритика игнорировалась, но можно было включить точное совпадение.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Учет/игнорирование диакритики при поиске

Post by DrKnS »

Было бы здорово, но, помимо диакритики, в юникоде много чего можно и нужно нормализовывать и игнорировать (см. флаги с IGNORE в имени).
Добавить всю эту роскошь в поиск можно, но я не очень представляю интерфейс, как-то слишком много получается чекбоксов.

В принципе, можно все скопом запихнуть в "Case sensitive": если [x], то побайтовое совпадение, если [ ] - то игнорируя все, что можно.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Учет/игнорирование диакритики при поиске

Post by HaRT »

По уму, следовало бы добавить поддержку Классов эквивалентности (пример: [=e=]). Но я понимаю, что это может быть сложновато.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

Учет/игнорирование диакритики при поиске

Post by Taciturn »

DrKnS wrote: Thu 23 Sep, 2021 19:40 можно все скопом запихнуть в "Case sensitive": если [x], то побайтовое совпадение, если [ ] - то игнорируя все, что можно.
А можно тогда какую-нибудь опцию, пусть даже скрытую, чтобы это выключить? Временами крайне мешает в Firefox'е, когда хочу найти ё, а ищет е. При этом Case sensitive, лично мне, почти никогда не требуется.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Учет/игнорирование диакритики при поиске

Post by HaRT »

changelog wrote:
drkns 25.09.2021 03:00:00 +0100 - build 5890 1. Experimental: fuzzy search in panels, editor and help: a can match àáâãäåāăą, еи - ёй, き- ぎ, Æ - ae, ß - ss and so on and vice versa.
А можно как-то запустить точный (не fuzzy) поиск? Например, без регулярок fuzzy, а с ними — строго что заказано. А лучше и вовсе отдельную опцию.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Учет/игнорирование диакритики при поиске

Post by buniak_a_h »

  1. Сейчас поиск без учёта диакритики включается/выключается флагом Case sensitive. На самом деле хотелось бы отдельный флаг или настройку в far:config-е
  2. А ещё я в своей таможенной программе делал когда-то поиск с учётом вида символов: Н (эн) и H (ейч), р и p - не различались. И это было мудро: в старых ДОС-программах типа NC, VC символы р и М специально заменялись на латиницу, т.к. были по кодировке похожи на служебные. Сейчас, конечно, неактуально, но есть старые файлы (у меня - книги), и я недавно такое там нашёл. А ещё некоторые документы, которые готовят (печатают) безответственные секретарши, которым всё равно, на какой раскладке набрано е=мс2 :-) Я с таким сталкивался при поиске по законодательству! Причём, даже в описании структур: тип поля - С (должна быть латинская, но… Зачем переключать раскладку, если разницы не видно?! Двоечницы!…)
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Учет/игнорирование диакритики при поиске

Post by HaRT »

buniak_a_h wrote: Sun 26 Sep, 2021 08:49 Сейчас поиск без учёта диакритики включается/выключается флагом Case sensitive.
Ну, в этом есть кое-какая логика, ведь различие регистра — это такой способ сопоставления разных символов, характерный только для западных языков. @DrKnS Но с другой стороны, учитывая распространённость этих самых западных языков, особенности их использования в интернетах и их значимость для пользователей Фара, было бы разумно иметь возможность искать с учётом регистра, но при этом без учёта диакритики и прочих особенностей. А также наоборот, без учёта регистра, но и без отождествления Е=Ё и И=Й.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Учет/игнорирование диакритики при поиске

Post by DrKnS »

HaRT wrote: Sun 26 Sep, 2021 14:38различие регистра — это такой способ сопоставления разных символов
Да. Можно, в принципе переименовать опцию в [ ] Exact match для наглядности.
было бы разумно иметь возможность искать с учётом регистра, но при этом без учёта диакритики и прочих особенностей
Я пока не очень понимаю, в каких сценариях может понадобиться по "Е" находить "Е" и "Ё", но не "е".

Как правило, хочется либо точного совпадения, либо примерного.
Учитывая, что пользователь обычно ищет не одну букву, а как минимум слово, случаи ложного совпадения из-за дополнительных сопоставлений вряд ли будут настолько частыми и раздражающими до степени "кушать не могу", чтобы городить новую опцию.
Но посмотрим.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Учет/игнорирование диакритики при поиске

Post by buniak_a_h »

DrKnS wrote: Sun 26 Sep, 2021 16:13 в каких сценариях может понадобиться по "Е" находить "Е" и "Ё", но не "е"
Пример: при наборе включился caps lock. Ну и набирали сдуру. Теперь надо найти все вхождения, чтоб исправить.
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

Учет/игнорирование диакритики при поиске

Post by Taciturn »

DrKnS wrote: Sun 26 Sep, 2021 16:13 Я пока не очень понимаю, в каких сценариях может понадобиться по "Е" находить "Е" и "Ё", но не "е".
Именно. Лично мне это вообще никогда не нужно, т.е. «fuzzy search» не нужен вообще никогда, а вот находить «Е и е», но не «ё» и «Ё» нужно постоянно.
Last edited by Taciturn on Mon 27 Sep, 2021 04:23, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Учет/игнорирование диакритики при поиске

Post by HaRT »

DrKnS wrote: Sun 26 Sep, 2021 16:13 в каких сценариях может понадобиться по "Е" находить "Е" и "Ё", но не "е"
Например, когда нужно найти заголовок в корпусе старых текстов, где все заголовки заглавными, а е/ё расставлены непоследовательно.

И обратный пример: нужно найти все вхождения ошибки наподобие «таЙланд», «андроЙд» или «последний воЙн» без учёта регистра. Тут, конечно, можно было бы навернуть хитрую логику, что при указании И ищется и И, и Й, а при указании Й — только Й (по аналогии с тем, как иногда, если задать запрос строчными, то ищется без учёта регистра, а если хотя бы с одной заглавной — то строго как написано). Но, подозреваю, это менее очевидно и сложнее в реализации.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Учет/игнорирование диакритики при поиске

Post by HaRT »

DrKnS wrote: Sun 26 Sep, 2021 16:13 городить новую опцию
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

Return to “Предложения и идеи”