Skip to main content

Python package to obtain Shakespeare script and monologue

Project description

py_shakespeare

py_shakespeare is a Python package to obtain Shakespeare script and monologue.

Installation

$ pip install py_shakespeare

Usage

Classes

shake_play

shake_play(min_num_character=20, play_complexity, play_length)

Base class to obtain the list of Shakespeare play based on minimum number of character, length of the play, and complexity of the play. This class will obtain data from DraCor API and merge the data to genre of Shakespeare play that was obtained by scraping "www.opensourceshakespeare.org" website.

shake_monologue

shake_monologue(gender='ALL', min_line=30, include_all=True, play_list)

Base class to obtain a list of monologues from Shakespeare plays based on gender of the monologues speaker, minimum line of monologue, and list of plays which monologues want to be obtained. This class will obtain data from both DraCor and The Folger Shakespeare API to help user choose monologue based on several inputs.

How to use

Import all classes

>>> from py_shakespeare import py_shakespeare

shake_play

  • Initialize shake play based on minimum number of character, play complexity (optional), and play length (optional)

    >>> pl = py_shakespeare.shake_play(min_num_character=30, play_complexity = "Medium", play_length = "Medium")
    
  • Get the summarized table.

    >>> pl.get_summary()
    

    This function returned a table with following variables: * title: title of the play * popularity: relative popularity (from the number of Wikipedia links referring to this play) to other plays with similar minimum number of character * genre: genre of the play (based on Open Source Shakespeare website) * num_character: number of character/cast in this play * play_length: relative length of the play to other plays with similar minimum number of character. Obtained by using number of words variable divided by rate of speech in a drama (170 words per minute) * play_complexity: relative complexity of the play to other plays with similar minimum number of character. Obtained by using average degree of dialogue between each character in the play

  • Get detailed table

    >>> pl.get_complete()
    

    This function returned a table with same variables of summary table plus below variables: * num_male_character: number of male character/cast in this play * num_female_character: number of female character/cast in this play * num_unknown_character: number of unknown gender character/cast in this play * num_scene: number of scene/segment in this play * play_length_hr: length of the play in hours. Obtained by using number of words variable divided by rate of speech in a drama (170 words per minute)

  • Download selected script in xml format. The file will be downloaded to the device.

    >>> pl.get_script(row = 2)
    

shake_monologue

  • Initialize a table of monologues from Shakespeare plays based on gender of character, minimum line, and list of plays. WARNING: if choose include_all = True the run time for the function will be quite long

    >>> ml = py_shakespeare.shake_monologue(gender = "ALL", min_line = 40, include_all = False, play_list = ["Rom", "Ham"])
    
  • Get the summarized table

    >>> ml.get_summary()
    

    This function returned a table with following variables: * play: title of the play * name: name of the character * gender: gender of the character * degree: how many other characters this character interacted with * monologue_link: Link to the monologue * line_num: number of lines of the monologue

  • Get the complexity score of the monologue. Complexity score is calculated using Flesch Kincaid Grade readibility score.

    >>> ml.get_complexity()
    

    This function returned a summary table with 2 additional variables: * complexity_score: Flesch Kincaid Grade readibility score * complexity_category: Complexity category based on the readibility score

  • Download selected monologue script in txt format. The file will be downloaded to the device.

    >>> ml.get_script(row = 2)
    
  • Folger ID as input of play_list. If include_all = False, an array of play_list should be passed in the function parameter. Below is the list of Folger ID:

    Folger ID Play
    AWW All’s Well That Ends Well
    Ant Antony and Cleopatra
    AYL As You Like It
    Err The Comedy of Errors
    Cor Coriolanus
    Cym Cymbeline
    Ham Hamlet
    1H4 Henry IV, Part 1
    2H4 Henry IV, Part 2
    H5 Henry V
    1H6 Henry VI, Part 1
    2H6 Henry VI, Part 2
    3H6 Henry VI, Part 3
    H8 Henry VIII
    JC Julius Caesar
    Jn King John
    Lr King Lear
    LLL Love’s Labor’s Lost
    Mac Macbeth
    MM Measure for Measure
    MV The Merchant of Venice
    Wiv The Merry Wives of Windsor
    MND A Midsummer Night’s Dream
    Ado Much Ado About Nothing
    Oth Othello
    Per Pericles
    R2 Richard II
    R3 Richard III
    Rom Romeo and Juliet
    Shr The Taming of the Shrew
    Tmp The Tempest
    Tim Timon of Athens
    Tit Titus Andronicus
    Tro Troilus and Cressida
    TN Twelfth Night
    TGV Two Gentlemen of Verona
    TNK Two Noble Kinsmen
    WT The Winter’s Tale

Contributing

Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

py_shakespeare was created by Hamidah Alatas. It is licensed under the terms of the MIT license.

Credits

py_shakespeare was created with cookiecutter and the py-pkgs-cookiecutter template.

py_shakespeare used DraCor API. Fischer, Frank, et al. (2019). Programmable Corpora: Introducing DraCor, an Infrastructure for the Research on European Drama. In Proceedings of DH2019: "Complexities", Utrecht University, doi:10.5281/zenodo.4284002.

py_shakespeare used The Folger Shakespeare API. Folger Shakespeare Library. (n.d.) Shakespeare’s Plays, Sonnets and Poems from The Folger Shakespeare API. Retrieved from https://shakespeare.folger.edu

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

py_shakespeare-0.1.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

py_shakespeare-0.1.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file py_shakespeare-0.1.0.tar.gz.

File metadata

  • Download URL: py_shakespeare-0.1.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.10 CPython/3.8.3 Darwin/20.6.0

File hashes

Hashes for py_shakespeare-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2c1a54da7c3b0b335079bbc0a1570a2436ddee464798e3448af9fb3e362911e2
MD5 9539582810f95b6404de097c899bbdd0
BLAKE2b-256 e255ab03a58064f3fe5fcb7259af748bfc1fccd8426ef3db5b6a8f06ade3891f

See more details on using hashes here.

File details

Details for the file py_shakespeare-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: py_shakespeare-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.10 CPython/3.8.3 Darwin/20.6.0

File hashes

Hashes for py_shakespeare-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 854d68f8b64aa0b648b5189bdb9c138f50665f38f90a7e7c21e489f8cce1a860
MD5 8d39ab0cc6e5202907fe15f682b4f426
BLAKE2b-256 f47a42f11a38a177e8fb3abc764e8413e9eb936a6e8544574eeeec6ecc7c8391

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