Python распознает текст в электронной почте

Представьте, что вы получаете электронные письма, подобные этим:

name1: value
name2: value
name3: value

...

Эти значения должны быть вставлены в базу данных с именами столбцов, равными именам в электронном письме.

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

Эти письма должны автоматически обрабатываться, даже если в них есть ошибки. Сценарий обработки должен быть в состоянии "исправить" ошибки.

Я думал, что текстовая классифицирующая (сверточная) нейронная сеть может сделать эту работу, но кажется, что это излишне. Есть ли лучшее или более простое решение?

1 ответ

Вот некоторые мысли, так как вы знаете ключи (имена столбцов) заранее. Давайте предположим, что есть color а также density,

  • Вы можете использовать что-то вроде редактирования расстояний (например, расстояние Левенштейна), чтобы сопоставить любые нераспознанные расстояния с ближайшими фактическими (если они достаточно близки). Сказать, cloor может быть сопоставлено с color так как расстояние редактирования равно 1. (Однако, если есть несколько совпадений с достаточно низким расстоянием редактирования, вы, вероятно, захотите воспроизвести его безопасно, а не отображать данные.
  • Аналогичным образом, для сокращений вы можете выбрать отображение их по уникальному префиксу, т. Е. Если кто-то использует densи есть только один столбец (density) который начинается с densвы, вероятно, можете себе представить, что это density,

Для всех несопоставленных столбцов я бы добавил столбец "stash" в базу данных, в который вы можете поместить нераспознанные данные (в, скажем, формате JSON), и чтобы скрипт предупреждал оператора (вас!) О нераспознанных ключах, чтобы вы могли улучшить логику и использовать эту логику для отображения данных из столбца stash в реальные столбцы.

Другие вопросы по тегам