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

Uploaded Python 3

File details

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

File metadata

  • Download URL: entropyrank-1.0.2.tar.gz
  • Upload date:
  • Size: 58.4 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.2.tar.gz
Algorithm Hash digest
SHA256 e2b49f38b112dd2a132c6d0636ead01020932db9b9ad6326574cfb420cfcfc04
MD5 9a4a233a6360e05147c799f4b001b178
BLAKE2b-256 d4ccba77304c452e3fd7f1a6ad4dfb75d241913f99288adbf5c719756ae34cbd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: entropyrank-1.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 20a0c1974e7e56fe375ab14e0abaf8a61cd14c29a6892adf99843b3480c32daa
MD5 e16e17b956a0aebd08fa0c4ee3251924
BLAKE2b-256 46e100ee0531857758e000ab85c89fa2f734450012138c151b311ec95ba6e259

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