Skip to main content

pysettrie package

Project description

pysettrie

Build Status

https://github.com/GregoryMorse/pysettrie

pysettrie is a python3 package that provides support for efficient storage and querying of sets of sets using the trie data structure, supporting operations like finding all the supersets/subsets of a given set from a collection of sets. The original motivation for this module was to provide efficient search for supersets of sets of feature-value pairs in our natural language parser project (e.g. matching nouns against verb argument positions).

The following classes are included:

  • SetTrie: set-trie container for sets; supports efficient supersets/subsets of a given search set calculations.
  • SetTrieMap: mapping container using sets as keys; supports efficient operations like SetTrie but also stores values associated to the key sets.
  • SetTrieMultiMap: like SetTrieMap, but supports multiple values associated to each key.

For further information, please see documentation

Module test_settrie.py contains unittests for all the containers.

Authors: Gregory Morse and Márton Miháltz https://sites.google.com/site/mmihaltz/

One recommended way to install (tested on Ubuntu): If you don't have pip3:

sudo apt-get install python3-setuptools
sudo easy_install3 pip

pysettrie is partly based on: I.Savnik: Index data structure for fast subset and superset queries. CD-ARES, IFIP LNCS, 2013. http://osebje.famnit.upr.si/~savnik/papers/cdares13.pdf Remarks on paper:

  • Algorithm 1. does not mention to sort children (or do sorted insert) in insert operation (line 5)
  • Algorithm 4. is wrong, will always return false, line 7 should be: "for (each child of node labeled l: word.currentElement <= l) & (while not found) do"
  • the descriptions of getAllSubSets and getAllSuperSets operations are wrong, would not produce all sub/supersets

See also:

Changes:

  • Version 1.0.0:
    • Some bug fixes, complete Cython translation for improved performance.
  • Version 0.1.3:
    • SetTrieMultiMap.assign() returns number of values associated to key after assignment.

Licensed under the GNU LESSER GENERAL PUBLIC LICENSE, Version 3.

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

pysettrie-1.0.1.tar.gz (141.0 kB view details)

Uploaded Source

Built Distribution

pysettrie-1.0.1-cp39-cp39-win_amd64.whl (218.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

File details

Details for the file pysettrie-1.0.1.tar.gz.

File metadata

  • Download URL: pysettrie-1.0.1.tar.gz
  • Upload date:
  • Size: 141.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.13

File hashes

Hashes for pysettrie-1.0.1.tar.gz
Algorithm Hash digest
SHA256 65398ea065a817d15c7a13214c3594d861b8f46abdcbb8430662e162acead2f7
MD5 1750960e02b58d5204b8e56bbb814af1
BLAKE2b-256 0cdd25579f3567f1302b5a0e9b11a7934e946a1b5cb44efa6e800a220bc22659

See more details on using hashes here.

File details

Details for the file pysettrie-1.0.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pysettrie-1.0.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 218.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.13

File hashes

Hashes for pysettrie-1.0.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 134a30e6fb495ecda88a0b69b014d65395c8e33852b2a447c20de3fadfe505c1
MD5 1af7a5bbe30f833438ec88e6670765ff
BLAKE2b-256 d74bae536e7b3c0a2ef5fb101a3fb9c6e823681b6361cdaea27d4632e6d7a6fa

See more details on using hashes here.

Supported by

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