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.3.tar.gz (50.7 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.3-py3-none-any.whl (40.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: entropyrank-1.0.3.tar.gz
  • Upload date:
  • Size: 50.7 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.3.tar.gz
Algorithm Hash digest
SHA256 e3ce0da8d3fef36e1ce849f681a447dca6cb9e0e75e1aca81a1ea56c42262cde
MD5 7d4e88eeb013cec50e9fada5d8e32a24
BLAKE2b-256 01398c941b1db2bbacb8e67463dfc24664596246b0b3e5a1b05f96bb320bf007

See more details on using hashes here.

File details

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

File metadata

  • Download URL: entropyrank-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 40.9 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a7ca9497be3028e6902ffbf73a60f474da1fbfe4699a5616587b1597afc9b3c5
MD5 5682da0311923c16c8e9335bf6755ea6
BLAKE2b-256 bb0a0d72593a0ffafb50107e3a1672228116460915d6bf9604492cf76f34c682

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