Как автоматизировать извлечение и стандартизацию многоязычных данных имени/имени пользователя без изменения исходной базMySql

Форум по Mysql
Ответить
Anonymous
 Как автоматизировать извлечение и стандартизацию многоязычных данных имени/имени пользователя без изменения исходной баз

Сообщение Anonymous »

Мы работаем с таблицей пользователей, заполненной из нескольких источников единого входа, и в данных есть несоответствия, которые мешают генерировать стандартизированные имена. Мне нужен постоянный автоматизированный способ извлечения и обработки этих данных без изменения исходной базы данных:
Контекст и подробности проблемы
Основные проблемы, с которыми мы сталкиваемся при работе с данными:
  • Поля имен (

    Код: Выделить всё

    firstname/lastname
    )[/b]:

    Смешанный текст на китайском и английском языках в одном поле.
  • Нестандартные нелокальные имена (например, «Танака Юки» вместо «Юки Танака» для японских имен; несовместимое форматирование для имен на латинице, таких как «T??n Mahir Md A???F»).
  • Встроенные заголовки («Г-н/Миссис/Миссис»), специальные символы (скобки, кавычки) и искажения кодировки (например, «é™³å®¶æ‚ ???»).
  • Предпочитаемые имена смешиваются с именем/

    Код: Выделить всё

    lastname
    (нет выделенного поля), что приводит к избыточности.
[*]Поле имени пользователя: содержит бессмысленные смайлы (например, :)) и нестандартное имя пользователя (например, «ohoj_1234»).

Соответствующая структура таблицы (упрощенная)
Таблица user содержит следующие ключевые поля (остальные опущены):

Код: Выделить всё

CREATE TABLE `user` (
`id` bigint(10) NOT NULL AUTO_INCREMENT,
`username` varchar(100) NOT NULL DEFAULT '', -- Has emojis/non-standard values
`firstname` varchar(100) NOT NULL DEFAULT '', -- Mixed names, titles, etc.
`lastname` varchar(100) NOT NULL DEFAULT '',  -- Same issues as firstname
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Цель
Нам необходимо извлечь и обработать эти данные, чтобы создать стандартизированное поле полного имени с правилами:
  • Нет предпочтительного имени: имя + фамилия или фамилия + имя (порядок зависит от языка: например, китайский = "Последний+первый", английский = «Первый+Последний»).
  • С предпочтительным именем: добавьте извлеченное предпочтительное имя к приведенному выше (например, «Последний+Первый (Предпочитаемый)» или подобное).
Требования к решению
  • Автоматизированный и постоянный: обработка новых данных по мере их импорта (а не однократно). fix).
  • Неразрушающий: оставьте исходную базу данных нетронутой — обработайте извлеченные копии.
  • Обрабатывает крайние случаи: очищает специальные символы/смайлики, исправляет кодировку, стандартизирует многоязычный порядок имен и извлекает предпочтительные имена из имени/

    Код: Выделить всё

    lastname
    .
Что я пробовал (на данный момент)
Я исследовал регулярное выражение для очистки специальных символов, но застрял на следующем:
  • Эффективном анализе многоязычных имен.
  • Надежное извлечение предпочтительных имен (часто встроенных в виде дубликатов или в скобках, но шаблоны не согласовано).
  • Автоматизация конвейера для запуска при импорте новых данных.
  • Удаление идентификатора класса и идентификатора студента, которые могут существовать в полях имени и фамилии или объединяться с именем/фамилией на основе нашего текущего наблюдения. И ClassID+StudnetID имеют несовместимый формат из разных школ, например 1A01, 1As11111, 1A 01 (2025–2026).


Подробнее здесь: https://stackoverflow.com/questions/798 ... ername-dat
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»