PsychiatryNLPKit.analysis.structural_graph
- PsychiatryNLPKit.analysis.structural_graph(content_words, directed=True, weighted=True, sections=None, n_random_graphs=1000)[source]
Constructs a structural graph from lemmatized content words per section and immediately computes all network metrics.
- Notes:
Theoretical basis - Graphs from schizophrenia patients show fewer nodes and edges, higher average weighted degrees, and smaller connected components. Structural graphs also exhibit more random-like organization (lower z-scores for largest connected component and average shortest path length relative to Erdos-Renyi null models) (Nikzad et al., 2022).
- Args:
- content_words: Dict mapping section names to lists of lemmatized content
words.
- directed: Whether the constructed graph is directed (word transitions).
Defaults to
True.- weighted: Whether to assign edge weights based on repetition count. Edge
weight equals consecutive occurrence count; distance = 1/weight for path calculations.
- sections: Sections to process.
Noneprocesses all sections in content_words.
- n_random_graphs: Number of random graphs to generate for z-score
computation. Defaults to 1000. Performance note: this incurs a non negligible runtime cost. For each section,
n_random_graphsrandom graphs are generated and analyzed. With N sections, total cost is O(N * n_random_graphs). For large datasets, consider reducing this parameter or pre-computing null distributions for common node/edge counts.
- Returns:
Dict mapping section names to a metric dict with keys: nodes_count, edges_count, average_degree, density, diameter, average_shortest_path_length, largest_connected_component, largest_strongly_connected_component, lcc/n, lsc/n, edge_weight_repetition_index, lcc_z_score, lsc_z_score, aspl_z_score, degree_distribution_z_score. Metrics
lcc_z_scoreandaspl_z_scorefollow Nikzad et al. (2022); the remaining network-size, connectivity, and degree-distribution metrics are extensions beyond the original paper. Sections with no content words keepnodes_countandedges_countat0.0and receivefloat("nan")for every derived metric; z-scores are alsofloat("nan")when the null distribution has no variance.- References:
Nikzad, A. H., Cong, Y., Berretta, S., Hänsel, K., Cho, S., Pradhan, S., Behbehani, L., DeSouza, D. D., Liberman, M. Y., & Tang, S. X. (2022). Who does what to whom? graph representations of action-predication in speech relate to psychopathological dimensions of psychosis. Schizophrenia, 8(1), 58. https://doi.org/10.1038/s41537-022-00263-7