За последние пять лет команда 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.