Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ProcessEntropy

A toolkit for calculating sequence entropy rates quickly. Especially useful for cross entropy rates and measuring information flow. Application is aimed at tweets but can be used on text or sequence like data.

This toolkit uses a non-parametric entropy estimation technique which computes the longest match length between sequences to estimate their entropy. This functionality is provided by the LCSFinder package which calculates the longest common substrings with a fixed starting location of one substring. This algorithm employs properties of a sorted suffix array to allow the longest match length to be found in O(1) with O(N) precomputation.

Example Usage

# Load in example tweets dataframe
import pandas as pd
example_tweet_data = pd.read_csv('example_data/example_tweet_data.csv')

from CrossEntropy import pairwise_information_flow

# Calculate information flow between users based on temporal text usage 
pairwise_information_flow(example_tweet_data, text_col = 'tweet', label_col = 'username', time_col = 'created_at')

Requirements

  • Python 3.x with packages:
    • numba
    • nltk (for tokenization)
    • numpy
    • LCSFinder

Dependency on LCSFinder

The package LCSFinder uses a C++ backend. If this is causing issues on your machine, you can install this package without dependencies.

pip install --no-dependencies ProcessEntropy

However, you will need to ensure that the dependences numba, nltk and numpy are included.

The functions which do not depend on LCSFinder can be accessed using the *PythonOnly modules.

For example:

# Load in example tweets dataframe
import pandas as pd
example_tweet_data = pd.read_csv('example_data/example_tweet_data.csv')

from CrossEntropyPythonOnly import pairwise_information_flow

# Calculate information flow between users based on temporal text usage 
pairwise_information_flow(example_tweet_data, text_col = 'tweet', label_col = 'username', time_col = 'created_at')

Note: the PythonOnly variants do not perform identically, and will not pass all of the test cases. This is due to slight differences where empty source/target arrays can contribute non-zero lambda values. This behaviour was removed with the LCSFinder functionality.

Installation

pip install ProcessEntropy

Metadata

Release files for ProcessEntropy 1.1.2.dev0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ProcessEntropy 1.1.2.dev0
File Size Uploaded
ProcessEntropy-1.1.2.dev0.tar.gz 11.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ProcessEntropy 1.1.2.dev0
File Interpreter ABI Platform
ProcessEntropy-1.1.2.dev0-py3-none-any.whl Python 3 none any Details

Total release size: 28.8 kB

Release files / ProcessEntropy-1.1.2.dev0.tar.gz

Download URL ProcessEntropy-1.1.2.dev0.tar.gz
Size 11.3 kB
Tags Source
SHA-256 checksum
How to use checksums
ffa4bfc1356f11148062e68405b96351450a706a4acecd3fc5dffcf5be7acba5
BLAKE2b-256 checksum
How to use checksums
fb0710a7ba3d32e2d7126c5a7dea43f7d059608daeb5814d52dbdb39a3cd018e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.5

Release files / ProcessEntropy-1.1.2.dev0-py3-none-any.whl

Download URL ProcessEntropy-1.1.2.dev0-py3-none-any.whl
Size 17.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8ee896a5947b7a44ec073f1a68d5e990473410841b666fa541587d31076534e
BLAKE2b-256 checksum
How to use checksums
2f323560cb17a32d9809ee7da2857de76e00d913c250964111a61703953c6385
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.5
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page