Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Распарсить строку адреса / 25 сообщений из 33, страница 1 из 2
19.09.2014, 10:11
    #38751213
УКРОП_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
Подскажите, есть ли какие то примеры, коды для распарсивания адреса?

Пример

г.Киев просп. Победы дом 1, кв 1
Киевская обл. г. Ирпень ул. Садовая дом 10, кв 1
и т д

Я привел простенькие примеры, попадаются и варианты похуже с Селами, в/ч, Районами

Или распарсить адрес практически невозможно без ошибок?

ps: Ошибок все равно не избежать но я вижу что процентов 70-80 из той базы которую предоставили все таки получить нормальные данные можна, а те что невозможно распарсить просто сохранять в отдельной колонке в базе.
...
Рейтинг: 0 / 0
19.09.2014, 11:01
    #38751269
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
УКРОП_,

.. может, есть и готовые библиотеки (но я так подозреваю, там русский/украинский + странный украинский с латинской "i" вместо украинской и т.д.), но вообще говоря - строковые функции в руки - и писать свой парсер: String.Contains(), String.IndexOf(), String.StartsWith(), .Substring() и т.д. ...
...
Рейтинг: 0 / 0
19.09.2014, 11:03
    #38751270
УКРОП_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
carrotikУКРОП_,

.. может, есть и готовые библиотеки (но я так подозреваю, там русский/украинский + странный украинский с латинской "i" вместо украинской и т.д.), но вообще говоря - строковые функции в руки - и писать свой парсер: String.Contains(), String.IndexOf(), String.StartsWith(), .Substring() и т.д. ...

спасибо.
...
Рейтинг: 0 / 0
19.09.2014, 11:08
    #38751277
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
Гляньте, может поможет: http://habrahabr.ru/post/232347/
...
Рейтинг: 0 / 0
19.09.2014, 11:10
    #38751281
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
УКРОП_Подскажите, есть ли какие то примеры, коды для распарсивания адреса?

Пример

г.Киев просп. Победы дом 1, кв 1
Киевская обл. г. Ирпень ул. Садовая дом 10, кв 1
и т д

Я привел простенькие примеры, попадаются и варианты похуже с Селами, в/ч, Районами

Или распарсить адрес практически невозможно без ошибок?

ps: Ошибок все равно не избежать но я вижу что процентов 70-80 из той базы которую предоставили все таки получить нормальные данные можна, а те что невозможно распарсить просто сохранять в отдельной колонке в базе.

При такой постановке вопроса вручную ).

ищи правила, если город всегда ничинается на "г." , а улица на "ул." то пляши отседова.

почитай тут тут или используй string.Indexof(" г.") string.Indexof(" ул.") а потом substring до 2 продела напрмер
...
Рейтинг: 0 / 0
19.09.2014, 11:17
    #38751289
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
УКРОП_,

вообще есть лингвистические системы - парсеры адресов. ищи address parser.
правда под каждого заказчика их настраивать индивидуально приходиться.
стоят дорого :) я знаю - у нас такую систему ребята разрабатывают - работает.
если интересует высокий процент разбора адресов - то лучше покупать уже готовую систему
...
Рейтинг: 0 / 0
19.09.2014, 11:35
    #38751306
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
УКРОП_,

работа в ексель ---может поможет


строки перевожу в столбик(я меня запятая нормально работает, у вас сложнее
г.Киев просп., Победы дом 1,кв 1
Киевская обл., г. Ирпень ул. Садовая дом 10, кв 1

1г.Киев просп.столбик для кода лексемы из впр1Победы дом 11кв 12Киевская обл.2г. Ирпень2ул. Садовая 2дом 102 кв 1

и пополняю лист для впр
в нем просматриваю пополнение и присваиваю код
1улица2дом2кв3населенный пункт4район5область6индекс

затем уплотняю рабочий лист назад, на основной

три листа сделала для удобства
можно иметь только 2
1-основной
2-справочник
...
Рейтинг: 0 / 0
19.09.2014, 11:51
    #38751340
УКРОП_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
Вообщем спасибо всем за советы.

И проанализировав все, наверное придется писать парсер самому, так наверное надежней, да мало ли где понадобится.
...
Рейтинг: 0 / 0
19.09.2014, 12:21
    #38751389
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
УКРОП_Вообщем спасибо всем за советы.

И проанализировав все, наверное придется писать парсер самому, так наверное надежней, да мало ли где понадобится.

задача сводится к полнотекстовому поиску. иные варианты (с парсингом) довольно таки ущербны.
...
Рейтинг: 0 / 0
19.09.2014, 12:25
    #38751397
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
hVostt
задача сводится к полнотекстовому поиску. иные варианты (с парсингом) довольно таки ущербны.

...тут просто есть еще один момент .. кто ни разу не сталкивался с парсингом украинских БД (адресов, контрагентов, номенклатуры изделий) - тот не поймет всей глубины выражения "как мне перестать офигевать и начать работать" .. :)
...
Рейтинг: 0 / 0
19.09.2014, 12:45
    #38751417
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
Ваще, в таких задачах я загружаю данные на sql server и прохожусь по ним неказистым скриптом. В простейшем случае задача решается за час.
Был однажды случай, надо было адреса разгребсти, но там был полный ппц. Нашел какой-то сайт для определения почтовых индексов, там ребята написала очень качественный лингвистический движок на оракле, ну я на тот сайт все данные и подсунул. Но там только для СПБ.
ЗЫ Причем здесь язык не понятно.
...
Рейтинг: 0 / 0
19.09.2014, 12:47
    #38751418
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
hVosttзадача сводится к полнотекстовому поиску. иные варианты (с парсингом) довольно таки ущербны.
оч интересно, можно подробней, каким макаром здесь фул-текст-серч поможет?
...
Рейтинг: 0 / 0
19.09.2014, 13:09
    #38751454
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
EDUARD SAPOTSKIhVosttзадача сводится к полнотекстовому поиску. иные варианты (с парсингом) довольно таки ущербны.
оч интересно, можно подробней, каким макаром здесь фул-текст-серч поможет?

введи любой адрес в Гугл и Яндекс и узнаешь как это помогает.
...
Рейтинг: 0 / 0
19.09.2014, 13:16
    #38751476
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
hVosttвведи любой адрес в Гугл и Яндекс и узнаешь как это помогает.
Так бы сразу и сказал, если нужно распарсить строку с адресом - изобретите яндекс или гугл!
...
Рейтинг: 0 / 0
19.09.2014, 13:51
    #38751531
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
EDUARD SAPOTSKIhVosttвведи любой адрес в Гугл и Яндекс и узнаешь как это помогает.
Так бы сразу и сказал, если нужно распарсить строку с адресом - изобретите яндекс или гугл!

Зачем его изобретать? Есть готовые решения, берёшь и пользуешься. Оно надо, делать какой-то непонятный парсинг, который всё равно легко в итоге сломать? Если можно приделать полнотекстовый поиск и предлагать наиболее релевантные результаты. По опыту, самое простое и надёжное решение, хотя и требует некоторых затрат на хранение поискового индекса.
...
Рейтинг: 0 / 0
19.09.2014, 13:59
    #38751545
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
hVosttЗачем его изобретать? Есть готовые решения, берёшь и пользуешься. Оно надо, делать какой-то непонятный парсинг, который всё равно легко в итоге сломать? Если можно приделать полнотекстовый поиск и предлагать наиболее релевантные результаты. По опыту, самое простое и надёжное решение, хотя и требует некоторых затрат на хранение поискового индекса.
Еще раз. Есть строки типа:

1) г.Киев просп. Победы дом 1, кв 1
2) Киевская обл. г. Ирпень ул. Садовая дом 10, кв 1

И есть сруктура, типа:

Регион | Город | Улица | Дом | Корпус | Квартира

Нужно на основе строк создать объекты данной структуры.
Чем поможет полнотекстовый поиск и чем он будет эффективнее тех же регулярок к примеру?
...
Рейтинг: 0 / 0
19.09.2014, 14:26
    #38751584
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
EDUARD SAPOTSKIЕще раз. Есть строки типа:

1) г.Киев просп. Победы дом 1, кв 1
2) Киевская обл. г. Ирпень ул. Садовая дом 10, кв 1

Садовая Киев дом 10
Киев Садовая улица 10
Ирпень Садовая 10 Киев
...

Если даёшь пользователю одинокую строку, то не стоит надеяться на какую-то там структуру. Хочешь структуру? Дай пользователю несколько полей. Всякие модификаторы типа ул./г./пос./д... ими можно только подтереться, так как пользователь обленился и уже давно привык вводить минимум необходимой информации.

Даже так:

киев сад 10 --> город Киев, улица Садовая, дом 10
киев обл черня первом 12/1 --> Киевская область, посёлок Черняховский, переулок Первомайский, дом 12/1

должно работать, или не стоит даже заморачиваться.
...
Рейтинг: 0 / 0
19.09.2014, 14:42
    #38751612
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
Ты реально не догоняешь суть задачи или прикидываешься?
Пример.
Сидит десяток менеджеров, принимают заказы по телефону и забивают адреса клиентов в одну строку в какойнить 1C.
Каждый вбивает как ему в голову взбредет или как клиент сказал. Вот и получилось хреновых 10к строк. Теперь начальнег говорит - разослать всем клиетам коммерческие предложения по почте.
Если будешь на конвертах печатать такую хрень как менеджеры вбили, письма будут до следующего пришествия по миру бродить. Соответственно нужно привести адреса к нормализованному виду и распечатать на конвертах.
При чем здесь полнотекстовый поиск?
...
Рейтинг: 0 / 0
19.09.2014, 15:35
    #38751679
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
EDUARD SAPOTSKIКаждый вбивает как ему в голову взбредет или как клиент сказал.

ну-ка "распарсь" мне вот эту строку:

Киеская олб. улиац Садовая дом 10

умник.
...
Рейтинг: 0 / 0
19.09.2014, 15:40
    #38751689
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
Вот же человек, нет что бы сказал - да, фигню сморозил, полнотекстовый поиск здесь не пришей к... так он еще и выеживается
Распаршу, поверь
...
Рейтинг: 0 / 0
19.09.2014, 15:46
    #38751697
УКРОП_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
EDUARD SAPOTSKIТы реально не догоняешь суть задачи или прикидываешься?
Пример.
Сидит десяток менеджеров, принимают заказы по телефону и забивают адреса клиентов в одну строку в какойнить 1C.
Каждый вбивает как ему в голову взбредет или как клиент сказал. Вот и получилось хреновых 10к строк. Теперь начальнег говорит - разослать всем клиетам коммерческие предложения по почте.
Если будешь на конвертах печатать такую хрень как менеджеры вбили, письма будут до следующего пришествия по миру бродить. Соответственно нужно привести адреса к нормализованному виду и распечатать на конвертах.
При чем здесь полнотекстовый поиск?

Я вижу вы знакомы с такими проблемами.

Еще есть такая вещь что бы адрес клиента был точно как в паспорте, а в паспортном столе такое могут придумать ну просто жесть (я уже собрал много примеров из Донецкой области, там есть целая куча Макеевок, короче город в городе и т д.)
...
Рейтинг: 0 / 0
19.09.2014, 15:48
    #38751702
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
EDUARD SAPOTSKIВот же человек, нет что бы сказал - да, фигню сморозил, полнотекстовый поиск здесь не пришей к... так он еще и выеживается
Распаршу, поверь

полнотекстовый поиск прекрасно решает задачу нечёткого поиска, с обработкой опечаток. чего ты там парсить собрался и как собираешься опечатки ловить, если по твоим же словам там сидит стадо обезьян и вбивает что попало, как попало? я уже в курсе, что ты абсолютно без понятия как решается эта задача, но зато корчишь из себя умника.
...
Рейтинг: 0 / 0
19.09.2014, 15:54
    #38751711
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
hVosttполнотекстовый поиск прекрасно решает задачу нечёткого поиска, с обработкой опечаток. чего ты там парсить собрался и как собираешься опечатки ловить, если по твоим же словам там сидит стадо обезьян и вбивает что попало, как попало? я уже в курсе, что ты абсолютно без понятия как решается эта задача, но зато корчишь из себя умника.
Чудик, я таких задачек десятки решил, и очепятки тоже парсятся очень хорошо, если ты не знаешь методов, это не значит что их нет!
...
Рейтинг: 0 / 0
19.09.2014, 16:10
    #38751736
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
EDUARD SAPOTSKI Чудик, я таких задачек десятки решил, и очепятки тоже парсятся очень хорошо, если ты не знаешь методов, это не значит что их нет!

ну так помоги человеку, выкати одно из своих десятков. или только языком молоть горазд?
...
Рейтинг: 0 / 0
19.09.2014, 16:26
    #38751757
EDUARD SAPOTSKI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Распарсить строку адреса
hVosttну так помоги человеку, выкати одно из своих десятков. или только языком молоть горазд?
Готовый скрипт не выкачу, пока они мне денюжку приносят, да и задачи не знаю и всех данных не вижу.
Но в общем алгоритм прост - сначала шум убираешь, заменяешь все спецсимволы, знаки препинания на пробелы, удаляешь двойные пробелы, все в нижний регистр, один язык, дальше делим по ключевым словам... ну а дальше в зависимости от задачи... Проще это делать на T-SQL(для меня). Если сложные алгоритмы нужно применить, то есть смысл выгрузить в приложение и прогнать через алгоритм на C#. Универсального скрипта для таких задач не существует, всегда приходится что-то допиливать. Если уже действительно лингвистический анализ нужен, то в нете можно нарыть больше 10-ка различных алгоритмов, один в чем-то лучше, другой в другом, приходится их комбинировать... но это не тот случай, думаю здесь все просто.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Распарсить строку адреса / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]