Page content¶
General bot frameworks¶
- Botkit: "Building blocks for building Slack bots" (Howdy via github.com)
- Microsoft Bot Framework: Supports Cortana, Skype, Teams, Office 365 mail, Slack, Facebook Messenger, Skype for Business, and more. (Microsoft via dev.botframework.com)
- BotMan: A framework agnostic PHP library for building chat bots. (Botman via github.com)
- BotUI: JavaScript framework for building conversational UIs. (BotUI via botui.org)
Language¶
Filtering¶
- List of Dirty, Naughty, Obscene, and Otherwise Bad Words: Not perfect, but useful for building your own list. (Shutterstock via github.com)
- dariusk/wordfilter: A simple module for node.js, PHP, Python, and Ruby that lets you filter (bad) words. (Darius Kazemi via github.com)
node.js¶
- jimkang/iscool: Tool to help check if a string contains offensive or disrespectful language, or refers to a tragedy. (Jim Kang via npmjs.com)
Generating and templating¶
- RiveScript, see also bots using RiveScript
- SuperScript: a dialog system and bot engine for conversational UI’s
- ChatScript
- How to build your first chatbot using ChatScript (Giorgio Robino via freecodecamp.com)
- ink: narrative scripting language
node.js¶
- queneau-letters: node.js implementation of Queneau Assembly/Letter Chunks algorithm by Leonard Richardson
- queneau-buckets: node.js implementation of Leonard Richardson’s Queneau Assembly buckets algorithm
- kylestetz/Sentencer: madlibs-style sentence templating
- jimkang/shakesnippet: provides a randomly chosen Shakespeare excerpt
- spewer: a reverse part-of-speech tagger: give it a list of tags and it spews out matching language
- shariq/burgundy: generates “aesthetically pleasing words”, see burgundy.io
- Improv: a javascript library for generative text
- incrediblesound/story-graph: the graph that generates stories
- michaelpaulukonis/tagspewer: spew text based on pos-tagged-templates and associated lexicon; includes tools for parsing text and generating templates and lexicon
Python¶
- leonardr/olipy: Python library for artistic text generation
- cblgh/storyteller: a templating language and python parser for generating small stories
- nathanielksmith/prosaic: cut-up poetry generation over large corpora
- ryankiros/neural-storyteller: recurrent neural network for generating little stories about images
- mewo2/syllpos: a collection of wordlists
Dialog mockups¶
- Bottery: a conversational agent prototyping platform (Google via github.com)
- Demo on Glitch (glitch.me, view source code)
- Twine: an open-source tool for telling interactive, nonlinear stories
- Twinecery: tool for authoring and implementing tracery grammars in Twine
- The Poor Man’s Dialogue Tree (article)
- Chat Mapper: offers a free version
- Tree based tool to create dialog: question on rpg.stackexchange.com
- Dialogue System for Unity: How To Manage Quests (article)
- Walkie: Test copy, add attachments and share with your dev team.
Rhyming and pronunciation¶
node.js¶
- zeke/cmu-pronouncing-dictionary: all the 134,000+ words in the CMU pronouncing dictionary as a simple JSON object
- zeke/rhymes: “Give me an English word and I’ll give you a list of rhymes.” (uses zeke/cmu-pronouncing-dictionary)
Python¶
- aparrish/pronouncingpy: a simple interface for the CMU pronouncing dictionary, useful for finding rhymes
Other language libraries¶
node.js¶
- NaturalNode/natural: general natural language facilities for node
- stanford-simple-nlp: a simple node.js wrapper for Stanford CoreNLP
- doeg/toke: an experimental linguistics DSL for phrase grammar
- nemo/natural-synaptic: natural language classifier
- MichaelPaulukonis/mispelr (Michael Paulukonis via github.com)
Python¶
- NLTK: platform for building Python programs to work with human language data
- seatgeek/fuzzywuzzy: fuzzy string matching in Python, read more on chairnerd.seatgeek.com
- karpathy/neuraltalk: Python+numpy project for learning Multimodal Recurrent Neural Networks that describe images with sentences
- mewo2/syllpos: wordlists by part of speech and syllable count
- hugovk/chroniclingamerica.py: a Python wrapper for the Chronicling America API
- pteichman/quotefix: Insert matching punctuation for mismatched quotation marks, parentheses, etc. Good postprocessing for N-gram text synthesis.
- interrogator/corpkit: a Python-based toolkit for working with linguistic corpora
Other¶
- facebookincubator/duckling: language, engine, and tooling for expressing, testing, and evaluating composable language rules on input strings (Haskell)
Images¶
node.js¶
- peterbraden/node-opencv: OpenCV Bindings for node.js. (Peter Braden via github.com)
- nicolaspanel/numjs: node.js module for scientific computing with JavaScript and basic image processing. (Nicolas Panel via github.com)
Math and data¶
node.js¶
- nicolaspanel/numjs: node.js module for scientific computing with JavaScript and basic image processing. (Nicolas Panel via github.com)
Python¶
- NumPy: the fundamental package for scientific computing with Python (numpy.org)
APIs¶
node.js¶
- google-spreadsheet: “a simple Node.js library to read and manipulate data in Google Spreadsheets”; also see this article on how it can be used
Python¶
- hugovk/whatsonthemenu: Python interface to NYPL’s What’s on The Menu API
- pyNASA (bmtgoncalves.github.io)
Web scraping and parsing¶
node.js¶
- cheeriojs/cheerio: “fast, flexible, and lean implementation of core jQuery designed specifically for the server” (web scraping)
- feedparser: a robust RSS Atom and RDF feed parsing using Isaac Schlueter’s sax parser
Python¶
- Beautiful Soup: a Python library for pulling data out of HTML and XML files
Latest from the blog
Poll: Technical background of creative botmakers
Making online bots: not a rocket science!
Trump bots: Where are they now?
No, not that kind of bots.
Poll: Bot survival rate
It's 2021. Where are your bots now?
Poll: Do you follow the bots you make?
Do botmakers follow their bots?