---
title: "ConvoKit: A Toolkit for the Analysis of — Chang 2020"
description: "General NLP libraries such as NLTK, spaCy and scikit-learn are not designed for dialogue."
authors: ["Jonathan P. Chang", "Caleb Chiam", "Liye Fu", "Andrew Wang", "Justine Zhang", "Cristian Danescu-Niculescu-Mizil"]
year: 2020
venue: "Proceedings of the 21th Annual Meeting of the Special Interest Group on Discourse and Dialogue"
source: "https://aclanthology.org/2020.sigdial-1.8/"
doi: "10.18653/v1/2020.sigdial-1.8"
licence: "CC BY 4.0 (ACL Anthology)"
licence_url: "https://creativecommons.org/licenses/by/4.0/"
summary_licence: "Elamur Cosmic License"
canonical: "https://research.elamur.ai/free/papers/chang-2020-convokit-toolkit-analysis-conversations/"
---
[Elamur Research](https://md.research.elamur.ai/) · [this page in HTML](https://research.elamur.ai/free/papers/chang-2020-convokit-toolkit-analysis-conversations/)

[home](https://md.research.elamur.ai/) / [papers](https://md.research.elamur.ai/free/papers/) / [2020](https://md.research.elamur.ai/free/papers/2020/page/2/) / ConvoKit: A Toolkit for the Analysis of Conversations

# ConvoKit: A Toolkit for the Analysis of Conversations

**Authors:** Jonathan P. Chang, Caleb Chiam, [Liye Fu](https://md.research.elamur.ai/free/authors/liye-fu/), Andrew Wang, [Justine Zhang](https://md.research.elamur.ai/free/authors/justine-zhang/), [Cristian Danescu-Niculescu-Mizil](https://md.research.elamur.ai/free/authors/cristian-danescu-niculescu-mizil/) · **Year:** 2020 · **Venue:** Proceedings of the 21th Annual Meeting of the Special Interest Group on Discourse and Dialogue · **Licence:** [CC BY 4.0 (ACL Anthology)](https://creativecommons.org/licenses/by/4.0/)

**Links:** [Publisher's page](https://aclanthology.org/2020.sigdial-1.8/) · [PDF](https://aclanthology.org/2020.sigdial-1.8.pdf) · [DOI 10.18653/v1/2020.sigdial-1.8](https://doi.org/10.18653/v1/2020.sigdial-1.8) · [OpenAlex](https://openalex.org/W3023742019)

**Citations:** 76 citations (openalex-snapshot · 2026-10-14) · [61](#cited-by) in our library, of the 140673 papers whose bibliographies we read

## Summary
General NLP libraries such as NLTK, spaCy and scikit-learn are not designed for dialogue. Conversational data and code are also scattered across incompatible formats and one-off implementations, which hurts reproducibility. The authors present ConvoKit, an open-source Python package that treats conversations as structured social interactions rather than isolated text fragments. Its design rests on two abstractions. The Corpus is a hierarchy of Conversations, Utterances and Speakers, with reply links and user-defined metadata. The Transformer is a uniform operation that modifies a Corpus and follows the scikit-learn interface. Built-in Transformers handle text cleaning, parsing, feature extraction (politeness, hypergraph structure) and analysis (lexical comparison, classification, forecasting conversation trajectories). The package also ships ready-to-use datasets from very different settings: courtrooms, Wikipedia, Reddit and film scripts. The paper reports no benchmark results. Its contribution is a single shared representation and interface for conversational analysis. This makes such research easier to reproduce and opens it to social scientists who lack deep NLP expertise.

## Key points
- Four core classes (Corpus, Conversation, Utterance, Speaker) carry unique IDs and a free-form `meta` table. Thread structure comes from each Utterance's `reply_to` pointer, which allows tree traversal and browsing of a Speaker's history.
- Transformers expose `fit()` and `transform()` like scikit-learn, plus a `summarize()` method for quick tables or plots. They can be chained in pipelines.
- Built-in Transformers are grouped into three roles:
  - preprocessing: TextCleaner, TextParser;
  - feature extraction: PolitenessStrategies, UserConvoDiversity, HyperConvo;
  - analysis: FightingWords, Classifier, Forecaster.
- Bundled corpora include supreme court transcripts, Wikipedia talk pages, a full Reddit dump and movie dialogs. Guidelines and code are provided for converting other datasets.
- A worked example compares the language of mixed-gender and single-gender movie dialogs with FightingWords. The toolkit is available at convokit.cornell.edu.

*Our summary of the paper, in our own words — not its text. The work belongs to its authors; read it at the links above.*

Fields: [Linguistics & languages](https://md.research.elamur.ai/free/shelves/linguistics/)

## Cited by

Cited by

61 papers of our library cite it (of the 140673 whose bibliographies we read); 4 of them have a page here, 57 not yet.

- [Gender and Politeness Perception: A Novel Approach for Exploring Annotations Disagreement](https://md.research.elamur.ai/free/papers/aljanaideh-2026-gender-politeness-perception-novel-approach/)
- [Facilitating the Communication of Politeness through Fine-Grained Paraphrasing](https://md.research.elamur.ai/free/papers/fu-2020-facilitating-communication-politeness-through-fine/)
- [Disentangling Indirect Answers to Yes-No Questions in Real Conversations](https://md.research.elamur.ai/free/papers/sanagavarapu-2022-disentangling-indirect-answers-yes-no/)
- [Can Large Language Models Transform Computational Social Science?](https://md.research.elamur.ai/free/papers/ziems-2023-large-language-models-transform-computational/)

## Cite

The paper itself, not this page. BibTeX from the library's record of the work.

```bibtex
@inproceedings{chang2020convokit,
  title = {{ConvoKit: A Toolkit for the Analysis of Conversations}},
  author = {Chang, Jonathan P. and Chiam, Caleb and Fu, Liye and Wang, Andrew and Zhang, Justine and Danescu-Niculescu-Mizil, Cristian},
  booktitle = {Proceedings of the 21th Annual Meeting of the Special Interest Group on Discourse and Dialogue},
  year = {2020},
  doi = {10.18653/v1/2020.sigdial-1.8},
  url = {https://doi.org/10.18653/v1/2020.sigdial-1.8}
}
```

- [← previous Conundrums in Entity Coreference Resolution: Making Sense of the State of the Art](https://md.research.elamur.ai/free/papers/lu-2020-conundrums-entity-coreference-resolution-making/)
- [next → Coreference for Discourse Parsing: A Neural Approach](https://md.research.elamur.ai/free/papers/guz-2020-coreference-discourse-parsing-neural-approach/)
- [↑ back to papers of 2020](https://md.research.elamur.ai/free/papers/2020/page/2/)

## References

4 references, 1 of them with a card of ours. ↗ leads to the work, «find» searches for one we have no id for yet.

1. Steven Bird, Edward Loper, and Ewan Klein. 2009. Natural Language Processing with Python. O’Reilly Media Inc. [find](https://scholar.google.com/scholar?q=Steven+Bird%2C+Edward+Loper%2C+and+Ewan+Klein%2E+2009%2E+Natural+Language+Processing+with+Python%2E+O%E2%80%99Reilly+Media+Inc%2E)
2. Jonathan P. Chang and Cristian Danescu-Niculescu-Mizil. 2019. Trouble on the Horizon: Forecasting the Derailment of Online Conversations as they Develop. In Proceedings of EMNLP. [find](https://scholar.google.com/scholar?q=Jonathan+P%2E+Chang+and+Cristian+Danescu%2DNiculescu%2DMizil%2E+2019%2E+Trouble+on+the+Horizon%3A+Forecasting+the+Derailment+of+Online+Conversations+as+they+Develop%2E+In+Proceedings+of+EMNLP%2E)
3. Cristian Danescu-Niculescu-Mizil, Moritz Sudhof, Dan Jurafsky, Jure Leskovec, and Christopher Potts. 2013. A Computational Approach to Politeness with Application to Social Factors. In Proceedings of ACL. [find](https://scholar.google.com/scholar?q=Cristian+Danescu%2DNiculescu%2DMizil%2C+Moritz+Sudhof%2C+Dan+Jurafsky%2C+Jure+Leskovec%2C+and+Christopher+Potts%2E+2013%2E+A+Computational+Approach+to+Politeness+with+Application+to+Social+Factors%2E+In+Proceedings+of+) [our card](https://md.research.elamur.ai/free/papers/mizil-2013-computational-approach-politeness-application-social/)
4. Matthew Honnibal and Ines Montani. 2020. spaCy: Natural Language Understanding with Bloom Embeddings, Convolutional Neural Networks and Incremental Parsing. [find](https://scholar.google.com/scholar?q=Matthew+Honnibal+and+Ines+Montani%2E+2020%2E+spaCy%3A+Natural+Language+Understanding+with+Bloom+Embeddings%2C+Convolutional+Neural+Networks+and+Incremental+Parsing%2E)
