Связывание двух отдельных наборов данных без общего идентификатора

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

Как создать таблицу, которая соединяет два набора данных, без необходимости возвращаться и вручную попытаться выяснить, как установить соединение между двумя идентификаторами. Я не уверен, что это можно сделать в Access или SQL. Если есть способ сделать это, я хотел бы знать, какое программное обеспечение может быть там.

Вот некоторые примеры данных:

Table 1: Z Identifier DescriptionA 162000 Pharmacist 3123566 Electronic Repairman 143246 Banker 8444455 Doctor Table 2: Q Identifier DescriptionB XX134556 COPY/PRINT/SCAN EQUIP 666Q1224 DRUGS 722WWYZ Financial Svc 8456435T Medical Services 15666PP Health Services 

Желаемый результат:

 Table 3: Z Identifier DescriptionA Q Identifier DescriptionB 162000 Pharmacist 666Q1224 DRUGS 3123566 Electr Repairman XX134556 COPY/PRINT/SCAN EQUIP 143246 Banker 722WWYZ Financial Svc 8444455 Doctor 8456435T Medical Services 

 Table 1: Z Identifier DescriptionA 162000 Pharmacist 3123566 Electronic Repairman 143246 Banker 8444455 Doctor Table 2: Q Identifier DescriptionB XX134556 COPY/PRINT/SCAN EQUIP 666Q1224 DRUGS 722WWYZ Financial Svc 8456435T Medical Services 15666PP Health Services Output: Z Identifier DescriptionA Q Identifier DescriptionB 162000 Pharmacist 666Q1224 DRUGS 3123566 Electr Repairman XX134556 COPY/PRINT/SCAN EQUIP 143246 Banker 722WWYZ Financial Svc 8444455 Doctor 8456435T Medical Services 

Обычные инструменты, к которым вы привыкли (например, Access, Excel и SQL), могут пока заходить только при сравнении смысла и использования слов.

Другими словами (простить каламбур), для этого вам нужен какой-то набор инструментов для обработки естественного языка (NLPT) . Наряду с этим вам также нужны некоторые знания о том, как программировать, потому что я не думаю, что существуют интерфейсные интерфейсы, которые могут дать вам вывод, который вы хотите указать только введенный вами ввод, просто заполнив некоторые формы.

Поэтому, чтобы решить вашу проблему (предположим, вы знаете, как программировать и можете выбрать NLPT на выбранном вами языке), вам необходимо сделать следующее:

  1. Поместите ваши два набора данных в некоторые таблицы.
  2. Манипулировать DescriptionA и DescriptionB, чтобы быть чем-то значимым для используемого вами NLPT. Им не понравится строка, такая как «COPY / PRINT / SCAN / EQUIP». Они захотят удалить косые черты и слова разделены.
  3. Сравните DescriptionA с DescriptionB в стиле подстановочного стиля, используя тип функции path_similarity в библиотеке. Например, path_similarity('animal.definition1', 'dog.definition1') должно возвращать высокое значение, например .60, а path_similarity('animal.definition1', 'book.definition1') должно возвращать низкое значение, например .10 ,
  4. Если значение path_similarity превышает определенное значение (вы должны решить), соедините два элемента вместе и добавьте их как одну строку в таблицу результатов, удалив их из соответствующих таблиц. Продолжайте делать это до тех пор, пока список не будет исчерпан DescriptionA больше, чем определенное сходство с описаниемB. Затем сделайте что-нибудь еще с строками, оставшимися в таблице 1 и таблице 2.

Это должно быть довольно легко сделать программно. Вы можете обнаружить, что вы не получаете надлежащих совпадений в некоторых местах с помощью этого метода, потому что вы произвольно выбираете два слова для сравнения. Из-за этого вам может понадобиться найти другой алгоритм, отличный от перестановок, возможно, тот, который смотрит на статистику path_similarity каждой части ваших данных на все остальные части и действует более соответствующим образом.

Кроме того, вы можете разрешить совместное использование более двух слов. Например; «лесоруб», «резак деревьев» и «дровосек» имеют более сложный смысл для группировки в одну строку с добавлением еще двух столбцов, чем для выброса одного из них, который, скорее всего, останется без пары. Все проблемы, которые я только что перечислил в этом параграфе, я уверен, что это не новые проблемы, и вы можете искать в Интернете, чтобы их решить. Удачи!

  • Удалить текст поля после последнего повторяющегося символа
  • SQL за внешним запросом данных в Excel
  • Ошибка Запрос таблицы с помощью ADODB с помощью VBA в Excel
  • Сбой преобразования даты и времени в VBA с использованием SQL Database Query
  • Как переопределить заголовок для имени поля?
  • SQL-запрос в Excel Слишком мало параметров Ошибка
  • Количество записей в VBA в сравнении с доступом
  • Не удается подключиться от Excel к удаленному OLAP (SSAS) «не удалось установить соединение, потому что целевая машина активно отказала ему»
  • excel sql query - несколько источников данных
  • Как импортировать определенные ячейки Excel в SQL Server
  • Почему Excel VBA не может запрашивать таблицы с символом @?
  • Давайте будем гением компьютера.