Импорт свободно структурированных данных в базу данных -- database поле с участием perl поле с участием scripting поле с участием structured-data пол Связанный проблема

Importing loosely structured data into database


0
vote

проблема

русский

Я получаю ежедневные каналы передачи данных с данными, которые просто структурированы. Мне нужно импортировать его в базу данных, поэтому я могу запустить отчет, который находит новые записи и изменения в существующие записи.

данные выглядят так:

 <код> Distributors2  

Как вы можете видеть, есть несколько полевых заголовков, таких как «BLAH», «LORUM» и т. Д., Но некоторые данные не хватает заголовка, например, номер телефона или списка Slash. И некоторые заголовки находятся на одной линии, а другие нет.

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

Так что я думаю, что анализ должен иметь не менее 3 способов анализа данных, например,

Если «заголовок: $», затем возьмите следующие строки до следующего «*.:» и Граб "заголовок: ценность" и Если строка начинается с числа предположить заголовок "Телефон" и Если линия содержит Slash Delimited список, предположим, что заголовка «Особенности» до «---------...»

Но я понятия не имею, как начать кодировать что-то вроде этого. Язык открыт на данный момент, хотя мне нужно запустить код в MacO.

Я полагаю, Perl может быть хорошим для этого, но очень плохой Perl Foo.

Даже не знаю, с чего начать с этого.

Английский оригинал

I get daily data feeds with data that is only loosely structured. I need to import it into a database so I can run a report that finds new records and changes to existing records.

The data looks like this:

-------------------------------- blah: foo bar lorum: ipsum dolor: sit foo: bar bar: foo 123-555-1212 Lorum / Ipsum / Dolor / Sit Foo / Bar -------------------------------- 

As you can see there are some field headings like "blah", "lorum", etc. but some data lacks a heading, like the phone number or slash delimited list. And some headings are on the same line and others are not.

Just to keep us on our toes, the records do not have the same number of fields.

So I'm thinking that parsing needs to have at least 3 ways to parse the data like,

if "heading:$" then grab the next lines until the next "*.:" is read and grab "heading: value" and if line starts with number assume heading of "phone" and if line contains slash delimited list assume heading "features" until "--------..."

But I have no idea how to start coding something like this. The language is open at this point although I have to run the code in MacOS.

I suppose perl might be good for this, but have very poor perl foo.

Don't even know where to start with this one.

</div
           

Список ответов

0
 
vote

Вам всегда нужно что-то принимать что-то о вашем тексте, в противном случае у вас есть упражнение в NLP.

Можем ли мы предположить, что детальная часть не ключа находится в конце? Так что следующие регулярные выражения помогут вам:

 <код>  # split the text into records:  @records = split / ----------------- /, $text;  # this will find lines that have another key/value pair after it  qr/A(w+):(.*?)(?= w+:)/ms   # then the last key/value, that probably must be one line:  qr/^(w+):(.*)/   

Я рекомендую, чтобы каждый раз после успешного совпадения удалите соответствующий текст и продолжайте.

Другие полезные предположения: что номер телефона может появиться только один раз в записи, (а не как часть другого ключа / значения), которые теги в конце.

 

You always need to assume something about your text, otherwise you have an exercise in NLP.

Can we assume that the non-key-value part is in the end? is so, the following regexs will help you:

 # split the text into records:  @records = split / ----------------- /, $text;  # this will find lines that have another key/value pair after it  qr/A(w+):(.*?)(?= w+:)/ms   # then the last key/value, that probably must be one line:  qr/^(w+):(.*)/ 

I recommend that each time, after successful matching, remove the matched text and continue.

Other useful assumptions: that the phone number can appear only once in the record, (and not as part of other key/value) that tags are in the end.

</div
 
 

Связанный проблема

0  Вызов к функции элементов вставить () на нуле. Codeigniter  ( Call to a member function insert on null codeigniter ) 
Привет всем, что я получаю следующую ошибку, когда я отправляю свою форму на мой веб-сайт CI 3: FATAL ОШИБКА: вызов функции элементов вставить () на NULL ...

1  Дизайн базы данных для заказов и подчинелей  ( Database design for orders and suborders ) 
Ранее я сделал эту схему базы данных со следующей информации: один завод имеет много элементов, и каждый элемент может принадлежать многим порядкам. Предмет и...

-2  Как сделать другой короткий код всех разных строк из таблицы базы данных в WordPress?  ( How to make a different short code of all the different rows from the database t ) 
Как сделать другой шорткод всех разных строк из базы данных в WordPress? WordPress Shortcode: (щелкните изображения, чтобы увеличить) База данных: ...

1  Найти заменить все строковые данные в базе данных SQL Server  ( Find replace all string data in a sql server database ) 
Я ищу сценарий, который находит и заменяет все поля строки типа в DB с указанным текстом. Скрипт, например, принять следующие параметры: . поиск: <код> nu...

0  Как получить счет (*) из таблицы, где cond1 = $ cond1 и cond2 = $ cond2 в реальное время  ( How do i get count from table where cond1 cond1 and cond2 cond2 real time ) 
<Р> ребята: <Р> Если предположить, что у меня есть базовая таблица, которая записывает кортежи. Если пользователи хотят получить COUNT (*), удовлетворяющим не...

0  Группа и исключить минимум и максимум от результатов  ( Group by and exclude minimum and maximum from results ) 
У меня есть данные, похожие на следующее: <код> Date ID Amount 10-Jun-14 978500302 163005350 17-Jun-14 978500302 159947117 24-Jun-14...

1  Как получить доступ для автоматического обновления нескольких полей в одной таблице на основе значения поля из другой таблицы?  ( How do i make access to automatically update multiple fields in one table based ) 
Так что у меня есть две таблицы в моей базе данных: A : «Ежедневная деятельность» B : «Список бенефициаров» a имеет несколько полей, как вы можете увиде...

0  Yii2 - Есть ли способ написать основные символы в модели поиска и результаты показывают все запросы как базовыми, так и специальными символами?  ( Yii2 is there a way to write basic characters in search model and results show ) 
Просто сказать это сначала, я относительно новый в Yii2, так что спасибо за понимание. Я использую Mariadb Database Engine. Например, в QueryParams я писа...

0  Как разобраться с SQL Server с набораных C ++ на платформе Windows?  ( How to deal with sql server from native c on the windows platform ) 
Есть ли решение, кроме уродливого ADO, как это не хорошо и плохо документировано? ...

-1  Импортируйте данные файла CSV в таблицу MySQL [дубликат]  ( Import csv file data into mysql table ) 
<в сторону CLASS = "S-NEWACTS S-WELTIVE__info JS-Post-New Imide MB16« Роль = «Статус»> Этот вопрос уже есть ответы здесь : ...

0  SQL Query, чтобы удалить весь атрибут, кроме первичного ключа  ( Sql query to delete all attribute except primary key ) 
Предположим, у меня есть база данных с 3 столами комнат: oomb_lvl1, oomb_lvl2, oomb_lvl3, которые представляют 3 уровня в здании. Каждый уровень имеет 20+ ком...

1  Django не смог найти базу данных в Ubuntu  ( Django could not find database in ubuntu ) 
в моих настройках у меня есть: <код> DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'my_database', 'USER': 'username'...

23  Почему не приятно иметь первичный ключ на таблице присоединения?  ( Why is it not good to have a primary key on a join table ) 
Я смотрел на скринкаст, где автор сказал, что нехорошо, чтобы иметь первичный ключ на таблице присоединения, но не объяснил, почему. Таблица соединения в пр...

0  Настройка предопределенной базы данных в приложении Rairs каждый раз, когда я пропускаю тест в NightWatch.js  ( Setting up a predefinied database in rails app every time i run a test in nightw ) 
В этот момент я готовлюсь начать тестирование нового приложения, создавая нашу компанию. На первом шаге я хочу запустить тесты на моей локальной версии и хоте...

0  Переключение баз данных при тестировании весной MVC веб-приложения?  ( Switching databases when testing spring mvc web application ) 
Весенний проект (в его производственной форме) будет использоваться база данных MySQL. Я хочу, чтобы тесты бежали в проекте, чтобы использовать Hypersonic_in_...

Связанный проблема

0  Вызов к функции элементов вставить () на нуле. Codeigniter 
1  Дизайн базы данных для заказов и подчинелей 
-2  Как сделать другой короткий код всех разных строк из таблицы базы данных в WordPress? 
1  Найти заменить все строковые данные в базе данных SQL Server 
0  Как получить счет (*) из таблицы, где cond1 = $ cond1 и cond2 = $ cond2 в реальное время 
0  Группа и исключить минимум и максимум от результатов 
1  Как получить доступ для автоматического обновления нескольких полей в одной таблице на основе значения поля из другой таблицы? 
0  Yii2 - Есть ли способ написать основные символы в модели поиска и результаты показывают все запросы как базовыми, так и специальными символами? 
0  Как разобраться с SQL Server с набораных C ++ на платформе Windows? 
-1  Импортируйте данные файла CSV в таблицу MySQL [дубликат] 
0  SQL Query, чтобы удалить весь атрибут, кроме первичного ключа 
1  Django не смог найти базу данных в Ubuntu 
23  Почему не приятно иметь первичный ключ на таблице присоединения? 
0  Настройка предопределенной базы данных в приложении Rairs каждый раз, когда я пропускаю тест в NightWatch.js 
0  Переключение баз данных при тестировании весной MVC веб-приложения?