"""
Contains functions for keyword extraction
"""
from rake_nltk import Rake
import string
[docs]def keyphrase_list(text,
                   language = 'english',
                   stopwords = [],
                   min_phrase_len=1,
                   max_phrase_len=2,
                   with_scores = True):
    """Extract keywords from a piece of text
    Parameters
    ----------
    text : :obj:`str`
        text string from which to extract keywords
    language : :obj:`str`
        language of text, must work with nltk
    stopwords : :obj:`list`
       list of stopwords to consider when extracting keywords
    min_phrase_len : :obj:`int`
        minimum token length key phrase can be
    max_phrase_len : :obj:`int`
        maximum token length key phrase can be
    with_scores : :obj:`bool`
        whether to return phrases with score or not, default is True
    Returns
    -------
        r : :obj:`list`
            List of keyphrases
    """
    # Create rake object
    r = Rake(language = language,
             stopwords = stopwords,
             punctuations = string.punctuation,
             min_length = min_phrase_len,
             max_length = max_phrase_len
             )
    r.extract_keywords_from_text(text)
    if with_scores:
        return r.rank_list
    else:
        return r.ranked_phrases