Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Textnets: text analysis with networks

Launch on Binder CI status Documentation Status Install with conda Published in Journal of Open Source Software

textnets represents collections of texts as networks of documents and words. This provides novel possibilities for the visualization and analysis of texts.

Bipartite network graph

Network of U.S. Senators and words used in their official statements following the acquittal vote in the 2020 Senate impeachment trial (source).

The ideas underlying textnets are presented in this paper:

Christopher A. Bail, "Combining natural language processing and network analysis to examine how advocacy organizations stimulate conversation on social media," Proceedings of the National Academy of Sciences of the United States of America 113, no. 42 (2016), 11823–11828, doi:10.1073/pnas.1607151113.

Initially begun as a Python implementation of Chris Bail's textnets package for R, textnets now comprises several unique features for term extraction and weighing, visualization, and analysis.

textnets is free software under the terms of the GNU General Public License v3.


textnets builds on spaCy, a state-of-the-art library for natural-language processing, and igraph for network analysis. It uses the Leiden algorithm for community detection, which is able to perform community detection on the bipartite (word–group) network.

textnets seamlessly integrates with Python's excellent scientific stack. That means that you can use textnets to analyze and visualize your data in Jupyter notebooks!

textnets is easily installable using the conda and pip package managers. It requires Python 3.8 or higher.

Read the documentation to learn more about the package's features.


Using textnets in a scholarly publication? Please cite this paper:

  author   = {John D. Boy},
  title    = {textnets},
  subtitle = {A {P}ython Package for Text Analysis with Networks},
  journal  = {Journal of Open Source Software},
  volume   = {5},
  number   = {54},
  pages    = {2594},
  year     = {2020},
  doi      = {10.21105/joss.02594},

Learn More

Issues & Ideas
DOI 10.21105/joss.02594
Archive 10.5281/zenodo.3866676
textnets logo