https://github.com/landesbergn/rhymer
R package for finding related words through the Datamuse API
https://github.com/landesbergn/rhymer
datamuse-api r rhymes
Last synced: 8 months ago
JSON representation
R package for finding related words through the Datamuse API
- Host: GitHub
- URL: https://github.com/landesbergn/rhymer
- Owner: landesbergn
- License: other
- Created: 2017-11-11T19:42:38.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-05-19T01:16:35.000Z (about 1 year ago)
- Last Synced: 2025-10-22T03:47:18.156Z (8 months ago)
- Topics: datamuse-api, r, rhymes
- Language: R
- Homepage: https://landesbergn.github.io/rhymer/
- Size: 2.9 MB
- Stars: 26
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.Rmd
- Changelog: NEWS.md
- License: LICENSE
Awesome Lists containing this project
README
---
output: github_document
---
```{r, echo = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-"
)
suppressMessages(library(rhymer))
```
# rhymer
[](https://app.travis-ci.com/landesbergn/rhymer)
[](https://app.codecov.io/github/landesbergn/rhymer?branch=master)
[](https://cran.r-project.org/package=rhymer)
[](https://cran.r-project.org/package=rhymer)
### Overview
The goal of `rhymer` is to get rhyming and other related words through the [Datamuse API](https://www.datamuse.com/api/). This package includes basic functions to get rhymes and other similar words based on meaning, spelling, or sound.
## Installation
```{r gh-installation, eval = FALSE}
install.packages("rhymer")
# Or the the development version from GitHub:
# install.packages("devtools")
devtools::install_github("landesbergn/rhymer")
```
## Example
They say nothing rhymes with _orange_...
```{r example1}
get_rhyme("orange", return_type = "word")
```
Feeling down? How about this cloud of words with similar meaning to _happy_:
```{r example2}
word_data <- get_means_like("happy", return_type = "df")
wordcloud::wordcloud(words = word_data$word,
freq = word_data$score,
colors = c("lightsteelblue1","lightsteelblue2","lightsteelblue3","lightsteelblue"))
```
Eminem wrote the classic rap song ['Lose Yourself'](https://genius.com/Eminem-lose-yourself-lyrics), but could it be better with `rhymer`?
```{r}
glue::glue("
His palms are sweaty
Knees weak arms are {get_rhyme('sweaty', return_type = 'word', num_syl = 2)}
There's vomit on his sweater already
Mom's {get_rhyme('already', return_type = 'word', num_syl = 3)}
")
```
## Main functions
`rhymer` has 4 main functions that allow you to get data on related words through the Datamuse API.
They are:
- `get_rhyme()` - a function to get rhyming words
- `get_means_like()` - a function to get words with similar meaning
- `get_sounds_like()` - a function to get words that sound similar
- `get_spelled_like()` - a function to get words that are spelled similarly
There is also a more flexible function `get_other_related()` that allows you to use the API to get data on other related words using a series of 'codes' described on the [Datamuse API website](https://www.datamuse.com/api/).
Each function takes the basic arguments of:
- `word` the word to base results on
- `return_type` what type of data return (options are _df_ for a data frame, _vector_ for a vector, _word_ for a single word, and _random\_word_ for a random word)
- `limit` max number of related words to return
`get_rhyme()` and `get_sounds_like()` also have special helpers for the number of syllables to return called `num_syl`.