Как извлечь и классифицировать данные из столбца в Excel?

Вопрос или проблема

У меня есть столбец в Excel, который содержит много данных, разделенных разделителями ||. Данные можно классифицировать по некоторым классам, таким как сущности, коды IFSC, идентификаторы транзакций и т. д.

Одна ячейка выглядит так:

EFT INCOMING||0141201||NHFI0141201||UTR||SBIN118121948660 M S||some-name ||some-purpose||TRN REF NO:a1b2c3d4e5

Не каждая ячейка имеет одинаковое количество классов или даже одинаковый тип классов.
Другой пример:

COMM/CHARGES/FEES||CHECK/REF.6546644473||BILPAY CCTY BEARING C||00.00||00012||18031358||BLPY||TRN REF NO:a1b2c3d4e5

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

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

Пожалуйста, помогите мне определить, с какой проблемой я столкнулся? Это классификация текста? И какой будет подход к решению этой задачи?

Вам нужно выполнить несколько предварительных шагов.

  1. Преобразуйте ваш файл Excel в какой-то текстовый файл (CSV, вероятно, самый простой).
  2. Обработайте файл с помощью Python, либо напрямую считывая файл, либо с использованием библиотек, таких как модуль csv или pandas.

Последний совет: Регулярные выражения замечательны, но я думаю, что вы, возможно, используете их для неверной задачи, я настоятельно рекомендую вам принять программный подход.

Более простой, но мощный подход может быть таким:

  1. На основе ваших разделителей очистите данные в вашем Excel.
  2. Убедитесь, что данные правильно отображаются на соответствующие заголовки в вашем Excel.
  3. Храните их в совместимой структуре данных, такой как DataFrame, двумерный список и т.д.
  4. Выполните классификацию намерений с использованием инструментов, таких как RASA-NLU, где ваши столбцы, такие как сущности, коды IFSC, идентификаторы транзакций, являются намерениями.
  5. Соответствуйте ваши данные намерениям, классифицированным для каждого столбца с помощью RASA, и сохраните окончательные результаты в CSV-файл.

Примечание: Вы можете прочитать о фреймворке RASA здесь.

Спасибо !!

Ответ или решение

Извлечение и классификация данных из столбца в Excel

Введение

Проблема извлечения и классификации данных в Excel может быть сложной, особенно если данные объединены в одной ячейке и разделены определённым разделителем, например, ||. В вашем случае данные представляют собой много составляющих, таких как коды ВНК, ссылки на транзакции и другие сущности. В этой статье представлены шаги для извлечения и классификации данных, а также рекомендации по использованию программных инструментов для решения данной задачи.

Шаги по извлечению и классификации данных

1. Подготовка данных

Первый шаг — преобразовать ваш Excel-файл в формат, который можно более удобно обрабатывать. Рекомендуется сохранить файл в формате CSV, так как это стандартный текстовый формат, который легко загружать и обрабатывать с помощью языков программирования, таких как Python.

2. Чтение данных в Python

Для работы с CSV-файлом рекомендуется использовать библиотеку Pandas. Pandas предоставляет мощные инструменты для манипуляции структурированными данными. Установите библиотеку, если она ещё не установлена, с помощью команды:

pip install pandas

Затем загрузите ваши данные в DataFrame:

import pandas as pd

# Загрузка данных из CSV
data = pd.read_csv('your_file.csv')

# Предположим, что ваши данные находятся в столбце 'data_column'

3. Разделение данных с использованием разделителей

Теперь, когда данные загружены, вы можете использовать метод str.split() для разделения строк в соответствии с разделителем:

data[['Type', 'IFSC_Code', 'Transaction_Reference_ID', 'UTR', 'Account_Name', 'Some_Name', 'Some_Purpose', 'Reference_No']] = data['data_column'].str.split('||', expand=True)

Таким образом, вы разбиваете каждую строку по разделителям и создаёте новые столбцы для каждой категории данных. Если какая-либо ячейка не содержит соответствующей категории, значение будет установлено как NaN (пустое значение).

4. Классификация извлечённых данных

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

  • IFSC коды: ^[A-Z]{4}0[A-Z0-9]{6}$
  • Ссылка на транзакцию: TRN REF NO:[A-Za-z0-9]+
import numpy as np

data['IFSC_Code'] = data['data_column'].str.extract('([A-Z]{4}0[A-Z0-9]{6})', expand=False)
data['Transaction_Reference_ID'] = data['data_column'].str.extract('TRN REF NO:([A-Za-z0-9]+)', expand=False)

5. Сохранение результатов

После завершения обработки данных важно сохранить результаты в удобном для анализа формате. Например, после добавления новых столбцов можно сохранить обновлённый DataFrame обратно в CSV:

data.to_csv('output_file.csv', index=False)

Заключение

Извлечение и классификация данных в Excel — это задача, которая может быть успешно решена с помощью Python и библиотеки Pandas. При использовании методов, описанных выше, вы сможете эффективно разбить данные на составляющие и классифицировать их по заданным категориям. Использование регулярных выражений в сочетании с методами программирования обеспечит вам необходимую гибкость и мощь в обработке данных.

Рекомендации

Если у вас есть дипломные задачи по извлечению признаков или сложные классификационные задачи, подумайте о более сложных методах, таких как использование платформ по обработке естественного языка (например, RASA NLU) для автоматизации процесса. Базовые рекомендации и настройки позволят вам начать извлечение и классификацию, а более сложные методы обеспечат долгосрочное решение.

Если необходимо дополнительное обучение, ознакомьтесь с документацией по Pandas и RASA.

Оцените материал
Добавить комментарий

Капча загружается...