Skip to main content

Entropy Rank keyphrase extractor

Project description

EntropyBasedKeyPhraseExtraction

This is the official implementation of the EntropyRank key phrase extractor from https://openreview.net/forum?id=WCTtOfIhsJ. Please cite the paper and star this repo if you find EntropyRank useful! Thanks!

@inproceedings{
tsvetkov2023entropyrank,
title={EntropyRank: Unsupervised Keyphrase Extraction via Side-Information Optimization for Language Model-based Text Compression},
author={Alexander Tsvetkov and Alon Kipnis},
booktitle={ICML 2023 Workshop Neural Compression: From Information Theory to Applications},
year={2023},
url={https://openreview.net/forum?id=WCTtOfIhsJ}
}

Installation

To install directly:

pip install entropyrank

To install from repository, from src/entropyrank run:

pip install -r requirements.txt

You also need to download the 'en_core_web_sm' model for spaCy, which can be done by running:

spacy download en_core_web_sm

Usage

To use the package, import EntropyRank from the module and create an instance of it:

from entropyrank import EntropyRank

extractor = EntropyRank()

Then, you can extract key phrases from a given text using the extract_key_phrases method:

phrases = extractor.extract_key_phrases(
    text=text,
    number_of_key_phrases=3,
)

The parameters of the extract_key_phrases method are:

  • text: the input text to extract key phrases from.
  • number_of_key_phrases: the number of key phrases to extract.
  • exclude_start_words_count: the number of words to exclude from the start of each key phrase when calculating its entropy.
  • partition_method: can be STOP_WORDS or NOUN_PHRASES, decides how to partition the candidates.
  • ranking_method: can be FIRST_WORD_ENTROPY or SUM_ENTROPY, whether to use the sum of entropy of the phrase or just the entropy of the first word
  • normalize_by_word_statistics: a boolean indicating whether we want to normalize the entropy values by entropy statistics of word position.
  • remove_personal_names: a boolean indicating whether to remove personal names from the evaluations or not.

Evaluation Demo

You can run the evaluation_demo notebook included in this repository under src/eval to get the benchmark results on common key phrase extraction tasks reported in the paper. Make sure to run pip install -r evaluation-requirements.txt beforehand

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

entropyrank-1.0.1.tar.gz (58.1 kB view details)

Uploaded Source

Built Distribution

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

entropyrank-1.0.1-py3-none-any.whl (40.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: entropyrank-1.0.1.tar.gz
  • Upload date:
  • Size: 58.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for entropyrank-1.0.1.tar.gz
Algorithm Hash digest
SHA256 0bc810e7a3195593bcc45d24e9b64f96639763775712ee385e25e548a867398f
MD5 f1ad9e6e581fb785e6a57b28c97b6769
BLAKE2b-256 76573517171d5397d9336d92598fbec03356f7017c8bbc1252c940970a39d48a

See more details on using hashes here.

File details

Details for the file entropyrank-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: entropyrank-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 40.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for entropyrank-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b9d70f7c24674efd4a802a09566e2c580cca2b67270d0bd5849d65daa06f7c8b
MD5 6e05bd09081702b601bc4671a8276c6a
BLAKE2b-256 d39a878def95fb0f1d523f12ed5c3b17fdf24912d7ec16efb6f57f7e51cc89cc

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