Какие методы использовать для создания единой классификации контента из несоответствующей входящей информации?

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

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

Основным источником информации о профилях являются страницы биографий на сайтах работодателей. Некоторые из этих сайтов указывают несколько специализированных тем сотрудников, некоторые предоставляют только нарративные биографии, а некоторые — и то, и другое. Я собрал всю доступную информацию, используя Scrapy на Python, в CSV файлы — по одному на компанию, где люди являются строками, а темы на моей стороне теперь находятся в поле/строке, разделенной запятыми.

Пример: в одном листе ячейка S7 выглядит так: “Аналитические приложения, Большие данные, Когнитивные вычисления, Конкурентная разведка, Электронное раскрытие, Управление корпоративным контентом (ECM), Информационная архитектура, Рыночные исследования, Управление информацией о продуктах (PIM)”

Проблема состоит в нескольких аспектах:

  • Термины таксономии между компаниями несогласованны (например, “Когнитивные вычисления” в приведённом примере могут в другой компании называться “ИИ”).
  • Некоторые компании используют слишком много терминов в целом (например, одна компания использует около 450 тегов в общей сложности).
  • Часто ни один термин вовсе не доступен.
  • Поскольку нарративы биографий описывают не только специализированные темы сотрудников (например, образование и воспитание), их полезность в автоматизации может вызывать сомнения.

Моя цель — создать таксономию, которая категоризировала бы все собранные биографии людей в гораздо более гармоничной, согласованной и краткой манере.

Настройка системы — PHP/MySQL/WordPress. CSV-файлы профилей импортируются в WordPress, и система имеет возможность выполнять PHP-функции на импортированном контенте (не только на информации в WordPress после импорта, но и во время импорта через PHP).

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

На данный момент я обнаружил, что тесты по классификации текста, проведенные с использованием Aylien и Monkey Learn, дают плохие результаты. В каждом случае выходные результаты недостаточно детализированы, то есть входные термины биографий о детализированных темах, таких как инфраструктура облачных вычислений и центры обработки данных, превращаются в слишком базовые термины, такие как “Компьютеры и Интернет”. Aylien использует стандартную таксономию IPTC NewsCodes, и я понимаю, что могу использовать Monkey Learn для обучения. Мне нравится идея использования стандартизированной готовой таксономии, такой как NewsCodes, но а) результаты вызывают сомнения, и б) она может быть недостаточно детализированной для моих нужд.

На данный момент я решил составить свою предпочтительную иерархию терминов таксономии, около 230, которые должны примерно соответствовать различным несогласованным входным терминам и профилям (другими словами, коррелировать с темами людей). Это казалось важным шагом, предполагая, что мне нужно управлять этим вручную. Но мне трудно понять, как на самом деле реализовать эту корреляцию.

Поэтому я ищу совет по лучшим методам.

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

Это мой первый раз в группе Data Science на StackExchange. Прошу прощения, если я немного не попал в цель.

Вы можете импортировать данные каждой компании в отдельную таблицу и затем разработать скрипты регулярных выражений, чтобы изменить конкретные выражения на вашу собственную таксономию. https://en.m.wikipedia.org/wiki/Regular_expression

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

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

1. Создание единой таксономии

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

2. Порядок обработки данных

  1. Импорт данных: Используя PHP и MySQL, импортируйте CSV-файлы в временные таблицы вашей базы данных. Это позволит вам работать с данными, не нарушая целостности основной базы данных.

  2. Очистка данных: После импорта выполните очистку данных для удаления дубликатов, несущественных символов или пробелов.

  3. Классификация на основе регулярных выражений:

    • Создайте набор регулярных выражений, которые будут сопоставлять входные термины с вашими предпочтительными таксономическими терминами. Это может быть особенно полезно для более однозначных терминов.
    • Например, создайте пары "Cognitive Computing — AI", "Big Data — Data Science" и так далее.
    • Регулярные выражения позволят вам находить ссылки на синонимы и общие термины в текстах.

3. Использование машинного обучения

Если регулярные выражения не дают нужных результатов, вы можете рассмотреть использование алгоритмов машинного обучения:

  1. Предобучение: Используйте наборы данных, подобные вашему, и выполните первичное обучение с целью классификации данных. Вы можете использовать библиотеку Python, такую как scikit-learn или TensorFlow, чтобы создать модель, которая будет «обучать» и классифицировать термины по вашей таксономии.

  2. Требуемые данные для обучения: Вам понадобиться набор данных, где термины входящих профилей уже будут сопоставлены с вашими таксономическими терминами. В идеале, такой набор данных следует создать вручную на небольшом объеме данных для первоначального обучения модели.

4. Обработка текстов

Для текстов биографий:

  1. Извлечение ключевых слов: Используйте библиотеки для обработки текстов, такие как NLTK или spaCy, для выделения ключевых фраз и понятий из биографий. Это может помочь вам извлечь информацию, связанную с вашей таксономией.

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

5. Присвоение таксономии

  1. Автоматизация присвоения: На основе ваших правил и моделей, создайте PHP-скрипт, который будет присваивать предпочтительные термины каждому профилю во время импорта.

  2. Ручная проверка: В начале процесса, после автоматического назначения терминов, выполните ручной аудит, чтобы убедиться, что система работает корректно. Корректируйте правила и модель в зависимости от полученных результатов.

6. Итеративное улучшение

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

Заключение

Ваше предложение о сопоставлении входных терминов с таксономией в WordPress является разумным, но основной акцент стоит делать на автоматизации и применении алгоритмов для ускорения процесса. Работая с комбинацией регулярных выражений, методов обработки текста и машинного обучения, вы сможете наладить эффективное время обработки и повышения точности классификации профилей.

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

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