One of my buddies from way back in the day, Mike Lin, recently launched B-Rhymes, a half/oblique/slant rhyme dictionary, to much acclaim. On Monday it hit metafilter and was picked up by nerdcore hip hop superstar MC Frontalot on his Twitter feed:
A slanted rhyme dictionary that makes your rap writing lots easier (but won’t help you w/ musical theater writing): http://www.b-rhymes.com/
Mike used to work for local a company that uses software to do genetic research (his academic background is in both Computer Science and Chemistry), and the B-Rhymes dictionary is a cross-pollination of DNA sequence alignment algorithms, linguistics, and cloud computing.
I’ve been privy to Mike’s behind-the-scenes development cycle and I chatted with him to get the facts straight for this article. I guess that means this is our site’s first interview!
Here’s the chat log, edited and tagged:
Jack: What flavor of algorithms does B-Rhymes use? DNA sequencing or something? What’s the buzz word?
Michael: It’s loosely inspired by DNA sequence alignment algorithms, where different nucleotides lining up get different scores because the rates of mutations from one nucleotide to another aren’t random.
Jack: And you built the database using Amazon’s cloud?
Michael: Yeah, everything is pre-calculated using an Amazon high compute node.
Jack: The dictionary was generated using a genetic algorithm?
Michael: No, this is the opposite — It’s an algorithm applied to genetics
![]()
Jack: So what’s this about mutations?
Michael: Oh. The point of aligning DNA like this is to determine how likely it is that these two sequences have a common ancestor. So trying to find the same gene in people as, say, mice. It’ll be different because of mutation, but similar because they have common ancestry.
Jack: So you’re looking for similar things with sounds in words?
Michael: Yeah, instead of nucleotides you have phonemes, sounds, and instead of likelihood of mutation, you have likelihood of those two sounds rhyming.
Jack: That’s why it’s kind of rough? It’s more like a list of words that might rhyme?
Michael: Sort of. It just rates consonance. Sometimes that’s not enough. The big fix I need to do is make it skip words where the last consonant doesn’t rhyme, but the rest does, so it gets a high score, but people say it doesn’t rhyme.
Jack: You used the Amazon cloud to run these algorithms on the whole dictionary?
Michael: Yeah, so 40k x 40k. That’s how many words are in the dictionary.
Jack: Each word compared to each word, gotcha.
Michael: It took about a day on Amazon versus 10 days the last time I did it on my laptop.
Jack: It’d be cool to allow people to star-rank matches. So you preserve the algorithmic rankings, but allow a search on what people think are better.
Michael: Yeah, that’d take some work to scale though.
Jack: Then the more people use the app the better it’d get.
Michael: It’s really fast right now because the web server doesn’t have to do much.
Jack: Also you’d probably need to make it regional — Aussies will rhyme things differently than Canadians.
Michael: Yeah, take accents into account. It’d be interesting to find an algorithm for different accents. If it’s a direct mapping you wouldn’t have to write too much code.
Jack: Why “B-Rhymes” — does that have a meaning?
Michael: Like, B-list celebrities.
Jack: Oh, I gotcha.
Michael: It’s short, but some people don’t seem to get it…
![]()
Jack: I was thinking it might relate to rhyme schemes being given as ABAB, eg. Like, “secondary rhymes”.
Michael: Hahah. People seem to think it means Busta-Rhymes.
Mike’s working on an iPhone App that’s coming along nicely (the mobile version of the site is here). You can follow Mike’s progress on the B-Rhymes blog here and on his personal blog here (Mike’s also a member of MPF’s audience).
This is a really sweet project; I’m looking forward to seeing how it develops and what kind of stuff Mike gets up to in future! Very exciting.