A cannabis use Reddit dataset for aspect-based sentiment analysis
Department of Biomedical Informatics, School of Medicine, Emory University, Atlanta, GA 30322, USA
Stanford University School of Medicine, Stanford, CA 94305, USA
Abstract
Using publicly accessible Reddit posts, we developed a manually annotated dataset for traditional and aspect-based sentiment analysis (ABSA) of cannabis-related discussions in the context of pain management. The dataset consists of 479 post-aspect pairs extracted from specific Reddit communities associated with autoimmune rheumatic diseases (ARDs). We filtered posts using a structured list of cannabis-related terms and extracted context using rule-based sentence segmentation. Subsequently, we manually annotated each post for both traditional and aspect-specific sentiment (positive, negative, neutral). Inter-annotator reliability was assessed using Krippendorff’s ⍺, yielding ⍺ = 0.604 for traditional sentiment and ⍺ = 0.526 for aspect-based sentiment. The dataset offers valuable resources for training, benchmarking, and evaluating machine learning models for ABSA in health-related social media contexts. This dataset can support research in natural language processing, public health informatics, pain medicine, digital epidemiology, and social media-based health monitoring. All post identifiers are provided in compliance with platform policies, and annotations are included in tabular form. The final dataset is publicly available at https://zenodo.org/records/20214862.
Untitled section
Keywords: Sentiment analysis, Natural language processing, Cannabis, Pain management, Autoimmune rheumatic diseases
Article notes
Untitled section
Received 2025 Dec 23; Revised 2026 May 15; Accepted 2026 May 28; Collection date 2026 Aug.
Specifications Table
| Subject | Computer Science |
| Specific subject area | Sentiment analysis is a subtopic within natural language processing that focuses on characterizing the sentiment expressed in a body of text. |
| Type of data | Text, Raw, Analyzed, Filtered |
| Data collection | The dataset was created by collecting Reddit posts via PRAW (Python Reddit API Wrapper). Subsequently, rule-based filtering was used to extract cannabis-related posts, and were manually labeled for traditional and aspect-based sentiment analysis. |
| Data source location | Institution: Emory University City/Town/Region: Atlanta, Georgia Country: United States of America Latitude and longitude (and GPS coordinates, if possible) for collected samples/data: N/A |
| Data accessibility | Data identification number: 10.5281/zenodo.20214862 Direct URL to data: https://zenodo.org/records/20214862 The Zenodo repository contains the dataset CSV file (cannabis_reddit_absa.csv), annotation guidelines (annotation_guidelines.pdf), supporting script (reddit_data_pipeline.ipynb), cannabis term list (cannabis_lexicon.csv), and data extraction pipeline (top_subreddits_weekly_extraction.py). No future updates are planned, but updates may be issued if errors are identified. All changes are documented in changelog.txt. |
| Related research article | None |
1.Value of the Data
- •Sentiment analysis is a natural language processing (NLP) technique that can be used to infer sentiment in text passages, and applies automated computational techniques to classify positive, negative, and neutral sentiment. Aspect-based sentiment analysis (ABSA) enables the detection of sentiment toward specific concepts within text, yet publicly available ABSA datasets in health-related contexts are limited.
- •This dataset provides manually annotated Reddit posts focused on cannabis use for pain management among individuals who self-identify as having autoimmune rheumatic diseases (ARDs), supporting both traditional sentiment analysis and ABSA tasks.
- •The dataset enables the exploration of real-world patient experiences, perceptions, and decision-making regarding cannabis as a complementary therapy for chronic pain.
- •This dataset will be useful for machine learning and NLP researchers who are interested in implementing models for ABSA, and for comparing these models to traditional sentiment analysis models.
- •Researchers in AI, digital health, rheumatology, pain medicine, and public health may use this dataset to understand nuanced attitudes toward cannabis use, including perceived benefits, risks, and self-management strategies.
- •Existing ABSA benchmarks are largely limited to product and restaurant reviews (e.g., SemEval) and lack representation of health-related or Reddit-based data; this dataset uniquely provides cannabis-specific, aspect-level sentiment annotations from Reddit, addressing a gap in both domain and platform coverage.
2.Background
Autoimmune rheumatic diseases (ARDs) are a heterogeneous group of chronic inflammatory conditions (e.g. rheumatoid arthritis, psoriatic arthritis, systemic lupus erythematosus, systemic sclerosis, Sjögren’s syndrome, and ankylosing spondylitis), often characterized by significant pain that diminishes quality of life [1]. Strategies for managing pain are evolving, with an increasing shift to nonsteroid drugs, physical therapy, and self-management approaches, highlighting the need to understand how patients are adapting to and managing their pain [2]. One such self-management strategy is cannabis use, which has surged in recent years [3]. However, there remain significant gaps in understanding how cannabis affects health for individuals with ARDs, partially due to discrepancies between clinical documentation and real-world usage patterns [4]. Social media sites such as Reddit offer access to rich, first-person health narratives due to their anonymity, community-driven discussions, and condition-specific forums [5]. This dataset was developed to explore how ARD communities describe cannabis use for pain management, and to support aspect-based sentiment modeling in real-world user-generated text.
3.Data Description
The data repository contains a csv file that is a manually annotated traditional and aspect-based sentiment analysis (ABSA) dataset focused on cannabis-related discussions in the context of pain management, collected from publicly accessible Reddit communities related to ARDs [6]. It consists of 479 post-aspect pairs derived from 374 unique posts from the following ARD-focused subreddits: r/lupus, r/lupussupport, r/rheumatoidarthritis, r/ankylosingspondylitis, r/PsoriaticArthritis, r/Sjogrens, and r/scleroderma. These subreddits were selected because they are among the largest active online communities where individuals discuss experiences, symptoms, and management strategies related to ARDs. The posts have a mean length of 235.56 words (SD = 307.86; median = 147), and ranged from 3 to 3168 words. Most posts were associated with a single matched aspect term, although some posts contained multiple aspects and were annotated separately at the post–aspect pair level.
To ensure privacy, posts are represented only through their post IDs, which can be used to rehydrate the corresponding content through the Reddit API using PRAW with appropriate access credentials [7]. Given that Reddit API interfaces, policies, and endpoint specifications are subject to change, we defer to the official Reddit API documentation for current and authoritative guidance on data retrieval procedures [8]. Some identifiers may no longer resolve to retrievable content due to deletion, moderation (e.g., “[removed]”), or account suspension. Deleted posts were excluded during dataset construction, while posts from deleted users that remained publicly accessible at the time of collection were included. Because content availability on Reddit may change over time, replication based on identifiers may result in a subset of successfully retrieved posts. Analyses should therefore be conducted on the retrievable subset where applicable, and the proportion of unresolved identifiers should be reported.
The dataset has manual annotations for both traditional and ABSA. Inter-annotator agreement was assessed using Krippendorff’s ⍺; final agreement was ⍺ = 0.604 for traditional labels, and ⍺ = 0.526 for ABSA labels.
There are four essential fields in the dataset: “post_id”, “aspect”, “trad_label”, and “absa_label”. The “post_id” field represents unique identifiers to the post text that can be accessed through the Reddit application programming interface (API). The “aspect” field corresponds to a term from an existing cannabis-related lexicon that was matched to the post [9]. The “trad_label” field denotes the overall sentiment of the post, while the “absa_label” field denotes sentiment at the aspect level; both are categorical labels with values “positive”, “negative”, or “neutral”. These gold-standard labels are fully complete and mandatory, with no missing, null, or ambiguous entries. In addition, the dataset includes individual labels from each annotator for both traditional (“annotator1_trad_label”, “annotator2_trad_label”, “annotator3_trad_label”) and aspect-based sentiment (“annotator1_absa_label”, “annotator2_absa_label”, “annotator3_absa_label”). These annotator-provided labels use the same three-class schema (“positive”, “negative”, “neutral”), but may be missing for some instances due to staggered annotation coverage.
Examples of annotated posts, including aspect terms and corresponding traditional and ABSA sentiment labels, are shown in Table 1, demonstrating the contextual variability of sentiment related to cannabis use in health discussions. One example shows divergence between the overall (trad_label) and aspect-level (absa_label) sentiment, reflecting that a post can express mixed sentiment toward specific aspects while the overall sentiment differs. Downstream users should interpret the absa_label as the sentiment specific to the annotated aspect, independent of the overall post sentiment.
| Sentence | Aspect | Traditional sentiment analysis label | Aspect-based sentiment analysis label |
|---|---|---|---|
| my pain levels have been a lot better lately, i attribute it to the daily use of a cbd/cbg tincture oil, and i've added a b vitamin complex to my supplement regimen. | cbd | positive | positive |
| who uses cannabidiol (cbd) for sle? | cannabidiol | neutral | neutral |
| long story short, i tried a hybrid thc tincture and that night i felt my whole spine turn to glass as if i ate a whole bunch of starch. | thc | negative | negative |
| 4 years in and despite it getting better thanks to dronabinol, my health is still horrid and no clear diagnosis is in sight {bonus: small town doctors were horrible and telling me my pain wasn't real/i should focus on losing weight which i could do by not eating. | dronabinol | negative | positive |
4.Experimental Design, Materials and Methods
4.1.Identification of subreddits
We developed a curated list of ARD related terms, including full disease names and commonly used abbreviations (e.g., “rheumatoid arthritis” / “RA,” “systemic lupus erythematosus” / “SLE,” “psoriatic arthritis” / “PsA”). These terms were used to systematically search subreddit titles, descriptions, and metadata. For each term, the top 100 subreddit results were retrieved using the search functionality of the Python Reddit API Wrapper 7.8.1 (PRAW), an open-source interface for accessing Reddit's API [7]. Subreddits with fewer than 100 members were excluded to ensure adequate community engagement. The remaining candidates were manually reviewed by two authors to confirm thematic relevance, resulting in the final selection of seven ARD-related subreddits, which are provided in the dataset documentation.
4.2.Data extraction
As shown in Fig. 1, data was extracted using PRAW 7.8.1 [7]. We retrieved all posts between 2005 and April 2025 from the selected subreddits, sorted by recency. This temporal range was chosen to capture the full historical context of cannabis-related discussions on Reddit and to compare changes in cannabis mentions over time. Cannabis mentions were relatively rare to start, began increasing more substantially around 2017, and have recently plateaued, reflecting both the growth and stabilization of discussion within these communities (Fig. 2). No keyword-based search or content-level filtering was applied prior to dataset construction. For each post, the following attributes were extracted (when available): id, title, selftext, subreddit, url, num_comments, created_at, author, author_flair_text, over_18, and spoiler. Posts without an author were excluded, but no additional filtering was applied prior to lexicon matching. The data extraction pipeline is included in the data repository as the file top_subreddits_weekly_extraction.py.
4.3.Cannabis term matching
We used a previously developed cannabis-related term list to identify relevant mentions in the collected Reddit posts [9]. This lexicon defines the set of aspect terms used in the study, and the full term list is provided as the cannabis_lexicon.csv file in the dataset repository. For this study, no terms were removed or modified, and no additional terms were added. Lexicon matching was implemented using case-insensitive regular expressions applied to a concatenated text field comprising the post title and selftext fields. No preprocessing beyond lowercasing was applied prior to lexicon matching; URLs, emojis, Markdown formatting, and user mentions were retained. Word boundaries (\b) were enforced to prevent partial matches, multi-word expressions were matched as contiguous sequences, and duplicate matches within each category were removed. No stemming or lemmatization was applied; morphological variants were matched only if explicitly included in the lexicon. Posts could match multiple categories, which were retained as separate entries.
Sentences with fewer than three words were excluded, and for each of the 2071 matched sentences, a fixed window of two preceding and two following sentences was extracted to retain sufficient context for annotation while still considering text length, and no alternative window sizes were evaluated. Sentence boundary detection and contextual span extraction were performed using spaCy’s rule-based sentencizer (spaCy v3.4.4) with the en_core_sci_sm pipeline (v0.5.1), with no custom rules. Although segmentation quality was not manually verified, we relied on the default rule-based sentencizer, which has been validated in prior biomedical text processing studies. The code implementing this is provided in the Zenodo dataset repository to support reproducibility.
4.4.Annotation protocol
We randomly selected 500 lexicon matched sentences and their context windows for manual sentiment annotation using a seed of 93, stratified by subreddit. Each instance was manually reviewed to ensure that lexicon matches referred to cannabis-related usage in context. Instances determined to be irrelevant to cannabis use (e.g., “pot” referring to cookware) were removed, resulting in a total of 479 matched sentences. Three annotators (TP, AA, CD) independently annotated an initial batch of 97 posts, assigning sentiment labels (positive, negative, neutral) for both the traditional (post-level) and aspect-based (aspect-level) sentiment tasks. The positive label was assigned when the text expressed a favorable evaluation or beneficial experience; negative when it conveyed dissatisfaction, criticism, or adverse effects; and neutral when the content was factual, informational, interrogative, or otherwise lacked a clear evaluative stance. Annotations were performed on specific post-aspect pairs, so each aspect within a post was annotated separately and assigned its own sentiment label. Full annotation guidelines are available in the annotation_guidelines.pdf file in the Zenodo repository.
The first round included three annotators per post-aspect pair, while the second round was conducted in a staggered design in which each instance was independently labeled by two of the three annotators, with annotator pairings varying across instances. In all phases, when at least two annotators agreed on a label, the majority label was retained as the final gold-standard label. Post-aspect pairs with complete disagreement (three distinct labels or persistent disagreement between two annotators) were reviewed and adjudicated by a separate pair of annotators (TF, SB), who resolved disagreements through discussion and consensus. Adjudication decisions were documented, and the resulting gold-standard labels constitute the main “trad_label” and “absa_label” columns in the dataset.
The dataset contains manually annotated labels for both traditional (post-level) and aspect-based (aspect-level) sentiment analysis tasks. The class distributions for positive, negative, and neutral sentiment across both tasks are summarized in Table 2.
| Positive | Negative | Neutral | |
|---|---|---|---|
| Traditional sentiment | 36 (7.5%) | 130 (27.1%) | 313 (65.3%) |
| ABSA sentiment | 131 (27.3%) | 44 (9.2%) | 304 (63.5%) |
4.5.Annotation reliability
To assess annotation reliability, we calculated inter-annotator agreement using Krippendorff’s ⍺, which is appropriate for nominal labels, accommodates missing annotations, and supports variable numbers of annotators per instance [10]. We additionally report exact agreement as a complementary descriptive measure. Exact agreement does not adjust for chance and is therefore not used as the primary reliability measure. Agreement was computed separately for each annotation round to reflect the differing annotation designs. As shown in Table 3 and Fig. 1, for traditional labels, agreement was ⍺ = 0.653 (exact agreement = 0.732) in Round 1 and ⍺ = 0.604 (exact agreement = 0.817) in Round 2. For ABSA labels, agreement was ⍺ = 0.702 (exact agreement = 0.753) in Round 1 and ⍺ = 0.526 (exact agreement = 0.791) in Round 2.
| Label Type | Annotation Round | Krippendorff’s ⍺ | Exact Agreement |
|---|---|---|---|
| Traditional | Round 1 | 0.653 | 0.732 |
| Round 2 | 0.604 | 0.817 | |
| ABSA | Round 1 | 0.702 | 0.753 |
| Round 2 | 0.526 | 0.791 |
Limitations
The dataset size is relatively small (479 post–aspect pairs), partly reflecting the niche focus on cannabis-related discussions within ARD communities. While suitable for exploratory analysis and annotation benchmarking, the limited size may constrain deep learning performance and model generalizability. Second, there are significant class imbalances, which may affect downstream model training and performance. Future use of this dataset may require weighting strategies (e.g. macro averaged F scores) or data augmentation. Third, Reddit content is self-reported, unverified, and may not represent clinically confirmed ARD populations or broader patient demographics. The informal and context-dependent nature of social media language, including sarcasm and implicit sentiment, may also introduce ambiguity despite the use of structured annotation guidelines and consensus procedures. Additionally, Reddit is subject to demographic biases (e.g. younger, male, technology-engaged users). Fourth, sampling is limited to a set of ARD-related subreddits, which may introduce selection bias. Fifth, the use of exact lexicon matching may have introduced bias toward explicit term mentions. Finally, the dataset includes only English-language content from Reddit, which restricts linguistic diversity and cultural representativeness. Future extensions could incorporate multilingual sources, cross-platform validation, or linkage with clinically verified corpora to improve applicability and external validity.
Ethics Statement
No human subjects were directly involved in this study. All data were collected from publicly accessible Reddit communities using the Reddit API. Reddit was selected as a data source because it contains large-scale patient-reported discussions that capture perspectives that are often not fully represented in clinical data sources such as electronic health records.
We acknowledge that analysis of health-related discussions may raise privacy concerns due to the sensitive nature of inferred health conditions, and we therefore take care to minimize re-identification risk through de-identification and restricted data release. In accordance with the Reddit Developer Terms and Data API Terms, which prohibit bulk text redistribution of Reddit content without prior approval, we do not distribute raw text and instead provide only post identifiers. No personal identifiers, usernames, or user metadata were collected or shared. Short excerpts included in tables are limited to the minimum necessary for qualitative illustration and do not permit reconstruction of the underlying dataset, consistent with Reddit’s policies restricting bulk redistribution and permitting limited display of user content. As all content is publicly available, the study was deemed exempt from further review by the Emory Institutional Review Board (IRB).
Acknowledgements
This research did not receive any specific grant from funding agencies in the public, commercial, or not-for-profit sectors.
Declaration of Competing Interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
Data Availability
References
Untitled section
References
- 1.Falasinnu T., Nguyen T., Jiang T.E., Chaichian Y., Rector A., Darnall B.D., Mackey S., Simard J.F. The problem of pain in rheumatology: clinical profiles associated with concomitant diagnoses with chronic overlapping pain conditions. ACR Open Rheumatol. 2022;4:890–896. doi: 10.1002/acr2.11488.
- 2.Falasinnu T., Lu D., Baker M.C. Annual trends in pain management modalities in patients with newly diagnosed autoimmune rheumatic diseases in the USA from 2007 to 2021: an administrative claims-based study. Lancet Rheumatol. 2024;6:e518–e527. doi: 10.1016/S2665-9913(24)00120-6.
- 3.Caulkins J.P. Changes in self-reported cannabis use in the United States from 1979 to 2022. Addiction. 2024;119:1648–1652. doi: 10.1111/add.16519.
- 4.Tavabi N., Raza M., Singh M., Golchin S., Singh H., Hogue G.D., Kiapour A.M. Disparities in cannabis use and documentation in electronic health records among children and young adults. Npj Digital Med. 2023;6:138. doi: 10.1038/s41746-023-00885-w.
- 5.Chi Y., Chen H.-Y. Investigating substance use via Reddit: systematic scoping review. J. Med. Internet Res. 2023;25 doi: 10.2196/48905.
- 6.Park T., Lakamana S., Alagappan A., Chalmers C.D., Gursel E., Guo Y., Falasinnu T., Sarker A., Bozkurt S. A cannabis use Reddit dataset for aspect‑based sentiment analysis. Zenodo. 2025;1 doi: 10.5281/zenodo.20214862. [Dataset]
- 7.PRAW Developers . GitHub; 2024. Python Reddit API Wrapper (PRAW) [software]https://github.com/praw-dev/praw accessed 13 March 2025.
- 8.Reddit, Reddit API documentation. http://www.reddit.com/dev/api/, 2026 (accessed 15 May 2026).
- 9.Sajdeya R., Mardini M.T., Tighe P.J., Ison R.L., Bai C., Jugl S., Gao H., Zandbiglari K., Adiba F.I., Winterstein A.G., Pearson T.A., Cook R.L., Rouhizadeh M. Developing and validating a natural language processing algorithm to extract preoperative cannabis use status documentation from unstructured narrative clinical notes. J. Am. Med. Inform. Assoc. 2023;30:1418–1428. doi: 10.1093/jamia/ocad080.
- 10.Krippendorff K. 2nd ed. Sage; Thousand Oaks, CA: 2004. Content Analysis: An Introduction to Its Methodology.