Skip to main content

Computing schematicity of autobiographical narratives

Project description

Measuring narrative schematicity

tests codecov

Methods from the paper "Computational Tools for Quantifying Schemas in Autobiographical Narratives".

Installation

pip install narsche

narsche depends on networkx (for network models), SpaCy (for tokenization), and wordfreq for automated topic identification. Additionally, one of SpaCy's models must be downloaded for SpaCy-based tokenization:

python -m spacy download en_core_web_sm

Usage

Loading and saving models

A text file of word vectors can be read using the read_vectors() function:

words, vectors = narsche.read_vectors('/path/to/vectors.txt')
vec_mod = narsche.VectorModel(words, vectors)

This produces a vector model. The text file must be formatted such that the first token (space-delimited) on a line is the word for which the remaining tokens are the vector components. This is how, for example, the GloVe embeddings are formatted.

A network model can be created by first downloading the ConceptNet assertions here. They can be read as a networkx.Graph object and used to create a network model:

graph = narsche.read_conceptnet('conceptnet-assertions-5.7.0.csv.gz', gz=True)
net_mod = narsche.NetworkModel(graph)

Models can be saved using the save() method and loaded using the load() class method:

net_mod.save('network.mod')
net_mod = narsche.NetworkModel.load('network.mod')

vec_mod.save('vector.mod')
vec_mod = narsche.VectorModel.load('vector.mod')

These are just wrappers around pickle.[load/dump]. Any extension can be used.

Tokenizing narratives

Before schematicity can be computed, narratives must be tokenized, i.e., converted to a list of tokens. For this, there is a Tokenizer() class that relies on SpaCy:

txt = 'I sat on the sofa in my living room with a lamp' # Example text
tokenizer = narsche.Tokenizer('en_core_web_sm') # Initialize tokenizer
words = tokenizer.tokenize(txt) # Tokenize words
words = vec_mod.keep_known(words) # Use only those words that are in the model

Computing schematicity

Given a model and a set of tokens (and possibly a topic word), schematicity can be computed using the schematicity() function:

topic = narsche.identify_topic(words) # Identify the topic
# Compute schematicity
narsche.schematicity(
	words=words,
	model=vec_mod,
	method='on-topic-ppn', # or topic-relatedness, pairwise-relatedness, or component-size
	topic=topic)

See the documentation of the schematicity() function for kewords required by other methods.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

narsche-0.3.2.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

narsche-0.3.2-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file narsche-0.3.2.tar.gz.

File metadata

  • Download URL: narsche-0.3.2.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for narsche-0.3.2.tar.gz
Algorithm Hash digest
SHA256 ff31d5731ee295046c46d5ca2bbc855bd82020c6a5651cf9e2c0dfd9aa2b5c4a
MD5 c376df9c75e6f28e0618daf9fedaed7a
BLAKE2b-256 d9e2569e5786aea3c7a14b1ec9f779c33d8ff33a6f6e32f7085ee967812f7598

See more details on using hashes here.

File details

Details for the file narsche-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: narsche-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for narsche-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 18fba44deca3863c0210b0aec56ee588d35a0020761d37243d873a07ede8fd9e
MD5 9c3e8027efbd1aa0632ed8744d682f12
BLAKE2b-256 48e9a1bc39e26c887deb3a552e45a18957e0e36b7edb669c8af6c32680920a89

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page