textAnnotatoR: An Interactive Text Annotation Tool with 'shiny' GUI

textAnnotatoR: An Interactive Text Annotation Tool with 'shiny' GUI - Published in JOSS (2025)

https://github.com/chaoliu-cl/textannotator

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 8 months ago · JSON representation

Repository

Interactive Text Annotation Tool with Shiny GUI

Basic Info
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 3
Created over 1 year ago · Last pushed 10 months ago
Metadata Files
Readme Changelog License Code of conduct

README.Rmd

---
output: github_document
---



```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)
```

# textAnnotatoR: Interactive Text Annotation Tool for R

[![R-CMD-check](https://github.com/chaoliu-cl/textAnnotatoR/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/chaoliu-cl/textAnnotatoR/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/chaoliu-cl/textAnnotatoR/branch/main/graph/badge.svg?token=a8a91118-d5d9-4267-a0fa-077c0fc6e3f2)](https://codecov.io/gh/chaoliu-cl/textAnnotatoR?branch=main)
[![CRAN
status](https://www.r-pkg.org/badges/version/textAnnotatoR)](https://CRAN.R-project.org/package=textAnnotatoR)
[![Lifecycle:
experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental)

## Overview

`textAnnotatoR` provides an interactive graphical user interface for qualitative text analysis in R. The package allows researchers, students, and practitioners to annotate text, manage codes, create memos, and visualize coding patterns through an intuitive Shiny interface.

## Key Features

- **Interactive Text Annotation**: Select and code text segments directly within the GUI
- **Code Management**: Create, organize, and merge codes with a hierarchical structure
- **Theme Organization**: Group related codes into themes with a tree-based hierarchy
- **Memo Creation**: Attach notes and observations to annotations
- **Advanced Visualization**: Analyze code frequencies, co-occurrences, and patterns
- **Comparison Tools**: Compare coding patterns between different coders or documents
- **Project Management**: Save, load, and manage annotation projects
- **Export Options**: Save annotations and coded text in various formats (CSV, JSON, HTML)
- **R Integration**: Seamlessly combine with other R packages for advanced analysis

## Installation

```{r eval=FALSE}
# Install from CRAN
install.packages("textAnnotatoR")

# Or install the development version from GitHub
# install.packages("devtools")
devtools::install_github("chaoliu-cl/textAnnotatoR")
```

## Getting Started

Launch the annotation interface with a simple function call:

```{r eval=FALSE}
library(textAnnotatoR)
annotate_gui()
```

This opens the Shiny application in your default web browser. The interface includes a toolbar for project management, a tabbed main area for different functions, and a text display area.

## Basic Usage

1. **Create a New Project**: Click "New Project" in the top toolbar
2. **Import Text**: Go to the "File" tab, upload your text document (.txt, .docx, .pdf)
3. **Annotate Text**: Select text segments and apply codes
4. **Organize Codes**: Create a hierarchical structure of themes and codes
5. **Analyze Patterns**: Use the analysis tools to explore your coding
6. **Export Results**: Save your annotations and analysis for further use

## Documentation

Comprehensive documentation is available through vignettes:

```{r eval=FALSE}
# List available vignettes
vignette(package = "textAnnotatoR")

# Read specific vignettes
vignette("practical_example", package = "textAnnotatoR")
vignette("technical_integration", package = "textAnnotatoR")
```

## Advanced Features

### Code Hierarchies

Create and manage hierarchical code structures with themes and subthemes:

- Use "Add Theme" to create organizational categories
- Group related codes under appropriate themes
- Visualize the hierarchy in a tree structure

### Co-occurrence Analysis

Explore relationships between different codes:

- Identify patterns of code co-occurrence
- Visualize connections through network graphs
- Examine statistical measures of code relationships

### Comparison Tools

Compare coding patterns between different coders or documents:

- Upload two annotation sets
- Analyze similarities and differences
- Visualize comparative patterns

### Data Export

Export your annotations in various formats:

- CSV for quantitative analysis
- JSON for web applications
- HTML for formatted viewing with code highlighting

## Integration with R Ecosystem

`textAnnotatoR` is designed to work seamlessly with other R packages:

- **tidytext**: For text mining and natural language processing
- **quanteda**: For advanced text analysis
- **igraph/ggraph**: For network visualizations of code relationships
- **rmarkdown/shiny**: For reporting and interactive dashboards

## System Requirements

- R version 4.0.0 or higher
- Shiny and its dependencies
- A modern web browser

## Testing

The package includes comprehensive automated tests for core functionality, data processing, and utility functions. While testing interactive Shiny components presents unique challenges, the package maintains good test coverage for the underlying logic and data manipulation functions that power the user interface. Interactive components are validated through manual testing and user feedback.

## Contributing

Contributions to `textAnnotatoR` are welcome! Please feel free to submit issues or pull requests on GitHub.

## License

This package is licensed under the GPL-3 License.

## Contact

- Issues: Please report issues on the [GitHub issues
  page](https://github.com/chaoliu-cl/textAnnotatoR/issues)
- Email: 
- X: [@X](https://x.com/ChaoLiu77600168)

Owner

  • Name: Chao Liu
  • Login: chaoliu-cl
  • Kind: user
  • Location: Cedarville, OH
  • Company: Cedarville University

JOSS Publication

textAnnotatoR: An Interactive Text Annotation Tool with 'shiny' GUI
Published
September 19, 2025
Volume 10, Issue 113, Page 7971
Authors
Chao Liu ORCID
Cedarville University
Editor
Andrew Stewart ORCID
Tags
text analysis qualitative data analysis annotation shiny

GitHub Events

Total
  • Create event: 6
  • Issues event: 23
  • Release event: 3
  • Watch event: 1
  • Issue comment event: 3
  • Push event: 67
  • Public event: 1
  • Pull request event: 2
  • Fork event: 1
Last Year
  • Create event: 6
  • Issues event: 23
  • Release event: 3
  • Watch event: 1
  • Issue comment event: 3
  • Push event: 67
  • Public event: 1
  • Pull request event: 2
  • Fork event: 1

Dependencies

.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v4 composite
  • r-lib/actions/check-r-package v2 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
.github/workflows/pkgdown.yaml actions
  • JamesIves/github-pages-deploy-action v4.5.0 composite
  • actions/checkout v4 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-r-dependencies v2 composite
DESCRIPTION cran
  • R >= 3.5.0 depends
  • DT * imports
  • data.tree * imports
  • grDevices * imports
  • graphics * imports
  • jsonlite * imports
  • magrittr * imports
  • readtext * imports
  • shiny >= 1.7.0 imports
  • shinyFiles * imports
  • shinydashboard * imports
  • shinyjs * imports
  • stats * imports
  • tools * imports
  • utils * imports
  • covr * suggests
  • knitr * suggests
  • mockery * suggests
  • rmarkdown * suggests
  • testthat >= 3.0.0 suggests