{
  "_id": "6ab4fa7c3d719c1f8409809b",
  "Package": "tidyEmoji",
  "Type": "Package",
  "Title": "Discover, Count, Categorise, Score, Translate and Relate Emoji\nin Text",
  "Version": "0.5.0",
  "Authors@R": "c(person(given = \"Youzhi\",\nfamily = \"Yu\",\nrole = c(\"aut\", \"cre\"),\nemail = \"yuyouzhi666@icloud.com\"))",
  "Description": "A tidy toolkit for working with the emoji in any text\ncolumn, such as social-media posts, product reviews, chat logs\nor survey responses. Unicode is awkward to handle and not every\ncode point is an emoji, which makes emoji statistics fiddly to\nobtain. 'tidyEmoji' extracts, counts, categorises,\nsentiment-scores and emotion-scores emoji, converts them to and\nfrom text (for accessibility and NLP preprocessing), searches\nthe emoji catalogue, maps emoji co-occurrence and sequences\n(graph-ready edge lists and n-grams), measures where and how\ndensely emoji are used, and builds document-by-emoji feature\ntables for machine learning, with grapheme-aware detection (so\nskin-tone and multi-person sequences stay intact), returning\ntidy data frames that slot straight into a 'tidyverse'\nworkflow. It also quantifies how much annotators disagreed\nabout an emoji (interpretation risk), extracts the words around\neach emoji, tracks emoji use over time, measures text-emoji\nsentiment mismatch, and applies explicit emoji-preprocessing\npolicies for language-model pipelines. The bundled emoji\nsentiment lexicon is from the Emoji Sentiment Ranking of Kralj\nNovak et al. (2015) <doi:10.1371/journal.pone.0144296>,\nreleased under CC BY-SA 4.0; the emotion lexicon is from\nEmoTag1200 of Shoeb & de Melo (2020)\n<https://aclanthology.org/2020.emnlp-main.720/>, released under\nthe MIT licence.",
  "License": "GPL (>= 3)",
  "URL": "https://pursuitofdatascience.github.io/tidyEmoji/,\nhttps://github.com/PursuitOfDataScience/tidyEmoji",
  "BugReports": "https://github.com/PursuitOfDataScience/tidyEmoji/issues",
  "Encoding": "UTF-8",
  "Language": "en-GB",
  "LazyData": "true",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "Config/pak/sysreqs": "libicu-dev",
  "Repository": "https://pursuitofdatascience.r-universe.dev",
  "Date/Publication": "2026-09-24 09:02:42 UTC",
  "RemoteUrl": "https://github.com/pursuitofdatascience/tidyemoji",
  "RemoteRef": "HEAD",
  "RemoteSha": "f388843a08b9e72a27ac676d16df22a8c9e202eb",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-24 10:18:52 UTC",
    "User": "root"
  },
  "Author": "Youzhi Yu [aut, cre]",
  "Maintainer": "Youzhi Yu <yuyouzhi666@icloud.com>",
  "_user": "pursuitofdatascience",
  "_type": "src",
  "_file": "tidyEmoji_0.5.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/05706ee7870e04710a6b2cb7f3dba1bd66f0f2a55f530fe6984a964f8d262ad7",
  "_filesize": 1735644,
  "_sha256": "05706ee7870e04710a6b2cb7f3dba1bd66f0f2a55f530fe6984a964f8d262ad7",
  "_expires": "2027-01-02T10:24:58.000Z",
  "_created": "2026-09-24T10:18:52.000Z",
  "_published": "2026-09-24T10:25:00.490Z",
  "_jobs": [
    {
      "job": 107590419291,
      "time": 280,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10801868905"
    },
    {
      "job": 107590419216,
      "time": 271,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10802671970"
    },
    {
      "job": 107590419447,
      "time": 209,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10802468006"
    },
    {
      "job": 107590419224,
      "time": 238,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10802174321"
    },
    {
      "job": 107589025941,
      "time": 264,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10802576602"
    },
    {
      "job": 107590419492,
      "time": 129,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "10801709091"
    },
    {
      "job": 107590419223,
      "time": 269,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10803080000"
    },
    {
      "job": 107590420398,
      "time": 258,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "10802433308"
    },
    {
      "job": 107590419245,
      "time": 218,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10802810217"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/35986082591",
  "_status": "success",
  "_upstream": "https://github.com/pursuitofdatascience/tidyemoji",
  "_commit": {
    "id": "f388843a08b9e72a27ac676d16df22a8c9e202eb",
    "author": "Youzhi Yu <yuyouzhi666@icloud.com>",
    "committer": "Youzhi Yu <yuyouzhi666@icloud.com>",
    "message": "Detect roxygen sources by their files, not by the directory\n\nThe coverage job runs the tests from a copy in which ../../R exists and\nholds the installed lazy-load database. The new list-item scan saw the\ndirectory, found no .R files in it and failed its own non-vacuity check,\nwhich made test-coverage the one red job on 3012c01. It now stands down on\nthe files, as the tolower() scan beside it already does. Reproduced with\nthe job's own covr::package_coverage() call: 1 failure before, 0 after.\n\nThe registered-lexicon fix left the `key` fallback in\n.emoji_lexicon_keys() serving only a table keyed by its code-point column,\nand no test reached it any more, so it has one. Coverage is 99.31%. NEWS's\ncoverage sentence had also gone stale on its thinnest file, which is\nemoji-translate.R at 97.2% rather than emoji-sentiment.R at 94.9%, and the\ncounts cran-comments.md quotes move by the two new assertions.\n\nVerified: covr 99.31% with 0 test failures, as the job runs it;\n`R CMD check --as-cran` 1 WARNING and 3 NOTEs, the four host artefacts, in\nUTF-8 (in-check 16150 pass, 19 skip) and under `LC_ALL=C` (16144 pass);\nR 4.6.0 without its missing Suggests 2 NOTEs, 16146 pass; standalone\nsuites 16269 pass under UTF-8 and 16260 under `LC_ALL=C`, 0 failures; the\n0.5.0 regression file passes on R 4.1.0 and R 4.6.0.\n",
    "time": 1790240562
  },
  "_maintainer": {
    "name": "Youzhi Yu",
    "email": "yuyouzhi666@icloud.com",
    "login": "pursuitofdatascience",
    "description": "CUDA out of memory",
    "uuid": 54338793
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "dplyr",
      "version": ">= 1.1.0",
      "role": "Imports"
    },
    {
      "package": "emoji",
      "version": ">= 16.0.0",
      "role": "Imports"
    },
    {
      "package": "lifecycle",
      "version": ">= 1.0.3",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "version": ">= 1.3.0",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.1.5",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "commonmark",
      "role": "Suggests"
    },
    {
      "package": "xml2",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "readr",
      "version": ">= 2.0.0",
      "role": "Suggests"
    },
    {
      "package": "forcats",
      "role": "Suggests"
    },
    {
      "package": "stringr",
      "role": "Suggests"
    }
  ],
  "_owner": "pursuitofdatascience",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-25",
      "n": 5
    },
    {
      "week": "2026-27",
      "n": 10
    },
    {
      "week": "2026-28",
      "n": 1
    },
    {
      "week": "2026-30",
      "n": 1
    },
    {
      "week": "2026-32",
      "n": 2
    },
    {
      "week": "2026-36",
      "n": 22
    },
    {
      "week": "2026-37",
      "n": 3
    },
    {
      "week": "2026-38",
      "n": 33
    },
    {
      "week": "2026-39",
      "n": 5
    }
  ],
  "_tags": [
    {
      "name": "v0.2.0",
      "date": "2026-06-16"
    },
    {
      "name": "v0.3.0",
      "date": "2026-07-25"
    },
    {
      "name": "v0.4.0",
      "date": "2026-09-17"
    },
    {
      "name": "v0.5.0",
      "date": "2026-09-24"
    }
  ],
  "_topics": [
    "emoji",
    "nlp",
    "tidyverse"
  ],
  "_stars": 4,
  "_contributors": [
    {
      "user": "pursuitofdatascience",
      "count": 93,
      "uuid": 54338793
    }
  ],
  "_userbio": {
    "uuid": 54338793,
    "type": "user",
    "name": "Y. Yu",
    "followers": 35,
    "description": "CUDA out of memory"
  },
  "_downloads": {
    "count": 416,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/tidyEmoji"
  },
  "_devurl": "https://github.com/pursuitofdatascience/tidyemoji",
  "_pkgdown": "https://pursuitofdatascience.github.io/tidyEmoji/",
  "_searchresults": 15,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/tidyEmoji.html"
  ],
  "_homeurl": "https://github.com/pursuitofdatascience/tidyemoji",
  "_realowner": "pursuitofdatascience",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2022-02-18"
    },
    {
      "version": "0.1.1",
      "date": "2023-08-19"
    },
    {
      "version": "0.2.0",
      "date": "2026-06-17"
    },
    {
      "version": "0.3.0",
      "date": "2026-08-04"
    },
    {
      "version": "0.4.0",
      "date": "2026-09-17"
    }
  ],
  "_exports": [
    "as_emoji",
    "as_emoji_name",
    "as_emoji_shortcode",
    "as_emoji_type",
    "emoji_adoption_lag",
    "emoji_ambiguity",
    "emoji_categorize",
    "emoji_collocations",
    "emoji_congruence",
    "emoji_context",
    "emoji_cooccurrence",
    "emoji_density",
    "emoji_dfm",
    "emoji_emotion",
    "emoji_emotion_label",
    "emoji_extract_nest",
    "emoji_extract_unnest",
    "emoji_faceness",
    "emoji_filter",
    "emoji_flag_ambiguous",
    "emoji_frequency",
    "emoji_incongruity",
    "emoji_incongruity_profile",
    "emoji_lexicons",
    "emoji_ngrams",
    "emoji_pairs",
    "emoji_position",
    "emoji_provenance",
    "emoji_ratio",
    "emoji_risk",
    "emoji_sanitize",
    "emoji_score",
    "emoji_search",
    "emoji_seasonality",
    "emoji_sentiment",
    "emoji_summary",
    "emoji_to_text",
    "emoji_token_cost",
    "emoji_tokens",
    "emoji_trend",
    "emoji_turnover",
    "emoji_tweets",
    "emoji_type",
    "emoji_unicode_releases",
    "emoji_unicode_version",
    "emoji_version_profile",
    "register_emoji_lexicon",
    "text_to_emoji",
    "top_n_emojis"
  ],
  "_datasets": [
    {
      "name": "category_unicode_crosswalk",
      "title": "Emoji category to unicode crosswalk",
      "object": "category_unicode_crosswalk",
      "class": [
        "data.frame"
      ],
      "fields": [
        "category",
        "unicodes"
      ],
      "rows": 10,
      "table": true,
      "tojson": true
    },
    {
      "name": "emoji_emotion_lexicon",
      "title": "Emoji emotion lexicon (EmoTag1200)",
      "object": "emoji_emotion_lexicon",
      "class": [
        "data.frame"
      ],
      "fields": [
        "key",
        "emoji",
        "name",
        "anger",
        "anticipation",
        "disgust",
        "fear",
        "joy",
        "sadness",
        "surprise",
        "trust"
      ],
      "rows": 150,
      "table": true,
      "tojson": true
    },
    {
      "name": "emoji_sentiment_lexicon",
      "title": "Emoji Sentiment Ranking lexicon",
      "object": "emoji_sentiment_lexicon",
      "class": [
        "data.frame"
      ],
      "fields": [
        "emoji",
        "occurrences",
        "position",
        "negative",
        "neutral",
        "positive",
        "sentiment_score",
        "sentiment_label",
        "unicode_name",
        "unicode_block"
      ],
      "rows": 969,
      "table": true,
      "tojson": true
    },
    {
      "name": "emoji_unicode_crosswalk",
      "title": "Emoji name, unicode and category crosswalk",
      "object": "emoji_unicode_crosswalk",
      "class": [
        "data.frame"
      ],
      "fields": [
        "emoji_name",
        "unicode",
        "emoji_category",
        "key"
      ],
      "rows": 5761,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "as_emoji_name",
      "title": "Vector helpers: convert emoji to/from names and shortcodes",
      "topics": [
        "as_emoji",
        "as_emoji_name",
        "as_emoji_shortcode"
      ]
    },
    {
      "page": "as_emoji_type",
      "title": "Functional type of an emoji glyph",
      "topics": [
        "as_emoji_type"
      ]
    },
    {
      "page": "category_unicode_crosswalk",
      "title": "Emoji category to unicode crosswalk",
      "topics": [
        "category_unicode_crosswalk"
      ]
    },
    {
      "page": "emoji_adoption_lag",
      "title": "How long did this population take to adopt each emoji?",
      "topics": [
        "emoji_adoption_lag"
      ]
    },
    {
      "page": "emoji_ambiguity",
      "title": "How ambiguous is each emoji?",
      "topics": [
        "emoji_ambiguity"
      ]
    },
    {
      "page": "emoji_categorize",
      "title": "Categorise each row by the emoji categories it contains",
      "topics": [
        "emoji_categorize"
      ]
    },
    {
      "page": "emoji_collocations",
      "title": "Which words keep company with which emoji",
      "topics": [
        "emoji_collocations"
      ]
    },
    {
      "page": "emoji_congruence",
      "title": "Text-emoji congruence",
      "topics": [
        "emoji_congruence"
      ]
    },
    {
      "page": "emoji_context",
      "title": "The text around each emoji occurrence",
      "topics": [
        "emoji_context"
      ]
    },
    {
      "page": "emoji_cooccurrence",
      "title": "Emoji co-occurrence counts, with an optional diagonal",
      "topics": [
        "emoji_cooccurrence"
      ]
    },
    {
      "page": "emoji_density",
      "title": "Emoji density per character and per token",
      "topics": [
        "emoji_density"
      ]
    },
    {
      "page": "emoji_dfm",
      "title": "Document-by-emoji feature matrix",
      "topics": [
        "emoji_dfm"
      ]
    },
    {
      "page": "emoji_emotion",
      "title": "Emoji emotion profiles (the 8 Plutchik emotions)",
      "topics": [
        "emoji_emotion"
      ]
    },
    {
      "page": "emoji_emotion_label",
      "title": "The dominant emoji emotion per row",
      "topics": [
        "emoji_emotion_label"
      ]
    },
    {
      "page": "emoji_emotion_lexicon",
      "title": "Emoji emotion lexicon (EmoTag1200)",
      "topics": [
        "emoji_emotion_lexicon"
      ]
    },
    {
      "page": "emoji_extract_nest",
      "title": "Add a list-column of the emoji found in each row",
      "topics": [
        "emoji_extract_nest"
      ]
    },
    {
      "page": "emoji_extract_unnest",
      "title": "Emoji counts per row, in long (tidy) form",
      "topics": [
        "emoji_extract_unnest"
      ]
    },
    {
      "page": "emoji_faceness",
      "title": "How face-heavy is each row's emoji use?",
      "topics": [
        "emoji_faceness"
      ]
    },
    {
      "page": "emoji_filter",
      "title": "Keep only the rows whose text contains emoji",
      "topics": [
        "emoji_filter",
        "emoji_tweets"
      ]
    },
    {
      "page": "emoji_flag_ambiguous",
      "title": "Which emoji in this corpus are most likely to be misread?",
      "topics": [
        "emoji_flag_ambiguous"
      ]
    },
    {
      "page": "emoji_frequency",
      "title": "Frequency of every emoji in a text column",
      "topics": [
        "emoji_frequency"
      ]
    },
    {
      "page": "emoji_incongruity",
      "title": "Text-emoji sentiment mismatch",
      "topics": [
        "emoji_incongruity"
      ]
    },
    {
      "page": "emoji_incongruity_profile",
      "title": "Which emoji go against the grain of their text?",
      "topics": [
        "emoji_incongruity_profile"
      ]
    },
    {
      "page": "emoji_lexicons",
      "title": "List bundled emoji lexicons",
      "topics": [
        "emoji_lexicons"
      ]
    },
    {
      "page": "emoji_ngrams",
      "title": "Consecutive emoji sequences (n-grams)",
      "topics": [
        "emoji_ngrams"
      ]
    },
    {
      "page": "emoji_pairs",
      "title": "Co-occurring emoji pairs",
      "topics": [
        "emoji_pairs"
      ]
    },
    {
      "page": "emoji_position",
      "title": "Where do emoji sit within each text?",
      "topics": [
        "emoji_position"
      ]
    },
    {
      "page": "emoji_provenance",
      "title": "Versions behind an emoji analysis, in one row",
      "topics": [
        "emoji_provenance"
      ]
    },
    {
      "page": "emoji_ratio",
      "title": "What share of the text is emoji, and is it emoji-only?",
      "topics": [
        "emoji_ratio"
      ]
    },
    {
      "page": "emoji_risk",
      "title": "Interpretation risk per row",
      "topics": [
        "emoji_risk"
      ]
    },
    {
      "page": "emoji_sanitize",
      "title": "Apply an explicit emoji policy to a text column",
      "topics": [
        "emoji_sanitize"
      ]
    },
    {
      "page": "emoji_score",
      "title": "Score emoji in a text column against any lexicon",
      "topics": [
        "emoji_score"
      ]
    },
    {
      "page": "emoji_search",
      "title": "Search emoji by keyword, name or shortcode",
      "topics": [
        "emoji_search"
      ]
    },
    {
      "page": "emoji_seasonality",
      "title": "Cyclical patterns in emoji use",
      "topics": [
        "emoji_seasonality"
      ]
    },
    {
      "page": "emoji_sentiment",
      "title": "Score the sentiment of the emoji in each row",
      "topics": [
        "emoji_sentiment"
      ]
    },
    {
      "page": "emoji_sentiment_lexicon",
      "title": "Emoji Sentiment Ranking lexicon",
      "topics": [
        "emoji_sentiment_lexicon"
      ]
    },
    {
      "page": "emoji_summary",
      "title": "Summarise emoji presence in a text column",
      "topics": [
        "emoji_summary"
      ]
    },
    {
      "page": "emoji_to_text",
      "title": "Replace emoji in a text column with words (demojize)",
      "topics": [
        "emoji_to_text"
      ]
    },
    {
      "page": "emoji_token_cost",
      "title": "What are the emoji in this text costing a tokeniser?",
      "topics": [
        "emoji_token_cost"
      ]
    },
    {
      "page": "emoji_tokens",
      "title": "Tidy emoji tokens, one row per occurrence with metadata",
      "topics": [
        "emoji_tokens"
      ]
    },
    {
      "page": "emoji_trend",
      "title": "Emoji frequency over time",
      "topics": [
        "emoji_trend"
      ]
    },
    {
      "page": "emoji_turnover",
      "title": "Emoji vocabulary churn between consecutive periods",
      "topics": [
        "emoji_turnover"
      ]
    },
    {
      "page": "emoji_type",
      "title": "Which functional types of emoji does each row use?",
      "topics": [
        "emoji_type"
      ]
    },
    {
      "page": "emoji_unicode_crosswalk",
      "title": "Emoji name, unicode and category crosswalk",
      "topics": [
        "emoji_unicode_crosswalk"
      ]
    },
    {
      "page": "emoji_unicode_releases",
      "title": "Unicode and Unicode Emoji release dates",
      "topics": [
        "emoji_unicode_releases"
      ]
    },
    {
      "page": "emoji_unicode_version",
      "title": "Which Unicode emoji version does this build reflect?",
      "topics": [
        "emoji_unicode_version"
      ]
    },
    {
      "page": "emoji_version_profile",
      "title": "How new is this corpus's emoji repertoire?",
      "topics": [
        "emoji_version_profile"
      ]
    },
    {
      "page": "register_emoji_lexicon",
      "title": "Register a custom emoji lexicon",
      "topics": [
        "register_emoji_lexicon"
      ]
    },
    {
      "page": "text_to_emoji",
      "title": "Replace shortcodes with emoji (emojize)",
      "topics": [
        "text_to_emoji"
      ]
    },
    {
      "page": "top_n_emojis",
      "title": "The most frequent emoji in a text column",
      "topics": [
        "top_n_emojis"
      ]
    }
  ],
  "_pkglogo": "https://github.com/pursuitofdatascience/tidyemoji/raw/HEAD/man/figures/logo.svg",
  "_readme": "https://github.com/pursuitofdatascience/tidyemoji/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "dplyr",
    "emoji",
    "generics",
    "glue",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "purrr",
    "R6",
    "rlang",
    "stringi",
    "stringr",
    "tibble",
    "tidyr",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_vignettes": [
    {
      "source": "introduction.Rmd",
      "filename": "introduction.html",
      "title": "Introduction to tidyEmoji",
      "author": "Youzhi YuUniversity of Chicago",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Example data",
        "Detecting and summarising emoji",
        "emoji_summary()",
        "emoji_filter()",
        "Extracting emoji",
        "emoji_extract_nest()",
        "emoji_extract_unnest()",
        "emoji_tokens()",
        "A note on grapheme-aware detection",
        "Counting emoji across the corpus",
        "emoji_frequency()",
        "top_n_emojis()",
        "Categorising emoji",
        "emoji_type(): faces versus everything else",
        "Scoring emoji sentiment",
        "emoji_sentiment()",
        "Sentiment distribution",
        "Sentiment by category",
        "The sentiment lexicon",
        "Interpretation risk: how much do readers disagree?",
        "Scoring emoji emotions",
        "Bringing your own lexicon",
        "Relating emoji: co-occurrence and sequences",
        "The words around an emoji",
        "Measuring how emoji are used",
        "Emoji over time",
        "Emoji as model features",
        "Text-emoji mismatch",
        "Translating emoji to and from text",
        "Searching the emoji catalogue",
        "Emoji in language-model pipelines",
        "Recording provenance",
        "Bundled datasets",
        "References"
      ],
      "created": "2022-02-17 16:30:16",
      "modified": "2026-09-24 08:32:40",
      "commits": 23
    },
    {
      "source": "reversible-preprocessing.Rmd",
      "filename": "reversible-preprocessing.html",
      "title": "Reversible emoji preprocessing for language models",
      "author": "Youzhi YuUniversity of Chicago",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The decision nobody writes down",
        "A corpus built to break things",
        "The ladder, run rather than described",
        "It holds on the awkward cases",
        "wrap is part of the contract, not a style choice",
        "Do not throw away the signal you just removed",
        "What it saves, and how to measure it honestly",
        "Which policy, by intent",
        "Put the versions in the methods section",
        "See also"
      ],
      "created": "2026-09-17 19:16:19",
      "modified": "2026-09-24 08:32:40",
      "commits": 3
    }
  ],
  "_score": 5.732393759822969,
  "_indexed": true,
  "_nocasepkg": "tidyemoji",
  "_universes": [
    "pursuitofdatascience"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.5.0",
      "date": "2026-09-24T10:21:26.000Z",
      "distro": "resolute",
      "commit": "f388843a08b9e72a27ac676d16df22a8c9e202eb",
      "fileid": "https://r2.ropensci.org/aba8d1a62596ad25e2f737aea2b49457d776fcd2e7c5f55ef1f5aa0eec5c04e9",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/35986082591"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.5.0",
      "date": "2026-09-24T10:21:24.000Z",
      "distro": "resolute",
      "commit": "f388843a08b9e72a27ac676d16df22a8c9e202eb",
      "fileid": "https://r2.ropensci.org/a045a24532088c1e0271f7c1f46d29aea4af9b052bdad3e3508c2dcd2306f1bb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/35986082591"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.5.0",
      "date": "2026-09-24T10:20:48.000Z",
      "commit": "f388843a08b9e72a27ac676d16df22a8c9e202eb",
      "fileid": "https://r2.ropensci.org/98c49d4f333c4988f59ee91c3f58189b6271d41dd1bd08ccc56dc53efbbf016e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/35986082591"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.5.0",
      "date": "2026-09-24T10:20:58.000Z",
      "commit": "f388843a08b9e72a27ac676d16df22a8c9e202eb",
      "fileid": "https://r2.ropensci.org/5f1e93d0f8abe5a32874353d5d9aa1d31f1b300d9696684e443d53c5c1ed4664",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/35986082591"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.5.0",
      "date": "2026-09-24T10:21:27.000Z",
      "commit": "f388843a08b9e72a27ac676d16df22a8c9e202eb",
      "fileid": "https://r2.ropensci.org/35d69b50801eafe90bcf05cba0dc8ff4787a3837b28363f88aff4373a9594a36",
      "status": "success",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/35986082591"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-09-24T10:20:21.000Z",
      "commit": "f388843a08b9e72a27ac676d16df22a8c9e202eb",
      "fileid": "https://r2.ropensci.org/4ee21b468ebd6a813012680e57b5579894505cdcd7a52c6dc0052acb1307b252",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/35986082591"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-09-24T10:20:31.000Z",
      "commit": "f388843a08b9e72a27ac676d16df22a8c9e202eb",
      "fileid": "https://r2.ropensci.org/e03baafd7266ba631b7f7ff3518fa9e90482695d6b785ff2a5e102cef5224411",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/35986082591"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.5.0",
      "date": "2026-09-24T10:20:10.000Z",
      "commit": "f388843a08b9e72a27ac676d16df22a8c9e202eb",
      "fileid": "https://r2.ropensci.org/96691881c734bc84296c98675ce857b792f04def336fbf3612b3b57790cef308",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/pursuitofdatascience/actions/runs/35986082591"
    }
  ]
}