Project Crane (Crisis расизм и оценка повествования) направлен на поддержку исследователей и антирасистских организаций , которые хотят использовать современные алгоритмы текстового анализа, чтобы изучить, как конкретные события влияют на онлайн-речи и расистские повествования . Crane Toolbox - это пакет Python : после установки инструменты в кране доступны в качестве функций, которые пользователи могут использовать в своих программах Python или непосредственно через их терминал. Crane нацелен на пользователей с базовым программированием, но без навыков машинного обучения .
Пропустить, чтобы быстро начать

Вернуться к вершине
Кризисная расизм и оценка повествования , или крана для короткометражных, родились во время вызова о устойчивости, хакатоне, управляемого Covid19. В течение девяти недель междисциплинарная команда, состоящая из студентов и профессиональных дизайнеров, программистов и исследователей по информатике, разработала веб-сайт прототипа для мониторинга расистской риторики в реальном времени, связанной с пандемией Covid19 . Проект был предложен Джанлукой Стрингхини, Бостонский университет, после его работы по раннему появлению онлайн-синофобного поведения во время пандемии Covid19 (SARS-COV-2). Читатели могут найти более подробную информацию о подходе, предпринятом для задачи устойчивости на соответствующей странице Devpost и ветви этого репозитория в устойчивости.
При проведении обзора литературы мы заметили, что немногие статьи по мониторингу онлайн -речи, подход как к исследованию социологии, так и недавние инструменты обработки естественного языка. Литература, по -видимому, разделена в основном на методологические документы, направленные на разработку новых инструментов машинного обучения для обнаружения и характеристики расизма, а также традиционные подходы по исследованию социологии, как качественные, так и количественные, которые не используют в полной мере преимущества доступных данных и методов анализа.
Мы знаем, что это отчасти связано с трудностями сбора междисциплинарных команд из очень разных областей и частично с довольно молодым и ненадежным характером автоматизированного обнаружения ненавистников.
Наш опыт во время хакатона заставляет нас поверить в то, что эти проблемы могут быть несколько облегчены, предоставляя исследователям социальных наук удобными для пользователя инструментов, использующих более надежные методы обнаружения и анализа ненавистников.
Crane Toolbox предназначен для поддержки исследователей и антирасистских организаций в изучении того, как конкретные события влияют на онлайн-речи и расистские повествования . Современные алгоритмы анализа текста быстро развиваются, и их распространение часто ограничивается специальной областью исследований в области компьютерных наук. Crane Toolbox завершает некоторые из этих методов, которые соответствуют типичным вопросам социальных наук, в удобные для пользователя инструменты, которые не требуют навыков машинного обучения .
Crane Toolbox - это пакет Python . После установки пользователи могут вызвать свои функции в своих сценариях Python или использовать инструменты, которые он предоставляет непосредственно через свой терминал. Эти инструменты организованы в нескольких подкупах, называемых модулями. Каждый модуль соответствует шагу в конвейере общего анализа.
Первая версия Crane Toolbox предоставляет инструменты и документацию для пользователей для фильтрации и форматирования данных, которые они извлечены из Twitter (модуль импорта ), подготовить их к анализу (модуль предварительной обработки ), выполнить анализ (ES) по своему выбору ( модуль анализа ) и получить базовое графическое представление результатов (модуль визуализации ).
Вернуться к вершине
Этот раздел предназначен для опытных программистов, которые хотят погрузиться в голову в глубокий конец. Если вы не представляете, о чем мы там говорим, пожалуйста, не убегайте кричать! Несмотря на то, что длина раздела документации пакета может сделать его немного пугающим, мы написали его с учетом не специально-специфических, поэтому вы должны найти все инструкции и советы, необходимые для использования набора инструментов Crane.
pip install cranetoolbox Первым шагом является преобразование ваших данных в наш общий формат обмена данными, файл CSV с тремя столбцами. Мы используем модуль crane-import для выполнения этого шага. Он принимает исходные файлы, которые содержат один объект твита JSON на строку, и преобразует их в легкий файл CSV. Доступные параметры подробно описаны в разделе модуля импорта.
crane-import --source-folder ./my_source --output-folder ./my_outputВажно очистить текстовые данные перед анализом данных. Мы предоставляем инструмент CLI для выполнения этого шага с несколькими вариантами предварительной обработки. Доступные параметры подробно описаны в разделе модуля предварительной обработки.
crane-preprocess ./my_output ./my_preproc_outputВ настоящее время мы предоставляем единый инструмент статистического анализа, который выполняет базовый анализ частоты на наборе данных с использованием предоставленного набора ключевых слов. Требуемые входные форматы и доступные параметры подробно описаны в разделе модуля анализа.
crane-analysis-quanti ./my_preproc_output keywords.json quanti_results.csvВернуться к вершине
Этот раздел разделен на две части: первый, описывающий, как установить набор инструментов Crane и запустить его инструменты, либо в режиме командной строки в терминале, либо через вызовы функций в сценариях Python; и второй, предоставляющий подробную информацию о каждом модуле, в частности, формате данных и выборе параметров.
Дополнительные пользователи могут найти дополнительную информацию о содержании каждого модуля в документации кода.
Чтобы успешно установить набор инструментов Crane, вам понадобится:
Настоятельно рекомендуется некоторых базовых знаний в области программирования и командных строк , но смелые и прилежительные могут выбрать.
Если приведенный выше список ясен для вас, пропустите инструкции по установке. Иначе, прочитайте следующие параграфы, чтобы подготовить окружающую среду.
Терминал - это интерфейс, в котором вы можете вводить и выполнять текстовые команды. Вы можете найти более подробное объяснение здесь и фотографии того, как выглядит терминал здесь.
Терминал уже установлен на вашем компьютере. Если вы используете операционную систему на основе UNIX (либо Macosx, либо распределение Linux ), она удачно названа терминалом и живет с другими вашими приложениями. Если вы используете операционную систему Windows, она называется командной строкой и может быть найдена в вашем меню «Пуск». Для Windows 8 и 10 он расположен в папке системы Windows .
Чтобы запустить команду в терминале, просто введите ее и нажмите Enter.
Python 3 - это язык программирования.
Процесс установки зависит от вашей операционной системы. Основные инструкции можно найти на официальном веб -сайте Python, но вы легко найдете более подробные руководства в Интернете.
PIP - это менеджер пакетов: он помогает вам загрузить пакеты Python и обновить их при необходимости.
Основные инструкции для его установки можно найти на его официальном веб -сайте. Он широко используется, поэтому в Интернете легко можно найти пошаговые руководства и другие ресурсы.
pip3 . Вы можете проверить, какую версию pip используется путем запуска pip --version в вашем терминале ( python -m pip --version для пользователей Windows).
Мы настоятельно рекомендуем установить наборы инструментов Crane с помощью pip . Запустите pip install cranetoolbox в терминал. Команда может занять некоторое время, потому что pip также автоматически установит все пакеты Python, необходимые для запуска Toolbox Crane. Вы можете проверить список зависимостей на странице [PYPI Pounting Toolbox] (ссылка на страницу PYPI).
Кран -наборы инструментов также можно установить вручную из исходного кода, доступного в этом репозитории.
Режим командной строки - самый простой метод использования этого пакета, он позволяет пользователю быстро запускать все части пакета и производить полезную статистику в течение очень короткого периода времени.
В наборе инструментов доступны три различные команды CLI, они представляют собой crane-import , crane-preprocess и crane-analysis-quanti . В порядке, они обрабатывают импорт/преобразование необработанных данных в стандартный формат CSV, предварительно обрабатывая эти данные в полезный формат и, наконец, вычисляют ежедневные частоты заданных ключевых слов.
Для получения внимания параметров, представленных в каждом инструменте CLI, проверьте подробную документацию ниже.
Этот пакет был написан с учетом повторного использования. В то время как инструменты CLI легче в использовании в качестве автономных инструментов, инструмент Crane может быть импортирован и использоваться в другом проекте Python. Все функции доступны пользователю с помощью стандартного использования пакета Python. Кроме того, единая функция высокого уровня соответствует каждому инструменту CLI, поэтому пользователи могут легко вызвать желаемый трубопровод непосредственно с Python.
Модуль импорта доступен из точки входа командной строки crane-import .
Цель этого модуля состоит в том, чтобы превратить необработанные данные Twitter JSON в нечто более управляемое и легкое для использования остальной частью трубопровода. Это не обязательный шаг и может быть выполнен вручную пользователем или уже выполнена через какой -то другой инструмент, поскольку данные передаются между модулями в качестве файлов.
Этот модуль может обработать большое количество больших (нескольких гигабайтных) файлов, не полагаясь на обмен или использование памяти. Это достигается путем чтения файлов кусочками (пользователь может указать количество строк в параметрах), а также записать в куски. Это гарантирует, что только определенное количество данных хранится в памяти в любой момент.
Кроме того, он удаляет дополнительные данные твитов, которые не требуются для конвейера анализа, уменьшая размер файла и повышая производительность более поздних шагов в этом пакете.
Модуль попытается прочитать любой файл в указанной папке, независимо от расширения, имени и т. Д. Он поддерживает любой текстовый формат файла (.json, .csv, .txt). Кроме того, он может обрабатывать сжатые архивы tar и обрабатывать несколько файлов или папок в данном архиве TAR.tar.gz или аналогичные форматы.
Независимо от точного типа файла, данные всегда должны храниться с одним твитом объекта JSON на строку , используя n в качестве символа конца линии.
Модуль будет объединять все файлы в один файл CSV со следующими столбцами:
| идентификатор | текст | censue_at |
|---|---|---|
| уникальный идентификатор твита | Полный текстовый твит | TimeStamp of Tweet |
Файл CSV не имеет заголовков , запятых сепараторов и дополнительных двойных цитат для текста.
Текстовый столбец динамически выбран в зависимости от того, составляет ли твит более 140 символов или нет, для получения дополнительной информации о расширенных твитах см. Официальную документацию по расширенным твитам
Если выходной файл уже существует, он добавит к существующему файлу. В случае, если он не существует, он создаст новый, используя путь по умолчанию ("./filtered_data.csv"), если ни один из них не указан.
Пакет импорта может использоваться в качестве инструмента командной строки и поддерживает несколько различных параметров.
--source-folder исходной папки или файл для сканирования для обработки файлов/архивов.--output-folder папки для сохранения вывода. Указанная папка должна существовать. По умолчанию ./ .--output-name Имя, включая расширение, выходного файла. По умолчанию output.csv .--text-name Имя в текстовое поле, случай, это поле имеет другое имя.--date-name Имя в поле create_at, случай, это поле имеет другое имя.--id-name поля идентификатора, в случае, это поле имеет другое имя.--tweet-language Язык твитов, сохраненных в файле. На основе языкового поля в объекте JSON. По умолчанию в en .--max-lines-in-memory Максимальное количество строк, которые будут удерживаться в памяти. Это можно настроить для оптимизации для производительности или на машинах с ограниченной памятью. По умолчанию до 50000 .--retweets используйте этот флаг, чтобы включить ретвиты в выводный набор. По умолчанию falseПолный пример для входной точки командной строки:
crane-import --source-folder tweets/november --output-folder mydataset/data --max-lines-in-memory 2000 --output-name dataset.csv Трубопровод предварительной обработки доступен из точки входа в командную линию crane-preprocess .
Предлагаемая предварительная обработка адаптирована из Effrosynidis et al. (2017), используя методы 9, 0, 1, 3, 5 и 7 и 4.
Набор данных, приведенный в качестве первого позиционного аргумента, может быть либо папкой файлов CSV, либо одним файлом CSV. Каждый файл CSV должен содержать 3 столбца (идентификатор ввода, должен быть уникальным, int; текст твита, строка; string lamp: string thimestamp), без заголовков , запятых сепараторов и дополнительных двойных кавычек для текста.
| идентификатор | текст | censue_at |
|---|---|---|
| уникальный идентификатор твита | Полный текстовый твит | TimeStamp of Tweet |
По порядку и для данной строки, это будет:
u002c ),-url ,-mention ,-hashtag указан,punct , указан,-num . Хэштеги сегментируются, т.е. разделены на слова, используя пакет Wordsegment.
Обработанный набор данных сохраняется в папке, приведенной в качестве второго позиционного аргумента. Если его не существует, папка будет создана. Для каждого входного файла генерируется обработанный файл. Имена файлов генерируются путем добавления «_prepocasted» к имени соответствующего входного файла. Каждый файл CSV содержит 4 столбца (идентификатор ввода, должен быть уникальным, int; исходный текст твита, строка; предварительно обработанный текст твита, строка ; TimeStamp: String Timestamp), без заголовков , запятых и дополнительных двойных кавычек для текста.
| идентификатор | Original_Text | clean_text | censue_at |
|---|---|---|---|
| уникальный идентификатор твита | Полный текстовый твит | Предварительно обработанный текст твита | TimeStamp of Tweet |
Трубопровод имеет два обязательных позиционных аргументов и пять дополнительных аргументов:
-url или --remove-url Используйте этот флаг для удаления URL -адресов из твитов вместо того, чтобы заменить их «URL».-mention или --remove-mentions -используйте этот флаг, чтобы удалить пользовательские упоминания «@UserHandle» из твитов вместо того, чтобы заменить их «Atuser».-hashtag или --segment-hashtags Используйте этот флаг для сегментных хэштегов вместо того, чтобы просто удалять предыдущий символ «#'».-punct или --remove-punctuation используйте этот флаг, чтобы удалить все пунктуации.-num или --remove-numbers Используйте этот флаг, чтобы удалить все числа из твитов вместо того, чтобы заменить их текстовой версией.Полный пример для входной точки командной строки:
crane-preprocess mydataset/data mydataset/preprocessedData -punctВ настоящее время модуль анализа предлагает только некоторые простой конвейер количественного анализа для вычисления ежедневной частоты заданных ключевых слов.
Этот конвейер анализа доступен из точки входа в командную линию crane-analysis-quanti .
Он вычисляет ежедневную частоту заданных ключевых слов в наборе данных. Это допускает варианты ключевых слов. Например, случаи «мальчиков» и «Бойз» можно учитывать вместе.
Набор данных, приведенный в качестве первого позиционного аргумента, может быть либо папкой файлов CSV, либо одним файлом CSV. Каждый файл CSV должен содержать 4 столбца (ID ввода, должен быть уникальным, int; исходный текст твита, строка; Предполагается, что предварительный текст является более низким.
| идентификатор | Original_Text | clean_text | censue_at |
|---|---|---|---|
| уникальный идентификатор твита | Полный текстовый твит | Предварительно обработанный текст твита | TimeStamp of Tweet |
Ключевые слова определяются в словаре JSON, где ключи являются основным вариантом для каждого ключевого слова, а значения являются списками вариантов. Все ключевые слова должны быть строками с более низким частотом. Например:
{
"color" : [
" colour " ,
" color "
],
"chinese" : [
" chinese " ,
" chineze " ,
" chines "
]
}Вывод-это файл CSV с столбцом даты дневной даты (формат «%y-%m-%d»), столбец Total_Count с ежедневным общим количеством твитов в наборе данных, [ключевое слово] _count столбец для каждого ключевого слова (его основной вариант используется для названия колонки) с ежедневным номером твитов, содержащих как минимум по одному варину, и ключевой слов] _fre] _fre] . Назовите столбец) с ежедневной частотой твитов, содержащих хотя бы один вариант ключевого слова.
Например, для набора ключевых слов, приведенных выше:
| день | total_count | color_count | Китайский_Конт | color_freq | Китайский_фрек |
|---|---|---|---|---|---|
| дата | Ежедневное количество твитов | Ежедневное количество твитов с «цветом» или вариантом | Ежедневное количество твитов с «китайским» или вариантом | Ежедневная частота твитов с «цветом» или вариантом | Ежедневная частота твитов с «китайским» или вариантом |
Трубопровод имеет три обязательных позиционных аргументов и один необязательный аргумент:
-d или --date-format определяющая формат дат в наборе данных. Дефолт составляет %a %b %d %h: %m: %s %z %y ».Полный пример для входной точки командной строки:
crane-analysis-quanti mydataset/preprocessedData keywords.json quanti_results.csv -d " %d %b %a %h:%M:%S %z %Y " Еще не реализован
Вернуться к вершине
Мы приветствуем все вклад! Если у вас есть вопросы, запрос на функцию или некоторые отзывы, используйте функцию проблем GitHub.
Страница проблем работает скорее как ваша старая старая страница форума, со многими дополнительными функциями, специфичными для программирования и версий GIT. GitHub предоставляет подробное руководство для них, но вот основы:
Вы можете отправить запросы на открытые вопросы. В частности, проблемы, помеченные «с помощью помощи», обычно являются вещами, с которыми борется основная команда. Вот рекомендации, которые мы просим вас следовать при вклад в базу кода.
Если вы хотите привлечь себя к дальнейшему (просмотр PRS, планирование новых функций, изучение методов машинного обучения, проведение пользовательских исследований, ...), вы можете присоединиться к основной команде, отправив электронное письмо Bolduc2 (AT) Hotmail (DOT) FR, чтобы встать на борту. Конечно, мы приветствуем разработчиков, но также дизайнеров, исследователей из всех академических областей, технических писателей ...
Мы решили в частном порядке на борту, а не делиться всеми нашими ресурсами в репо по двум причинам. Во -первых, мы хотели, чтобы пользователям не использовались проекты с открытым исходным кодом, чтобы найти то, что им нужно. Во -вторых, некоторые из наших ресурсов содержат личную информацию из пользовательских исследований.
Вернуться к вершине
https://crane-toolbox.github.io/#/ является прототипом веб-сайта во время хакатона устойчивости, пытаясь количественно оценить и охарактеризовать влияние пандемии Covid19 на онлайн-синофобную ненавистническую речь. Мы оставили его в Интернете в качестве основного примера типа анализа данных, который может быть выполнен с помощью набора инструментов Crane.
Мы не планируем сейчас. Из -за состава команды мы решили сосредоточить наши усилия на наборе инструментов Crane, где мы считаем, что можем изменить ситуацию.
Лачапелиер | Джанлука Стрингхини ? | Марко Шива Павлович | Клаудио Каттерина | Svetlanamd ? ? ? ? | Ян | Пол Хан |
Келли ? ? | Габриэль Рибейро | Исаак | Томаша Локша | Джудит Ван Стегерен |
Ключ эмодзи
Этот проект следует за спецификацией всех контролей. Взносы любого вида приветствуются!
Список участников хакатонов для первой фазы проекта можно найти на странице Crane Devpost.
Да! Проверьте раздел «Содействие».
Python является очень распространенным языком программирования для задач анализа данных. Пакеты являются установленными надстройками для основного языка питона. Грубо говоря, модуль - это файл с кодом Python.
Тем не менее, если вы совершенно не знакомы с Python, вы можете поэкспериментировать с ним перед тем, как использовать набор инструментов Crane.
Пожалуйста, используйте страницу проблем этого репо. Ознакомьтесь с разделом для получения более подробной информации.
Crane Toolbox распространяется в рамках общей публичной лицензии GNU Affero v3.0.
Вы можете использовать его так, как вы хотите, если вы уважаете требования к лицензии: включите лицензию и уведомление об авторском праве, указать внесенные вами изменения, раскрыть свой источник (этот репо) и распространять ваш код по той же лицензии. Обратите внимание, что мы не несем ответственности за то, что вы используете из этого кода, и мы не предоставляем гарантии.
Пожалуйста, ссылки на этот репо.
Обмен наборами данных твитов ограничивается терминами разработчика Twitter. Вы не сможете найти общедоступные наборы данных с контентом твитов, а скорее наборы данных идентификаторов твитов. Они могут быть увлажнены , используя, например, гидритор.
Оттуда это действительно зависит от вашей темы исследования и вопросов. Некоторые очень чувствительны к во времени, некоторые меньше. Если у вас не очень чувствительны ко времени, попробуйте удачу с обычной поисковой системой. Некоторым требуется наивный набор данных, представитель полного потока информации в Twitter. В этом случае наилучшим образом является сотрудничество с исследовательской группой, проводимой частым анализом в контенте в Твиттере. Они, вероятно, продолжают работать, чтобы собрать 1% ежедневных данных в Твиттере. Другие требуют набора данных, который уже был отфильтрован для конкретных ключевых слов или пользователей. Если это ваш случай, попробуйте удачу с обычной поисковой системой. Если вам не нужны исторические данные, вы также можете запустить свой собственный поток в Твиттере, чтобы собрать именно желаемые данные.
Мы работаем над тем, чтобы включить несколько стандартных входных форматов в наш модуль импорта . Если ваш формат данных не поддерживается, пожалуйста, свяжитесь с нами, и мы сделаем все возможное, чтобы либо включить его в наборе инструментов Crane, либо направить вас, чтобы преобразовать его в один из наших поддерживаемых форматов.
Может быть, мы не знаем об этом, может быть, у нас еще не было времени, чтобы реализовать это, возможно, мы решили не включать его по данной причине. Пожалуйста, свяжитесь с нами, чтобы рассказать нам об этом. (Если это не является собственным методом с платой за использование.)