Textnets: text analysis with networks

Travis-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 Senate impeachment trial (source).

This is a Python implementation of Chris Bail’s textnets package for R. It is free software under the terms of the GNU General Public License v3.

The idea underlying textnets is 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.


textnets builds on the state-of-the-art library spacy 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 pandas and other parts of Python’s excellent scientific stack. That means that you can use textnets in Jupyter notebooks to analyze and visualize your data!

textnets is easily installable using the conda and pip package managers.

Read the documentation to find out 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},