База данных с пропущенными символами в названиях

Автор vitaliian, 27 августа 2017, 19:19

0 Пользователи и 1 гость просматривают эту тему.

vitaliian

Добрый день, коллеги! Досталась вот такая база (файл gostinitsy_rf), есть интерес заменить решётку в названиях на соответствующие буквы. Это не коммерческий проект, поэтому номера телефонов можно игнорировать. Делать это вручную не вариант.  Подтягивать подходящие названия можно из словаря. Никто с подобной задачей не сталкивался?

JohnSUN

Что-то у тебя и со словарём не то... Ты его нормально читаешь? А то у меня вместо "я" почему-то "клоп", а вместо "ё" - "Є"
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

vitaliian

#2
ссори, глюки кодировки... этот вроде норм.

JohnSUN

Да нет, он - даже исправленный - здесь ничем не поможет... Улицу "Сов#тск#й Ар#ии" в таком словаре искать нет смысла... Или, скажем, "fac#boo#.com"...
А скрапить всё в интернете - обломно?

По идее, нужно прошерсить все 136 тысяч ячеек, выделяя из строк отдельные слова с решётками и без решёток, создать из них два словаря. Для слов с решётками попытаться отыскать возможные варианты в словаре без решёток - если найдено однозначное соответствие, запомнить его, если найдено несколько вариантов - предложить их все для выбора нужного, если ничего похожего не найдено - предложить исправить вручную...
А потом уже по этому словарю (проверенному и перепроверенному) запустить замену по всей таблице
В общем, муторная тебе досталась задачка...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

vitaliian

#4
пока что я разбил все слова по столбцам, заменил решетку на регулярку " [а-я] " (без кавычек)

по словарю ищет более менее норм (при условии что это слово есть в словаре),

Подскажите как в регулярке указать, чтобы в поиске подставлял только одну букву, вариант " [а-я]{1} " не работает...

JohnSUN

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

vitaliian

#6
Цитата: JohnSUN от 27 августа 2017, 20:44
А вместо [а-я] обычную точку не пробовал?

тот же эффект .ато. ищет "батог батожок батожьё батолит батометр батон батончик батопорт"
а нужно чтобы находил только "батог" и "батон" то есть подставлял один символ вместо точки или моего [а-я]

нашёл (может кому пригодится) ^[а-я]{1} ато [а-я]{1}$  теперь регулярка находит такие слова: затор катод каток, подставляя по одной букве справа и слева.

JohnSUN

Ну, ^.ато.$ найдёт те же слова...

Ты лучше скажи, что собираешься с телефонами-адресами делать? Без этих данных база - не база... Адреса, допустим, кое-где угадать можно. А что с телефонами придумал?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

vitaliian

#8
Цитата: JohnSUN от 27 августа 2017, 21:05

Ты лучше скажи, что собираешься с телефонами-адресами делать? Без этих данных база - не база... Адреса, допустим, кое-где угадать можно. А что с телефонами придумал?

Как я писал в первом сообщении это "некоммерческий проект". Такое "домашнее задание" для тех кто осваивает calc как программу для обработки текста. Столбцы с телефонами изначально были не нужны, извиняюсь, что не удалил их сразу.

Ваш вариант лучше слово с 2мя пропусками ^Сев.рна.$ отлично находится

JohnSUN

Цитата: vitaliian от 27 августа 2017, 21:34
для тех кто осваивает calc как программу для обработки текста
Мой мир больше не будет прежним... Ты собираешься вручную исправить весь этот мусор только для того, чтобы прокачать навыки работы с текстовыми возможностями Calc?!!
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

vitaliian

#10
ЦитироватьМой мир больше не будет прежним... Ты собираешься вручную исправить весь этот мусор только для того, чтобы прокачать навыки работы с текстовыми возможностями Calc?!!

Сам по себе этот текст мне нафик не нужен, нужна формула, способная его причесать. Я собираюсь написать формулу которая к каждому слову с пропуском  предложит вариант на замену. Слова для которых в словаре не найдётся вариантов будут удалены, как бесполезные. Пока что находим ~70-80% но словарь конечно странный.

kompilainenn

Вы уверены, что Calc - это лучшее решение для таких задач?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

JohnSUN

Не макрос, именно формулу?
Похожий макрос где-то здесь на форуме был, там тоже что-то с населенными пунктами было... О! Нашёл...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

JohnSUN

Цитата: JohnSUN от 27 августа 2017, 20:09
нужно прошерсить все 136 тысяч ячеек, выделяя из строк отдельные слова с решётками и без решёток, создать из них два словаря. Для слов с решётками попытаться отыскать возможные варианты в словаре без решёток - если найдено однозначное соответствие, запомнить его, если найдено несколько вариантов - предложить их все для выбора нужного, если ничего похожего не найдено - предложить исправить вручную...
В общем, самая первая часть этого плана реализуется как-то так
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

vitaliian

Цитата: JohnSUN от 27 августа 2017, 21:51
Не макрос, именно формулу?
Похожий макрос где-то здесь на форуме был, там тоже что-то с населенными пунктами было... О! Нашёл...

Я тут кажется встречал формулу, которая сравнивает 2 столбца, на предмет совпадений, остаётся в нее включить регулярку. Поиском с регулярками пользовался, а формулами нет. Макросы не люблю с детства, наверное какой то комплекс.