Boris писал(а):В моем понимании это не программа, а издевательство. Программы с регулярными выражениями сами по себе испытания для читающего, но в таком виде - вещь не подъемная.
Спасибо что уделили время. Извините что подверг вас испытаниям.
Почти все участники проекта уик-гео обрабатывающие адреса участков и отделяющие именно адреса от мест голосования, и к тому же приведения адресов к единообразию для успешного геокодирования рано или поздно пришли к обработке текста с помощью регулярных выражений.
И без этих знаний на этом этапе работы помочь не получится.
Преставленные файл address.sed и содержит множество регулярок которые преобразуют строку адреса в вид подходящий для геокодирования.
Boris писал(а):Я не понял главного - что именно не позволяет выполнять геокодирование? Исходные(?) данные очень неплохо структурированы и уже имеют разделитель в виде запятой. Зачем их еще раз структурировать под пробелы(?)
Не позволяет выполнять геокодирование несколько проблем (главную сложно выделить)
к примеру:
- адресная строка может быть не полной (содержать улицу и дом), хотя из строк выше и ниже можно установить и область и район и нас.пункт. Нужно заменить такую строку на полную.
- адресная строка может содержать лишние символы которые отрицательно влиют на понимание этого адреса геокодером (запятые подряд, сокращения, ковычки и пр.)
- в адресной строке содержатся очень бюрократизированные названия которые неоходимо привести к простому виду как их употребляют в адресах
- и основное в адресной строке содержатся название места голосования. вот в базе цика взяли и сделали под это одно поле и все вводят как им придется. и уже хорошо что обычно один вид имею десятки, а то и сотни строк. поэтому регулярные шаблоны очень облегчают преобразования.
всё это накладывается на объём ~100000 строк.
и нужно делать такие преобразования после каждого прохода парсера, который запускается еженедельно (или по мере надобности).
можно конечно отложить эту работу до осени, но боюсь сразу такой объем будет сложно осилить.
Boris писал(а):и заниматься python-самодеятельностью
действительно питон самодеятельность в конце по отбрасыванию это было через чур.
просто последняя регулярка должна быть s/^\(.*\)\t\(.*\)$/\1/
и уже в этом вы мне помогли. спасибо.
Boris писал(а):На первый взгляд дан типичный пример избыточной плоской таблицы, которая может быть нормализована в несколько иерархических таблиц, но опять же не понятно зачем, если каждая запись (?) не имеет номера УИК, и кодируется в единственную точку на карте.
строки с адресами для обработки можно получить напрямую из базы данных
sqlite3 -header -csv cik.sqlite "select address from cik_uik order by id" > c.000
и так как преобразуются строки без изменения их количества то можно затем их вернуть в базу
или вставить в таблицу где есть остальные данные уика.
Boris, спасибо за ваш ответ. Мне стало видно скомканность своих мыслей и сумбурность их изложения. Постараюсь исправится.
bim2010, Вы правильные ссылки приводите. Печально.
bim2010 писал(а):
что мешает продолжить работу в УИК ГЕО? Найти, выделить изменения и устроить хакатон.
чтобы продолжить работу в УИК-ГЕО, нужно:
- Переместить в архив почти все темы на форуме по прошедшей работе. Они уже не актуальны.
Оставить тему с описанием проекта и тему с прошлыми достижениями для истории.
- перезапустить проект под маркой УИК-ГЕО 2016.
- Описать новую задачу и способы их решения и только затем подключать участников.
Пока не видел движений по этой теме. Поэтому и создал отдельный топик.
Почитал
УИК ГЕО - создание слоя данных по местоположениям УИК РФ получается то что предлагаю пункт
1 Подготавливается полный список УИКов региона (готовность см. координационную таблицу)
надо приготовить задание для участников в виде (например)
1 Из проекта Данные по избирательным комиссиям РФ из ГАС Выборы берётся список УИКов региона. Из списка необходимо выделить данные о местонахождении уика (тик, ик). Подготовить файл с регулярными шаблонами для преобразования строки в вид (адрес) понятный для геокодера.
Единственное что регулярки нужно разделить как минимум на три этапа:
1) для общих действий
2) для отдельных регионов свои шаблоны
3) какая либо пост обработка...
файл address.sed изначально состоял из нескольких частей и именно из-за большого объема работы с каждым регионом решил поделится наработками в надежде что найдутся заинтересованные в выполнение этой задачи.
Сейчас вижу что нужно помимо наработок подготовить внятное задание описать способы его решения. Буду готовить.
P.S.
Во вложении дифф между двумя датами 2016.04.14 и 2016.04.18 и видно сколько адресов изменилось.
Между данными в системе УИК-ГЕО от 2014 года и текущими в системе ЦИКРФ нет вообще ничего общего. А это значит и во всех проектах которые брали те данные устаревшие сведения.
Потому и хочу чтобы все понимали что нужно готовить новые геоданные по уикам.