In a data driven world, social media sites can hold vast amounts of data. Researchers, marketers, and data experts rely on this social media data to help inform their decisions. We use this data to understand trends and build an understanding of public opinion. However, the value of the data set is only as valuable as the data, which all starts at the step of collection and cleaning.
Collection and cleaning social media datasets can be time-consuming and challenging. It requires technical capabilities, your own ethical stance, and a wide-variety of tools. In this paper, we discuss the best practices and tools that assist practitioners with the collection and cleaning of social media data sets that are accurate, relevant, and analyzable.
The Importance of Social Media Data
Platforms like Twitter, Facebook, Instagram, LinkedIn, and TikTok eat up this barrage of user-created content (words, images, videos and accompanying metadata) and continuously spew it back out into our feeds. No matter in what mode you use social media (i.e, for entertainment, networking, information gathering), social media sites generate a lot of useful information that we can use for:
- Sentiment analysis
- Trend forecasting
- Brand management
- Customer feedback
- Influencer and audience segmentation
- Behavioral and sociocultural research
Nevertheless, the raw data we get and gather from social media is always MESSY, unstructured, and filled with noise. If we don’t clean and manage the data, we can create flawed analyses and draw invalid conclusions.
Types of Social Media Data
Before we get into the details of how to collect and clean social media data, we need to consider the types of social media data that can be collected:
- Text Data: Tweets, posts, comments, bios, captions.
- Image and Video Data: Photos, reels, TikToks, highlights, curation.
- Engagement Metrics: Likes, shares, retweets, reactions, views.
- User Data: Profile, followers, who they’re following, where they’re from, interests.
- Metadata: Timestamps, device information, geo-location, hashtags, mentions.
Each type of data will draw upon its own techniques and tools for collecting and cleaning data.
Best Practices for Social Media Data Collection
Outline Your Goals
Before you starting collecting any data, it is important to establish your goals:
- What questions are you trying to answer?
- Which platform(s) is/are best suited for your topic?
- What types of data will you collect that will help you fulfill your goals?
Identifying your ultimate goals can help prevent excess data collection and provide a smoother processing experience.
Choose Your Platform
Since each platform caters to different audiences and content types, you should review your platforms:
- Twitter: This platform is a useful tool to understand public opinion, discover trends, and catch up on current events.
- Facebook: This platform is useful for discussions in community groups or connecting with interest groups.
- Instagram: This social media platform is best for sharing images and increasing brand engagement.
- LinkedIn: This platform is best suited for B2B and getting professional data insights.
- TikTok: This platform is a source of youth culture information, memes, and viral content.
Always Use Official API’s
When it’s possible, you should always try to use the official API services provided by the social media platforms:
- Twitter API (v2): Access to tweets, retweets, user information, etc.
- Meta Graph API: Data for Facebook and Instagram (limited to business accounts).
- YouTube Data API: Access to video statistics, comments, and metadata.
- LinkedIn API: Limited access to a professional profile and company data.
API’s are reliable, legal and they will always be in the source’s benefit.
Respect Platform Policies and Ethics
- Remember to comply with each platform’s terms of service.
- Always prioritize user privacy and consent.
- If you intend to use data for academic or public-facing projects, please remove personally identifiable data.
- Ethical guidelines such as those found in the Association of Internet Researchers (AoIR) should also be considered.
Be Aware of Scrapers
If APIs do not meet your requirements (or are inaccessible), then scraping may be an option:
1. Use Scrapy, BeautifulSoup, or Selenium (or something similar) to scrape from web pages.
2. Consider mass automation with tools like Octoparse or Apify.
As a caveat, scraping can violate terms of service and may lead to IP bans and/or legal action.
Social Media Data Collection Tools
Tool Name Supported Platforms Features
- Tweepy: Twitter Python wrapper to the Twitter API
- Twint: Twitter Scrapes tweets no API (some limitations of use)
- Sunscrape: Multiple Scrape Twitter, scrape Reddit, and even Facebook
- Apify: Multiple Browser-based scraping & automation
- Scrapy: Web A framework for custom web scraping in Python
- Netlytic: Twitter, Instagram Text analysis; makes an import from social media
- CrowdTangle: Facebook, Instagram Research public content discovery
Data Cleaning: Transform Raw Data into Gold
The raw data pulled from social media is incredibly messy! To conduct digital social media analysis, you will need to clean it up. Cleaning includes:
- Removing noise
- Eliminating Missing or Duplicate Data
- Normalizing Formats
- Filtering out Irrelevant Data
- Standardizing Timestamps and Languages
Recommendations for Cleaning Social Media Reactions
Remove Duplicates and Spam
- Identify whether there are duplicate posts and/or duplicate retweets and remove them.
- Use filters or models that detect spammy or bot-like textual content.
Handle Missing Values
- Decide whether you will delete, fill, or flag missing values.
- Use imputation methods for the numerical field.
- There are often fields for text that are missing, such as location or bio, that can be treated as blank.
Standardizing the Text
You will typically find inconsistencies in text data from twitter:
- Lowercase the entire text.
- Remove URLs, mentions @, and hashtags # unless they have importance.
- You can also expand contracted forms (i.e. don’t → do not).
- If you are doing sentiment analysis you should remove emojis or must convert emojis to text.
- You may need to decide to combine, remove, or replace misspellings: use TextBlob or SymSpell for example.
Language Detection and Cleaning
If you will be analyzing data in a particular language:
- Detect the language, potentially with Langdetect, FastText, or spaCy.
- Morph or keep content that exists in other languages.
Tokenizing & Stopword removal
If you are going to do natural language processing (NLP):
- Run a tokenizer like NLTK, spaCy, or Transformers.
- Stop words (words such as “the”, “is”, “on”) should be removed to reduce noise.
Sentiment & Entity Cleaning
If you are planning on doing sentiment analysis or named entity recognition (NER):
- You should replace user handles and URLs in the user text to be generic tokens.
- You should be aware of slang or abbreviations either through a lexicon of your own or a larger collection library like Ekphrasis
Tools for Cleaning Social Media Data
Tool Name | Purpose | Language |
pandas | Data manipulation and cleaning | Python |
NLTK | Natural language processing | Python |
spaCy | Advanced NLP and tokenization | Python |
TextBlob | Text normalization and sentiment | Python |
Langdetect | Language detection | Python |
OpenRefine | Data transformation and cleaning | GUI |
BeautifulSoup | HTML parsing and tag cleaning | Python |
Example Workflow: From Data Collection to Clean Data
Objective:
Better understand public opinion about climate change using Twitter.
Program Steps:
1. Find keywords “climate change”, “global warming”, #climate crisis
2. Collect data using Tweepy and the Twitter API (v2).
3. Store the data as a JSON or CSV file.
4. Data cleaning:
- Eliminate retweets and duplicates
- Normalize the tweet text (remove urls, mentions)
- Translate emojis.
- Detect english tweets and remove the others.
- Tokenize the tweets and remove stop words.
5. Export the cleaned data for analysis or for use in a ML model.
Common Challenges and How to Handle Them
Challenge | Solution |
API rate limits | Take advantage of rate limit handling, rotate credentials or use scrapers |
Incomplete metadata | Prioritize content analysis, or label manually to supplement the incomplete metadata |
Platform restrictions | Use publicly available data and maintain compliance to any stated policies |
Diversity of languages | multi-lingual NLP tools or filter languages |
Unstructured formats | Use regular expressions or an NLP parsers |
Legal and Ethical Considerations
Data from your social media accounts is user-generated and probably publicly available. But this does not mean every piece of information is necessarily appropriate or ethical to use. Remember the following:
- Anonymize personal data: if you can, remove names, personal locations, and other identifiers.
- Consent: express consent from the user is required when using data from private groups or private member direct messages.
- Terms of Service (ToS): scraping data from social media sites may in fact violate/contradict platform rules.
- Data storage: appropriate and safe storage and deletion systems should comply with GDPR.
Advanced Methods of Data Cleaning and Preprocessing
With social media data becoming increasingly complex and varied, think text, image, audio, and video, some basic cleaning will not be enough. This is where advanced methods will come in and help to increase the quality of the datasets you end up with and help you to improve performance in the future.
Name Entity Recognition (NER)
NER is a useful tool to find names of people, organizations, places, and more in text form. NER can help with:
- Keeping track of mentions of public figures or companies
- Categorizing the sentiment based on specific entities
- Improving relevance of your keyword selection
There are a few good options here:
- spaCy which has pretrained models for English and other languages
- Flair is compelling because of their created contextual word embeddings for NER.
Text De-duplication with Hashing
Simple string comparisons do not always work as well as we would like when looking for near-duplicates. Techniques like MinHash or using TF-IDF and cosine similarity together can help. These can include near-duplicate texts, even ones that do not have to be the same.
Dealing with Bots and Automation
Bots can really throw off your analysis, so spotting them is key to maintaining cleaner datasets.
Here are some techniques for bot detection:
- Look for abnormal activity patterns, like an excessive number of posts per hour.
- Check for suspicious follower-to-following ratios.
- Tools like Botometer can help with Twitter bot detection.
Timestamp Normalization
Since users post from various time zones, it’s important to normalize timestamps to UTC or whatever timezone your project prefers. This ensures consistency in your temporal analyses, such as time-series trend modeling.
Sentiment Cleaning
If you’re gearing up for sentiment analysis, consider these steps:
- Use pre-labeled sentiment datasets to fine-tune your model.
- Be sure to replace expressions that might come off as sarcastic.
- Filter out posts that are ambiguous or lack context, like those with just emojis or one-word replies.
Cleaning and Processing Image and Video Content
Social media thrives on visuals, especially on platforms like Instagram and TikTok. Cleaning up multimedia content requires a unique approach.
Image Preprocessing
- Start by resizing and cropping images to maintain consistency.
- Next, convert file formats when necessary (like changing PNGs to JPEGs).
- To keep things tidy, remove duplicates using perceptual hashing (pHash).
- Utilize object detection tools such as YOLO or Detectron2 to pull out key elements from your images.
Video and Audio Processing
- For videos, extract frames using handy tools like FFmpeg.
- When it comes to audio, analyze it with Librosa or PyDub to classify speech and sounds.
- And don’t forget to use automatic speech recognition (ASR) tools like Whisper to turn spoken content into text.
Storage and Management of Cleaned Datasets
File Formats
- For small to medium structured data, stick with CSV or JSON.
- If you’re dealing with larger datasets, Parquet or Feather are your best bets for optimized storage.
- For large-scale time series or image data, HDF5 is the way to go.
- And for unstructured social media data, NoSQL databases like MongoDB are perfect.
Data Versioning and Logging
To keep track of changes during your cleaning process, consider using data versioning tools like DVC (Data Version Control) or Pachyderm.
Make sure to log:
- The cleaning operations you performed
- The parameters you used
- The timestamps of when the data was collected
- The API versions
This approach guarantees that your pipeline is both reproducible and auditable.
Annotation and Labeling
When it comes to supervised learning tasks like classification or sentiment analysis, having labeled data is essential.
Annotation Tools:
Tool Features
- Labelbox Allows for image, video, and text labeling with collaboration features.
- Prodigy Offers scriptable annotation and supports both NLP and computer vision.
- Doccano Open-source, for text classification, NER
- LightTag Facilitates a team-based annotation workflow.
Best Practices:
- Develop clear labeling guidelines to ensure consistency.
- Involve multiple annotators and assess inter-annotator agreement to improve accuracy.
- Implement active learning to minimize manual effort by pre-sorting uncertain samples.
Automation and Pipelines
Building a reliable, automated pipeline is essential for scaling your data workflow.
Here’s an example of what a pipeline might look like:
- Data Ingestion: This can be done through APIs or web scraping using Python scripts.
- Raw Data Storage: Store your data in formats like JSON, either in S3 or MongoDB.
- Preprocessing: Use tools like Python, Pandas, and spaCy for this step.
- Cleaning: This involves removing any noise, formatting the text, and normalizing timestamps.
- Labeling: You can use tools like Prodigy or Doccano for labeling your data.
- Storage: Save your cleaned dataset in formats like CSV or Parquet.
- Analysis or Model Training: This is where the magic happens!
Tools for Automation:
- Apache Airflow: Great for scheduling and monitoring your pipelines.
- Luigi: Helps you build complex pipelines with dependencies.
- Prefect: A modern solution for orchestrating your data workflows.
Case Study Example: Brand Monitoring on Instagram
Objective:
Keep an eye on how customers feel about a new product launch on Instagram.
Steps:
1.Hashtag Selection: Use hashtags like #BrandX, #BrandXLaunch, and #BrandXReview.
2.Data Collection:
- Utilize the Meta Graph API or a tool like Apify to gather data.
- Collect posts, captions, likes, and comment threads.
3.Preprocessing:
- Normalize the text by converting it to lowercase, removing emojis, and expanding any slang.
- For posts in other languages, translate captions using the Google Translate API.
- Extract images and apply object recognition to see how the product is being used.
4.Sentiment Analysis:
- Implement a pre-trained model that’s been fine-tuned on customer reviews.
5.Result:
- Pinpoint customer pain points.
- Analyze visual content to identify any product defects.
- Create real-time dashboards for marketing teams to access.
Data Processing
Multimodal Data Processing
- Honestly, text alone just doesn’t cut it anymore. Everyone’s mashing up tweets, memes, TikToks, and even those weird voice notes your aunt sends. The next wave? Tools that don’t just handle all that chaos they actually make sense of it, all at once. Multimodal fusion isn’t just a buzzword, it’s basically going to be the bare minimum soon.
Real-time Stream Processing
- People want everything now. Like, literally, right now. Miss a trend and you’re yesterday’s news. So, stuff like Apache Kafka and Spark Streaming? They’re the MVPs here, juggling massive streams of tweets, live videos, whatever. Crisis hits? Brands need to know ASAP, not three days later when it’s on the news.
Federated and Private Data
- Privacy’s the hot topic, thanks to all those fun acronyms (hello, GDPR and CCPA). Nobody wants their data floating around in the wild. Enter federated learning basically, training your models without scooping up everyone’s info into one giant server. It’s like, “Hey, we’ll teach the AI, but your secrets stay with you.” Not perfect, but it’s something.
AI-powered Cleaning
- Let’s be real, cleaning social data is a nightmare. Typos, sarcasm, trolls, you name it. The new AI tools? They’re getting smarter at spotting that snarky sarcasm, flagging the ugly stuff, even noticing when someone totally botched an annotation. Oh, and zero-shot labeling? It’s like having a robot intern that just “gets” what you mean, no hand-holding required. Nice.
Wrapping It Up: The Real Talk
Look, wrangling social media data is step one if you wanna actually do anything cool with it: analytics, AI, whatever. But honestly? It’s a minefield. There are a million tools out there, and if you’re not careful, you’ll either break something, get yourself in trouble, or end up with a trash heap of useless data.
Here’s the stuff I wish someone had drilled into me early on:
- Write stuff down. Like, seriously, keep notes on what you did and why.
- Double-check those scripts. One typo, and suddenly you’ve downloaded 10,000 memes instead of user bios.
- When you clean up your data, save a new version. That way, when you inevitably screw something up, you can go back.
- Don’t mix your raw and cleaned data. Rookie mistake. Keep ‘em separate.
- Every so often, make sure your whole setup isn’t secretly broken or illegal.
Trust me, if you actually stick to this, you’ll turn that messy, noisy social data into something actually useful (and hopefully not illegal).
A Few Final Thoughts on Social Media Datasets
Social media data is like digital gold dust. Tons of potential, but you can’t just grab a handful and expect it to shine. You gotta dig, clean, and most importantly do it without stepping on anyone’s toes. Platforms change, privacy rules get stricter, and what worked last month might not fly today. So, stay on your toes.
Whether you’re building a sentiment bot, studying how people behave online, or just trying to spot the next viral trend before everyone else nails down your process and uses the right tools. If you get the basics right, the rest gets way easier. And hey, maybe you’ll actually enjoy the ride.