Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
Подскажите, есть ли какие то примеры, коды для распарсивания адреса? Пример г.Киев просп. Победы дом 1, кв 1 Киевская обл. г. Ирпень ул. Садовая дом 10, кв 1 и т д Я привел простенькие примеры, попадаются и варианты похуже с Селами, в/ч, Районами Или распарсить адрес практически невозможно без ошибок? ps: Ошибок все равно не избежать но я вижу что процентов 70-80 из той базы которую предоставили все таки получить нормальные данные можна, а те что невозможно распарсить просто сохранять в отдельной колонке в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 10:11 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
УКРОП_, .. может, есть и готовые библиотеки (но я так подозреваю, там русский/украинский + странный украинский с латинской "i" вместо украинской и т.д.), но вообще говоря - строковые функции в руки - и писать свой парсер: String.Contains(), String.IndexOf(), String.StartsWith(), .Substring() и т.д. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 11:01 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
carrotikУКРОП_, .. может, есть и готовые библиотеки (но я так подозреваю, там русский/украинский + странный украинский с латинской "i" вместо украинской и т.д.), но вообще говоря - строковые функции в руки - и писать свой парсер: String.Contains(), String.IndexOf(), String.StartsWith(), .Substring() и т.д. ... спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 11:03 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
Гляньте, может поможет: http://habrahabr.ru/post/232347/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 11:08 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
УКРОП_Подскажите, есть ли какие то примеры, коды для распарсивания адреса? Пример г.Киев просп. Победы дом 1, кв 1 Киевская обл. г. Ирпень ул. Садовая дом 10, кв 1 и т д Я привел простенькие примеры, попадаются и варианты похуже с Селами, в/ч, Районами Или распарсить адрес практически невозможно без ошибок? ps: Ошибок все равно не избежать но я вижу что процентов 70-80 из той базы которую предоставили все таки получить нормальные данные можна, а те что невозможно распарсить просто сохранять в отдельной колонке в базе. При такой постановке вопроса вручную ). ищи правила, если город всегда ничинается на "г." , а улица на "ул." то пляши отседова. почитай тут тут или используй string.Indexof(" г.") string.Indexof(" ул.") а потом substring до 2 продела напрмер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 11:10 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
УКРОП_, вообще есть лингвистические системы - парсеры адресов. ищи address parser. правда под каждого заказчика их настраивать индивидуально приходиться. стоят дорого :) я знаю - у нас такую систему ребята разрабатывают - работает. если интересует высокий процент разбора адресов - то лучше покупать уже готовую систему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 11:17 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
УКРОП_, работа в ексель ---может поможет строки перевожу в столбик(я меня запятая нормально работает, у вас сложнее г.Киев просп., Победы дом 1,кв 1 Киевская обл., г. Ирпень ул. Садовая дом 10, кв 1 1г.Киев просп.столбик для кода лексемы из впр1Победы дом 11кв 12Киевская обл.2г. Ирпень2ул. Садовая 2дом 102 кв 1 и пополняю лист для впр в нем просматриваю пополнение и присваиваю код 1улица2дом2кв3населенный пункт4район5область6индекс затем уплотняю рабочий лист назад, на основной три листа сделала для удобства можно иметь только 2 1-основной 2-справочник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 11:35 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
Вообщем спасибо всем за советы. И проанализировав все, наверное придется писать парсер самому, так наверное надежней, да мало ли где понадобится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 11:51 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
УКРОП_Вообщем спасибо всем за советы. И проанализировав все, наверное придется писать парсер самому, так наверное надежней, да мало ли где понадобится. задача сводится к полнотекстовому поиску. иные варианты (с парсингом) довольно таки ущербны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 12:21 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
hVostt задача сводится к полнотекстовому поиску. иные варианты (с парсингом) довольно таки ущербны. ...тут просто есть еще один момент .. кто ни разу не сталкивался с парсингом украинских БД (адресов, контрагентов, номенклатуры изделий) - тот не поймет всей глубины выражения "как мне перестать офигевать и начать работать" .. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 12:25 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
Ваще, в таких задачах я загружаю данные на sql server и прохожусь по ним неказистым скриптом. В простейшем случае задача решается за час. Был однажды случай, надо было адреса разгребсти, но там был полный ппц. Нашел какой-то сайт для определения почтовых индексов, там ребята написала очень качественный лингвистический движок на оракле, ну я на тот сайт все данные и подсунул. Но там только для СПБ. ЗЫ Причем здесь язык не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 12:45 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
hVosttзадача сводится к полнотекстовому поиску. иные варианты (с парсингом) довольно таки ущербны. оч интересно, можно подробней, каким макаром здесь фул-текст-серч поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 12:47 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIhVosttзадача сводится к полнотекстовому поиску. иные варианты (с парсингом) довольно таки ущербны. оч интересно, можно подробней, каким макаром здесь фул-текст-серч поможет? введи любой адрес в Гугл и Яндекс и узнаешь как это помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 13:09 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
hVosttвведи любой адрес в Гугл и Яндекс и узнаешь как это помогает. Так бы сразу и сказал, если нужно распарсить строку с адресом - изобретите яндекс или гугл! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 13:16 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIhVosttвведи любой адрес в Гугл и Яндекс и узнаешь как это помогает. Так бы сразу и сказал, если нужно распарсить строку с адресом - изобретите яндекс или гугл! Зачем его изобретать? Есть готовые решения, берёшь и пользуешься. Оно надо, делать какой-то непонятный парсинг, который всё равно легко в итоге сломать? Если можно приделать полнотекстовый поиск и предлагать наиболее релевантные результаты. По опыту, самое простое и надёжное решение, хотя и требует некоторых затрат на хранение поискового индекса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 13:51 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
hVosttЗачем его изобретать? Есть готовые решения, берёшь и пользуешься. Оно надо, делать какой-то непонятный парсинг, который всё равно легко в итоге сломать? Если можно приделать полнотекстовый поиск и предлагать наиболее релевантные результаты. По опыту, самое простое и надёжное решение, хотя и требует некоторых затрат на хранение поискового индекса. Еще раз. Есть строки типа: 1) г.Киев просп. Победы дом 1, кв 1 2) Киевская обл. г. Ирпень ул. Садовая дом 10, кв 1 И есть сруктура, типа: Регион | Город | Улица | Дом | Корпус | Квартира Нужно на основе строк создать объекты данной структуры. Чем поможет полнотекстовый поиск и чем он будет эффективнее тех же регулярок к примеру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 13:59 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIЕще раз. Есть строки типа: 1) г.Киев просп. Победы дом 1, кв 1 2) Киевская обл. г. Ирпень ул. Садовая дом 10, кв 1 Садовая Киев дом 10 Киев Садовая улица 10 Ирпень Садовая 10 Киев ... Если даёшь пользователю одинокую строку, то не стоит надеяться на какую-то там структуру. Хочешь структуру? Дай пользователю несколько полей. Всякие модификаторы типа ул./г./пос./д... ими можно только подтереться, так как пользователь обленился и уже давно привык вводить минимум необходимой информации. Даже так: киев сад 10 --> город Киев, улица Садовая, дом 10 киев обл черня первом 12/1 --> Киевская область, посёлок Черняховский, переулок Первомайский, дом 12/1 должно работать, или не стоит даже заморачиваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 14:26 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
Ты реально не догоняешь суть задачи или прикидываешься? Пример. Сидит десяток менеджеров, принимают заказы по телефону и забивают адреса клиентов в одну строку в какойнить 1C. Каждый вбивает как ему в голову взбредет или как клиент сказал. Вот и получилось хреновых 10к строк. Теперь начальнег говорит - разослать всем клиетам коммерческие предложения по почте. Если будешь на конвертах печатать такую хрень как менеджеры вбили, письма будут до следующего пришествия по миру бродить. Соответственно нужно привести адреса к нормализованному виду и распечатать на конвертах. При чем здесь полнотекстовый поиск? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 14:42 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIКаждый вбивает как ему в голову взбредет или как клиент сказал. ну-ка "распарсь" мне вот эту строку: Киеская олб. улиац Садовая дом 10 умник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 15:35 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
Вот же человек, нет что бы сказал - да, фигню сморозил, полнотекстовый поиск здесь не пришей к... так он еще и выеживается Распаршу, поверь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 15:40 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIТы реально не догоняешь суть задачи или прикидываешься? Пример. Сидит десяток менеджеров, принимают заказы по телефону и забивают адреса клиентов в одну строку в какойнить 1C. Каждый вбивает как ему в голову взбредет или как клиент сказал. Вот и получилось хреновых 10к строк. Теперь начальнег говорит - разослать всем клиетам коммерческие предложения по почте. Если будешь на конвертах печатать такую хрень как менеджеры вбили, письма будут до следующего пришествия по миру бродить. Соответственно нужно привести адреса к нормализованному виду и распечатать на конвертах. При чем здесь полнотекстовый поиск? Я вижу вы знакомы с такими проблемами. Еще есть такая вещь что бы адрес клиента был точно как в паспорте, а в паспортном столе такое могут придумать ну просто жесть (я уже собрал много примеров из Донецкой области, там есть целая куча Макеевок, короче город в городе и т д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 15:46 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKIВот же человек, нет что бы сказал - да, фигню сморозил, полнотекстовый поиск здесь не пришей к... так он еще и выеживается Распаршу, поверь полнотекстовый поиск прекрасно решает задачу нечёткого поиска, с обработкой опечаток. чего ты там парсить собрался и как собираешься опечатки ловить, если по твоим же словам там сидит стадо обезьян и вбивает что попало, как попало? я уже в курсе, что ты абсолютно без понятия как решается эта задача, но зато корчишь из себя умника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 15:48 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
hVosttполнотекстовый поиск прекрасно решает задачу нечёткого поиска, с обработкой опечаток. чего ты там парсить собрался и как собираешься опечатки ловить, если по твоим же словам там сидит стадо обезьян и вбивает что попало, как попало? я уже в курсе, что ты абсолютно без понятия как решается эта задача, но зато корчишь из себя умника. Чудик, я таких задачек десятки решил, и очепятки тоже парсятся очень хорошо, если ты не знаешь методов, это не значит что их нет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 15:54 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
EDUARD SAPOTSKI Чудик, я таких задачек десятки решил, и очепятки тоже парсятся очень хорошо, если ты не знаешь методов, это не значит что их нет! ну так помоги человеку, выкати одно из своих десятков. или только языком молоть горазд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 16:10 |
|
||
|
Распарсить строку адреса
|
|||
|---|---|---|---|
|
#18+
hVosttну так помоги человеку, выкати одно из своих десятков. или только языком молоть горазд? Готовый скрипт не выкачу, пока они мне денюжку приносят, да и задачи не знаю и всех данных не вижу. Но в общем алгоритм прост - сначала шум убираешь, заменяешь все спецсимволы, знаки препинания на пробелы, удаляешь двойные пробелы, все в нижний регистр, один язык, дальше делим по ключевым словам... ну а дальше в зависимости от задачи... Проще это делать на T-SQL(для меня). Если сложные алгоритмы нужно применить, то есть смысл выгрузить в приложение и прогнать через алгоритм на C#. Универсального скрипта для таких задач не существует, всегда приходится что-то допиливать. Если уже действительно лингвистический анализ нужен, то в нете можно нарыть больше 10-ка различных алгоритмов, один в чем-то лучше, другой в другом, приходится их комбинировать... но это не тот случай, думаю здесь все просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 16:26 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38751757&tid=1356989]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 310ms |

| 0 / 0 |
