All streams
Search
Write a publication
Pull to refresh
17
0
Утюгов Александр @ALIron

Архитектор

Send message
Илья прислал еще одно письмо:

цитата:

Два текстовых файла внутри архива. Сделал минут 20 назад.
dl.dropbox.com/u/8251541/tel_codes.rar
Эту ссылку можете дать на хабре, может, кому тоже пригодится. Заодно ошибки Ростелекомовские поищем вместе.
Источник неофициальный => актуальность, точность, полнота может страдать.

А вообще рад что эта тема начинает развиваться.

потому как давно известно «Мусор на входе = мусор на выходе»
А как дела с полнотой, точностью и актуальностью у этой БД?
Основная проблема в DQ именно актуальные справочники.
Все же я думаю что без базы знаний (как её реализовывать не принципиально) не обойтись.

Привязка телефонного номера должна быть к определенной территории (точность мы сами выбираем, хотим до населенного пункта — один размер базы, хотим до дома — другой).

Аналогично и с операторами сотовой связи — у них так же есть свои внутренние коды привязанные к территории страны.

попросили опубликовать:

Здравствуйте, Александр!

На хабре не зарегистрирован, поэтому не могу прокомментировать статью Форматирование телефонных номеров на PHP, а контакты автора не нашел. Увидел, что Вы принимаете активное участие в обсуждении, поэтому написал Вам с просьбой опубликовать мой комментарий. Прошу прощения за беспокойство.

В России длина телефонного номера вместе с кодом города или с кодом оператора равна точно 10 цифрам. Как заметили в комментариях коды городов «Уфа 347, Стерлитамак 3473, Агидель 34731» имеют разную длину, но в Уфе длина городского номера 7 цифр, в Стерлитамаке — 6, а в Агидели — 5, т. е. в сумме длина всегда 10 цифр.

Первые три цифры кода каждого из городов одинаковы — 347, и эти цифры можно назвать телефонным кодом региона в целом (по аналогии с КЛАДР, как это также заметили в комментариях). Для каждого региона России существует обычно один такой общий псевдокод региона, но в Москве их два — 499 и 495. Т. е. для всех регионов России существует менее 90 кодов (не настолько большая цифра, чтобы прибегать к услугам базы данных).

Распределение кодов регионов по карте России тоже имеет некоторые закономерности: 45х-49х — Центральная Россия, окруженная 81х — 87х (с севера на юг вторая цифра обычно увеличивается), в глубь страны идут 34х-39х, и Саха с Дальним Востоком имеют коды 41х-42х. Калининградская область («на отшибе») имеет код 401. Так что и на основании этих данных можно осуществить проверку правильности ввода телефонного номера.

Но не бывает правил «10 цифр (код+номер)» без исключений. Точно знаю, что в Московской области телефоны вида: (49645) х-хх-хх заменяются на (245) х-хх-хх (496 заменяется на 2), по другим регионам информации у меня нет.

Итак, регион находим по первым трем цифрам 10-значного номера, уточняем положение внутри региона добавляя еще 1 или 2 следующих цифры. Для корректного форматирования номера стационарного телефона уже придется иметь базу кодов городов, чтобы точно отделить номер от кода. Всего кодов российских городов в открытых источниках мне удалось найти более 2000.

Что касается кодов мобильных операторов, то по этому коду можно определять принадлежность номера к определенному региону. И если емкость 926 полностью принадлежит Москве и области, то в случае с 901 не все так просто, но не безнадежно. Например, (901)6000000 — (901)6009999 — это Респ. Хакасия (но не вся), а (901)9440000 — (901)9449999 — Архангельская область (тоже не вся). Для каждого региона может быть назначено несколько последовательностей (емкостей) внутри одного кода оператора. Впрочем, это уже не вопрос форматирования, т. к. длина номера с кодом и здесь — ровно 10 цифр.Общее число непрерывных последовательностей (регион, код, диапазон, дата открытия диапазона) в России более 3500, т. е. без базы данных проверить корректность номера и/или принадлежность к определенному региону также проблематично.

С уважением,
Илья
а как поддерживать код?
перенумерация (дефалтсити тому пример), присоединение населенных пунктов.
да и просто новые коды городов?
Это задача из Data Quality.
Простым деревом не решить.
тут нужен аналог КЛАДР.
Ведь как ни крути а телефонный номер — это тот же адрес, только электронный. В нем зашита и страна, и город, и даже район города, а при нужных базах дом и квартира. =)

А так как адреса никогда в дерево утрамбовать не получиться, то и решение идеальным не будет.

То что у вас сделано, достойно, но не покрывает всего поля вариантов.

Есть специальные сервисы которые зарабатывают на такой чистке данных.
Поверьте на слово, они не будут продавать услуги основанные на простом коде, так как задача требует сложных алгоритмов.

В российском сегменте такими задачами занимаются iqsystems.ru и hflabs.ru

Есть еще, но эти компании наиболее продвинулись по данному направлению.
мы так делаем 2,5К проверок по клиентски полям. ТЗ 800 страниц=)
Неужели перелом в череде «школьных порталов»?
не сглазить бы…

Такими проектами можно гордиться.
Ссылку в избранное и всем знакомым юристам и деловым партнерам.
Опенсорс облако хранения.
хм…
Прикрутить к распределенным вычислениям и будет неубиваемая система, которая стоит нигде и везде одновременно.
у бухов есть такая операция называется «крыжить». Означает сверять что то с чем то путем визуального сравнения и проставления крыжиков, то есть галочек, или плюсиков у кого что.
А вы попробуйте. я был в шоке когда дед стал строчить смс =)
>Многие из нас — гики, пользователи наших продуктов — нет
Золотые слова. Тестируйте интерфейсы на бабушках и дедушках — если они разберуться значит удачно.
Уровень первичной компетенции не должен влиять на восприятие продукта. Если в общем виде.
>Многие из нас — гики, пользователи наших продуктов — нет
Золотые слова. Тестируйте интерфейсы на бабушках и дедушках — если они разберуться значит удачно.
Уровень первичной компетенции не должен влиять на восприятие продукта. Если в общем виде.
Пусть возьмут опыт Энкаунтера.

Когда надо за сутки уговорить людей из 100 городов пойти в определенное место и прочитать и переслать код.
Координаты… =)) Вот заставить 100 незнакомых людей залезть в грязь это да=).
Не могу согласиться.
Излишне «закрученная» валидация тоже чести системе не делает.
Ведь не все правила можно предусмотреть и позиция от разрешения имхо все же не юзабельна.
Отсекать ошибки — да, но разрешать только то что знаю — увольте.
Конечно запрещать в поле сумма вводить только цифры с разделителем — согласен, но не всё так очевидно.
Не стоит недооценивать «подумать над задачей»
В большинстве случаев это очень полезно, особенно если задача на первый взгляд кажется простой.

Приведу пример.
Нужно загнать к КЛАДР несколько десятков миллионов записей адресов вбитых в операторами в одну строку.
на первый взглят проще некуда. Шаблоны+парсинг\матчинг и поехали допиливать шаблоны и алгоритмы
Так поступил один поставщик

Второй подумал. И сделал подругому.

В итоге первый поставщик на выходе 95% неплохо правда? НО! 5% от десяти млн. сколько? Очень много. Отдать на ручной разбор? А кто заплатит? Клиент? Щас… разбежались. Посадить сотню «негров» на пару лет и за них платить никого не радует.

Второй поставщик подумав выдал 99,8% точность разбора.

Итог очевиден. 4 % разницы решили исход. Потому как ручной разбор 4% стоит больше чем компании разработчики вместе взятые.

ПС. чуть не забыл
Первый поставщик разбирал на сервере с трехзначной цифрой гигов в ОЗУ, а второй на ноуте =) и у второго получалось быстрее.

Так что математика 7-8 класса не всегда достаточна.
можно результаты увидеть?
Прототип на «боевой» задаче? смело…
Насколько критичен был простой?
или все таки на тестовом стенде гоняли?..
>Пока это головная боль тех кто тестирует. Из 12 устройств, 9 из которых были >прототипами, за месяц бенчмарков убили 4. В том числе одно готовое (по мнению >производителя). У 2 сдохли нанды, у 2 — рамы.

Судя по тестам производитель может и не успеть поставить замену с такой скоростью поломок. С другой стороны понятно что прототипы в пром эксплуатацию ставить никто не будет.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity