За последние пять лет команда Data Labs центра Pew Research Center упорно работала над постоянным расширением возможностей центра в области обработки данных. От анализа текста до компьютерного зрения мы применили различные вычислительные методы, чтобы по-новому изучить важные социальные проблемы и расширить возможности Центра. При этом мы написали много кода.

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

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

Pewtils

Вскоре после того, как мы приступили к нашему первому проекту в области науки о данных, мы заметили, что нам необходимо регулярно выполнять ряд задач, таких как загрузка и объединение данных в разных форматах или проверка нулевых значений и стандартизация URL-адресов. Мы часто заимствовали код друг у друга для этих рутинных задач, и мы начали делать привычку очищать и обобщать эти полезные лакомые кусочки после каждого проекта, чтобы мы могли легко использовать их в будущем. Теперь мы собрали самые основные из этих функций в пакет под названием «Pewtils» (сокращение от «Pew Utilities»), набор утилит программирования, которые имеют широкий спектр возможных приложений. Pewtils гарантирует, что у нас есть последовательный, канонический способ выполнения общих задач, и мы используем его ежедневно. Вот несколько основных моментов:

  • _1 _ / _ 2_: при работе с несколькими источниками данных нередко можно найти нулевые значения, представленные разными способами: numpy.nan, NoneType, пустые строки и т. д. Эти функции проверяют эти и другие нулевые форматы и позволяют включать пустые списки, фреймы данных Pandas и другие настраиваемые значения.
  • FileHandler: Мы работаем с данными в различных форматах: файлы pickle, JSON, CSV, электронные таблицы Excel и т. д. Класс FileHandler предоставляет стандартный интерфейс для чтения и записи этих и других типов файлов, а также легко интегрируется с облачным хранилищем Amazon S3.
  • canonical_link: При работе с данными из Интернета мы часто встречаем ссылки на новостные статьи, профили в социальных сетях и другие полезные страницы. Но поскольку URL-адреса могут иметь множество разных форм, которые все указывают на одно и то же место назначения (http://pewresearch.org/example, https://www.pewresearch.org/example, pwrs.ch/example), анализ этих данных может оказаться сложной задачей. Функция canonical_link - наша лучшая попытка преобразовать и стандартизировать URL-адреса в их истинную форму.

Pew Analytics

В команде Data Labs наша работа не заканчивается после того, как мы зациклились, загрузили пакет файлов и отфильтровали нулевые значения. Многие из наших исследовательских проектов также включают рутинные задачи, специально связанные с обработкой и анализом данных, такие как очистка текстовых документов, удаление повторяющихся записей и поиск скрытых кластеров и групп. Наш новый пакет Pew Analytics содержит набор инструментов, призванных облегчить эти задачи, в том числе:

  • TextCleaner: Существует множество способов предварительной обработки текстовых данных и подготовки их к анализу. Класс TextCleaner помогает нам делать это стандартизированным способом и включает опции для стемминга или лемматизации, расширения сокращения, очистки битов HTML и фильтрации частей речи.
  • TextDataFrame: Изучая коллекцию документов, мы часто работаем с данными, используя Pandas DataFrame, который содержит как текст, так и метаданные о документах, которые мы анализируем. Класс TextDataFrame предоставляет множество полезных функций для работы с данными в этой форме, что позволяет нам легко вычислять сходства документов, сопоставлять документы с документами в другом фрейме данных Pandas, находить потенциальные дубликаты и определять повторяющиеся фрагменты текста, отличительные слова и кластеры документов. .
  • compute_scores: Независимо от того, проводим ли мы традиционный анализ контента с использованием человеческого кода или обучаем модели машинного обучения, мы часто сравниваем классификации друг с другом, чтобы вычислить показатели надежности между экспертами, такие как Каппа Коэна и Криппендорфа. Альфа, или меры производительности модели, такие как точность и отзывчивость. Наша compute_scores функция принимает DataFrame решений по классификации и создает чистую таблицу с этими и другими показателями оценки.

В ближайшие месяцы мы более подробно рассмотрим эти пакеты, расскажем, как их использовать, и объясним, как они могут помочь вам в ваших начинаниях по программированию. А Pewtils и Pew Analytics - лишь две из многих внутренних библиотек, которыми мы надеемся поделиться с сообществом Python и продолжить разработку в ближайшие месяцы. А пока мы рекомендуем вам оставаться в курсе, изучать документацию pewtils и pewanalytics и подписываться на нас на GitHub!

Чтобы начать работу с библиотеками Pew Python, просто установите их с помощью pip:

pip install git+https://github.com/pewresearch/pewtils#egg=pewtils
pip install git+https://github.com/pewresearch/pewanalytics#egg=pewanalytics

Патрик ван Кессель, старший научный сотрудник исследовательского центра Pew Research Center.