vitaliian
Участник

Offline
Сообщений: 22
|
Добрый день, коллеги! Досталась вот такая база (файл gostinitsy_rf), есть интерес заменить решётку в названиях на соответствующие буквы. Это не коммерческий проект, поэтому номера телефонов можно игнорировать. Делать это вручную не вариант. Подтягивать подходящие названия можно из словаря. Никто с подобной задачей не сталкивался?
|
|
« Последнее редактирование: 27 Август 2017, 19:21 от vitaliian »
|
Записан
|
|
|
|
JohnSUN
|
Что-то у тебя и со словарём не то... Ты его нормально читаешь? А то у меня вместо "я" почему-то "клоп", а вместо "ё" - "Є"
|
|
|
Записан
|
|
|
|
vitaliian
Участник

Offline
Сообщений: 22
|
ссори, глюки кодировки... этот вроде норм.
|
|
« Последнее редактирование: 27 Август 2017, 19:51 от vitaliian »
|
Записан
|
|
|
|
JohnSUN
|
Да нет, он - даже исправленный - здесь ничем не поможет... Улицу "Сов#тск#й Ар#ии" в таком словаре искать нет смысла... Или, скажем, "fac#boo#.com"... А скрапить всё в интернете - обломно?
По идее, нужно прошерсить все 136 тысяч ячеек, выделяя из строк отдельные слова с решётками и без решёток, создать из них два словаря. Для слов с решётками попытаться отыскать возможные варианты в словаре без решёток - если найдено однозначное соответствие, запомнить его, если найдено несколько вариантов - предложить их все для выбора нужного, если ничего похожего не найдено - предложить исправить вручную... А потом уже по этому словарю (проверенному и перепроверенному) запустить замену по всей таблице В общем, муторная тебе досталась задачка...
|
|
|
Записан
|
|
|
|
vitaliian
Участник

Offline
Сообщений: 22
|
пока что я разбил все слова по столбцам, заменил решетку на регулярку " [а-я] " (без кавычек)
по словарю ищет более менее норм (при условии что это слово есть в словаре),
Подскажите как в регулярке указать, чтобы в поиске подставлял только одну букву, вариант " [а-я]{1} " не работает...
|
|
« Последнее редактирование: 27 Август 2017, 20:43 от vitaliian »
|
Записан
|
|
|
|
JohnSUN
|
А вместо [а-я] обычную точку не пробовал?
|
|
|
Записан
|
|
|
|
vitaliian
Участник

Offline
Сообщений: 22
|
А вместо [а-я] обычную точку не пробовал?
тот же эффект .ато. ищет "батог батожок батожьё батолит батометр батон батончик батопорт" а нужно чтобы находил только "батог" и "батон" то есть подставлял один символ вместо точки или моего [а-я] нашёл (может кому пригодится) ^[а-я]{1} ато [а-я]{1}$ теперь регулярка находит такие слова: затор катод каток, подставляя по одной букве справа и слева.
|
|
« Последнее редактирование: 27 Август 2017, 21:01 от vitaliian »
|
Записан
|
|
|
|
JohnSUN
|
Ну, ^.ато.$ найдёт те же слова...
Ты лучше скажи, что собираешься с телефонами-адресами делать? Без этих данных база - не база... Адреса, допустим, кое-где угадать можно. А что с телефонами придумал?
|
|
|
Записан
|
|
|
|
vitaliian
Участник

Offline
Сообщений: 22
|
Ты лучше скажи, что собираешься с телефонами-адресами делать? Без этих данных база - не база... Адреса, допустим, кое-где угадать можно. А что с телефонами придумал?
Как я писал в первом сообщении это "некоммерческий проект". Такое "домашнее задание" для тех кто осваивает calc как программу для обработки текста. Столбцы с телефонами изначально были не нужны, извиняюсь, что не удалил их сразу. Ваш вариант лучше слово с 2мя пропусками ^Сев.рна.$ отлично находится
|
|
« Последнее редактирование: 27 Август 2017, 21:43 от vitaliian »
|
Записан
|
|
|
|
JohnSUN
|
для тех кто осваивает calc как программу для обработки текста
Мой мир больше не будет прежним... Ты собираешься вручную исправить весь этот мусор только для того, чтобы прокачать навыки работы с текстовыми возможностями Calc?!!
|
|
|
Записан
|
|
|
|
vitaliian
Участник

Offline
Сообщений: 22
|
Мой мир больше не будет прежним... Ты собираешься вручную исправить весь этот мусор только для того, чтобы прокачать навыки работы с текстовыми возможностями Calc?!!
Сам по себе этот текст мне нафик не нужен, нужна формула, способная его причесать. Я собираюсь написать формулу которая к каждому слову с пропуском предложит вариант на замену. Слова для которых в словаре не найдётся вариантов будут удалены, как бесполезные. Пока что находим ~70-80% но словарь конечно странный.
|
|
« Последнее редактирование: 27 Август 2017, 21:49 от vitaliian »
|
Записан
|
|
|
|
kompilainenn
|
Вы уверены, что Calc - это лучшее решение для таких задач?
|
|
|
Записан
|
|
|
|
JohnSUN
|
Не макрос, именно формулу? Похожий макрос где-то здесь на форуме был, там тоже что-то с населенными пунктами было... О! Нашёл...
|
|
|
Записан
|
|
|
|
JohnSUN
|
нужно прошерсить все 136 тысяч ячеек, выделяя из строк отдельные слова с решётками и без решёток, создать из них два словаря. Для слов с решётками попытаться отыскать возможные варианты в словаре без решёток - если найдено однозначное соответствие, запомнить его, если найдено несколько вариантов - предложить их все для выбора нужного, если ничего похожего не найдено - предложить исправить вручную...
В общем, самая первая часть этого плана реализуется как-то так
|
|
|
Записан
|
|
|
|
vitaliian
Участник

Offline
Сообщений: 22
|
Не макрос, именно формулу? Похожий макрос где-то здесь на форуме был, там тоже что-то с населенными пунктами было... О! Нашёл...Я тут кажется встречал формулу, которая сравнивает 2 столбца, на предмет совпадений, остаётся в нее включить регулярку. Поиском с регулярками пользовался, а формулами нет. Макросы не люблю с детства, наверное какой то комплекс.
|
|
|
Записан
|
|
|
|
|