text-analysis / main.py
Daryl Fung
fix bar plot
e69b90c
raw
history blame
No virus
4.47 kB
from keybert import KeyBERT
import spacy
import string
from spacy import displacy
from pathlib import Path
from keyword_extraction import keyword_extract
from keyphrase_extraction import get_top_key_phrases, display_key_phrases
from word import show_gram_plot
nlp = spacy.load("en_core_web_sm")
doc = """
CIHI
Database that collects, administrative, clinical and demographic information on hospital discharges (including deaths, sign-outs and transfers). Some provinces and territories also use the DAD to capture day surgery.
Alberta
The discharge abstract database is a database for information on all AHS separations for acute care institutions, including discharges, deaths, sign-outs and transfers.
British Columbia
Data on discharges, transfers and deaths of in-patients and day surgery patients from acute care hospitals in BC. All Canadian hospitals (except those in Quebec) submit their separations records directly to the Canadian Institute of Health information (CIHI) for inclusion in the Discharge Abstract Database (DAD). The database contains demographic, administrative and clinical data for hospital discharges (inpatient acute, chronic, rehabilitation) and day surgeries. A provincial data set, including various CIHI value-added elements (such as case mix groups, and resource intensity weights) is released on a monthly basis to the respective Ministries of Health. The DAD data files which Population Data BC receives include the CIHI variables. Population Data BC receives these data once per year.
Manitoba
Health data maintained by Manitoba Health consisting of hospital forms/computerized records containing summaries of demographic and clinical information (e.g., gender, postal code, diagnoses and procedure codes) completed at the point of discharge from the hospital. Several hundred thousand abstracts per year are submitted for all separations from acute and chronic care facilities in Manitoba and for all Manitobans admitted to out-of-province facilities. The Hospital Abstracts Data includes records of both Manitoba residents and non-Manitoba residents hospitalized in Manitoba facilities and information about inpatient and day surgery services.
New Brunswick
Patient discharge information from New Brunswick hospitals. Captures administrative, clinical and demographic information including discharges, deaths, sign-outs, and transfers.
Newfoundland and Labrador
The Provincial Discharge Abstract Database (PDAD) is the NLCHI dataset that contains demographic, clinical and administrative data collected at hospitals when patients are discharged from inpatient and surgical day care services and submitted to the CIHI Discharge Abstract Database. The PDAD captures information regarding hospitalizations of both residents of NL and non-residents receiving care in NL.
Nova Scotia
Contains information on each hospital admission recorded in a Nova Scotia hospital
Ontario
The Discharge Abstract Database is a database for information on all separation from acute care institutions within a fiscal year (April 1st to March 31st). Data is received directly from acute care facilities or from their respective health/regional authority or ministry/department of health.
Saskatchewan
Captures administrative, clinical and demographic information on discharges for acute care facilities (including deaths, sign-outs and transfers).
"""
doc = doc.translate(str.maketrans('', '', string.punctuation))
# run word count
show_gram_plot(doc, 1, 10, save_output=f'results/DAD/{1}_gram.png')
show_gram_plot(doc, 2, 10, save_output=f'results/DAD/{2}_gram.png')
show_gram_plot(doc, 3, 10, save_output=f'results/DAD/{3}_gram.png')
# run named entity recognition
spacy_doc = nlp(doc)
# Create a visualization of named entities
svg = displacy.render(spacy_doc, style="ent", jupyter=False, page=True)
filename = Path('results/DAD/ner.html')
filename.open('w', encoding='utf-8').write(svg)
# run keyword extraction
kw_model = KeyBERT()
keyword_extract(doc, kw_model, 1, save_output=f'results/DAD/{1}_keyword.png')
# keyword_extract(doc, kw_model, 2, save_output=f'results/DAD/{2}_keyword.png')
# keyword_extract(doc, kw_model, 3, save_output=f'results/DAD/{3}_keyword.png')
keywords = kw_model.extract_keywords(doc, highlight=True)
print(keywords)
# run key phrase extraction
get_top_key_phrases(doc, 10, save_output=f'results/DAD/top_keyphrase.png')
display_key_phrases(doc, save_output='results/DAD/key_phrase.html')