A python package for extracting electronic health transcripts , and then classifying them based on human annotated data.
Project description
pytranscripts
An Open source👨🔧 Python Library for Automated classification of Electronic Medical records
Installation
To install the latest version , simply use
pip install -U pytranscripts
Pipeline Summary
Stages
- Data Extraction
- Target Identification
- Finetuning Annotated Data on Pretrained models (Bert & Electra)
- Extracting Interviwer/Interviewee records from the specified docx file storage
- Metrics Evaluation (Accuracy & Cohen Kappa Score)
- Reordering records as a neatly arranged and flagged spreadsheet, alongside metrics and reports from pretrained models.
Example Usage
Mount Google Drive (Optional)
If using Google Drive as the data source:
from google.colab import drive
drive.mount('/content/drive')
Automate Data Export
To export and combine all .docx files from a folder into a single file:
from pytranscripts import export_docx_from_folder
# Define input and output paths
INPUT_FOLDER = "/content/drive/MyDrive/Your/Path/To/Dataset/"
OUTPUT_FILE = "output.csv"
# Define labels for structured data
LABELS = [
'Value equation',
'Credentialing / Quality Assurance Infrastructure',
'Financial Impact',
'Health System Characteristics',
'Clinical utility & efficiency - Provider perspective',
'Workflow related problems',
'Provider Characteristics',
'Training',
'Patient/Physician interaction in LUS',
'Imaging modalities in general',
]
# Export data
export_docx_from_folder(
input_directory=INPUT_FOLDER,
output_file=OUTPUT_FILE,
labels=LABELS
)
This will:
- Read all .docx files from INPUT_FOLDER.
- Combine their content into a single file.
- Apply the defined labels to create a structured dataset.
Requirements
Python 3.6 or later GPU access recommended for optimal performance (if using Jupyter Notebook). pytranscripts version 1.2.4 or higher.
Model Training
Now , the detailed class shows how to properly use our transcript trainer in making training and inference easy based on your document
from pytranscripts import TranscriptTrainer
trainer = TranscriptTrainer(
input_file='/content/drive/MyDrive/Kalu+Deola/OLD NLP/CompletedMerged.xlsx', # Path to the CSV / XLSX file containing the tagged documents. This is the main data source for training and evaluation.
destination_path='/content/', # Directory where all the training results, models, and logs will be saved. , We are using colab path to make things seamless
text_column='full_quote', # Specifies the column name in the CSV file that contains the text data to be used for training.
test_size=0.2, # Determines the fraction of the data that will be used for testing the model, instead of training it. Here, 20% of data will be used for testing.
max_length=512, #The maximum number of tokens to include in each input sequence, this helps in managing memory and computational resources. Sequences longer than this will be truncated.
num_train_epochs=1, # The number of times the model will iterate over the entire training dataset during training. More epochs will mean more training.
learning_rate_distilbert=2e-5, # Learning rate for the DistilBERT model. This controls the step size during model optimization, lower values mean smaller updates to the model.
learning_rate_electra=3e-5, # Learning rate for the Electra model. This controls the step size during model optimization, lower values mean smaller updates to the model.
labels=[ # A list of labels used for the multi-label classification task. Each label corresponds to a category the model will try to identify in the text.
'Value equation',
'Credentialing / Quality Assurance Infrastructure',
'Financial Impact',
'Health System Characteristics',
'Clinical utility & efficiency-Provider perspective',
'Workflow related problems',
'Provider Characteristics',
'Training',
'Patient/Physician interaction in LUS',
'Imaging modalities in general'
], # PLEASE MAKE SURE THAT THE LIST YOU ARE GOING TO BE USING HERE MATCHES THE ONE IN YOUR INPUT FILE
upper_lower_mapping = { # Dictionary for mapping high level categories to lower level categories
"multi_level_org_char": [ #High level category name
"Provider Characteristics", #lower level category names
"Health System Characteristics" #lower level category names
],
"multi_level_org_perspect": [ #High level category name
"Imaging modalities in general", #lower level category names
'Value equation', #lower level category names
"Clinical utility & efficiency-Provider perspective", #lower level category names
"Patient/Physician interaction in LUS", #lower level category names
'Workflow related problems' #lower level category names
],
"impl_sust_infra": [ #High level category name
"Training", #lower level category names
'Credentialing / Quality Assurance Infrastructure', #lower level category names
"Financial Impact" #lower level category names
]
}
)
Contributing
We welcome contributions! Please follow the contributing guidelines.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pytranscripts-1.2.10.tar.gz.
File metadata
- Download URL: pytranscripts-1.2.10.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27eea21efa684e1fb92db8095b9e63814cd20e55f30f11cc137da0a4251cbb89
|
|
| MD5 |
efaca6aa51c422e3210ad9b0eefdcfeb
|
|
| BLAKE2b-256 |
7e0ddaca287de41b2b91a50a0fd5d623aed5f9cba9da9c33b862c3cafbf53786
|
File details
Details for the file pytranscripts-1.2.10-py3-none-any.whl.
File metadata
- Download URL: pytranscripts-1.2.10-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67b484dfe23ed3fc87ada2de3f8758efc9a1346dec1c7d2a84a7a23920b5bcd7
|
|
| MD5 |
95aa34931d767fa8736625fccb16b1c0
|
|
| BLAKE2b-256 |
63f810794a5f5f350f4c286328512c222621d9041b826617d5facb3c67129bf4
|