From c602aaa88d66676e55d532125f23f42fe37845b3 Mon Sep 17 00:00:00 2001 From: nverma42 Date: Sat, 12 Oct 2024 15:01:42 -0400 Subject: [PATCH 01/61] Add files via upload Additional ideas --- ChatBot.py | 230 +++++++++++++++++++++++++++------------------------- ChatBot2.py | 112 +++++++++++++++++++++++++ ChatBot3.py | 62 ++++++++++++++ 3 files changed, 293 insertions(+), 111 deletions(-) create mode 100644 ChatBot2.py create mode 100644 ChatBot3.py diff --git a/ChatBot.py b/ChatBot.py index 965ac29..a1c9726 100644 --- a/ChatBot.py +++ b/ChatBot.py @@ -1,129 +1,137 @@ +from multiprocessing import context import torch import torch.nn as nn import pandas as pd -from transformers import GPT2Tokenizer +from transformers import BertTokenizer from torch.utils.data import Dataset, DataLoader import torch.optim as optim +import re -# The dataset must have context and response columns in CSV format. -class TextDataSet(Dataset): - def __init__(self, file_path, tokenizer, max_length=128): - self.data = pd.read_csv(file_path) - self.tokenizer = tokenizer - self.max_length = 128 - - def __len__(self): - return len(self.data) - - def __getitem__(self, index): - context = self.data.iloc[index][0] - response = self.data.iloc[index][1] - - # Tokenize - context_encoding = self.tokenizer(context, - truncation=True, # Truncate sequence if it is bigger than max length - padding='max_length', # Ensure text sequence is padded to max length - max_length=self.max_length, # Text max length in number of words - return_tensors='pt') # Set the format of the return tensors is pytorch - - response_encoding = self.tokenizer(response, - truncation=True, # Truncate sequence if it is bigger than max length - padding='max_length', # Ensure text sequence is padded to max length - max_length=self.max_length, # Text max length in number of words - return_tensors='pt') # Set the format of the return tensors is pytorch - - input_ids = context_encoding['input_ids'].squeeze() - attention_mask = context_encoding['attention_mask'].squeeze() - labels = response_encoding['input_ids'].squeeze() - - return {'input_ids': input_ids, 'labels':labels} +# To Do: +# 1. Make a simple model work. +# 2. Think about how would we generate vocabulary. +# 3. Add positional encoding. class TransformerModel(nn.Module): - # v_size - Vocabulary size needed for defining embedding for words - # d_model - Size of the word vector - # n_heads - The number of attention heads - # num_layers - The number of layers in encoders and decoders - # max_seq_length - Maximum sequence length - def __init__(self, v_size, d_model, n_heads, num_layers, max_seq_length): + def __init__(self, max_seq_len, input_dim, output_dim, hidden_dim, n_layers, n_heads, dropout): super(TransformerModel, self).__init__() - self.embedding = nn.Embedding(v_size, d_model) - - # Learnable positional encoding. Weights are initialized to zeros. - self.positional_encoding = nn.Parameter(torch.zeros(1, max_seq_length, d_model)) - - # Define the transformer model - self.transformer = nn.Transformer(d_model, n_heads, num_layers, num_layers) - - # Project each word of size d_model to the vocabulary space - self.fc_out = nn.Linear(d_model, v_size) - - def forward(self, source, target): - # Combine the embedding as well as positional encoding to create more meaningful embedding - src = self.embedding(source) + self.positional_encoding[:, source.size(1)] - tgt = self.embedding(target) + self.positional_encoding[:, target.size(1)] - - output = self.transformer(src, tgt) - - # Apply linear layer independently to each token in the output and project it to the vocabulary space - return (self.fc_out(output)) + self.encoder = nn.Embedding(input_dim, hidden_dim) + self.input_positional_embeddings = nn.Parameter(torch.zeros(1, max_seq_len, hidden_dim)) + self.decoder = nn.Embedding(output_dim, hidden_dim) + self.output_positional_embeddings = nn.Parameter(torch.zeros(1, max_seq_len, hidden_dim)) + self.transformer = nn.Transformer(hidden_dim, n_heads, n_layers, n_layers, dropout=dropout) + self.fc_out = nn.Linear(hidden_dim, output_dim) + self.dropout = nn.Dropout(dropout) -def train(model, data_loader, epochs, v_size, lr): - optimizer = optim.Adam(model.parameters(), lr) - criterion = nn.CrossEntropyLoss() - - for epoch in range(epochs): - model.train() - try: - for batch in data_loader: - # Reset all the gradients for the current iteration - optimizer.zero_grad() - - src = batch['input_ids'] - tgt = batch['labels'] - - output = model(src, tgt) - loss = criterion(output.view(-1, v_size), tgt.view(-1)) - - loss.backward() - - # Update the weights - optimizer.step() - except Exception as e: - print(e) - - - -def generate_text(model, tokenizer, start_text, max_seq_length): - model.eval() - input_ids = torch.tensor(tokenizer.tokenize(start_text)).unsqueeze(0) - output_ids = input_ids + def forward(self, src, trg): + input_seq_len = src.size(1) + src = self.encoder(src) + self.input_positional_embeddings[:, :input_seq_len, :] + output_seq_len = trg.size(1) + trg = self.decoder(trg) + self.output_positional_embeddings[:, :output_seq_len, :] + output = self.transformer(src, trg) + output = self.fc_out(output) + return output + + +# Text normalization +def tokenize_text(text): + # Remove punctuation + text = re.sub(r'[^\w\s]', '', text) - output_text = "" - with torch.no_grad(): - for _ in max_seq_length: - output = model(input_ids, output_ids) - predicted_id = output[0, -1].argmax().item() - # Convert the predicted index to a word in the vocabulary - predicted_word = tokenizer.decode([predicted_id]) - output_text = output_text + " " + predicted_word + # Tokenize + tokens = text.split(' ') + return tokens + +# Main driver + +# Generate vocabulary +df = pd.read_csv('./test - Copy.csv') +contexts = [] +responses = [] +for index, row in df.iterrows(): + contexts.append(row['Context']) + responses.append(row['Response']) + +# Normalize text and add to the vocabulary +vocab = dict() +word_decoder = dict() +input_tokens = [] +output_tokens = [] +code = 1 +for i in range(len(df)): + tokens = tokenize_text(contexts[i]) + input_tokens.append(tokens) + for token in tokens: + if (token not in vocab): + vocab[token] = code + word_decoder[code] = token + code += 1 + + tokens = tokenize_text(responses[i]) + output_tokens.append(tokens) + for token in tokens: + if (token not in vocab): + vocab[token] = code + word_decoder[code] = token + code += 1 + +# Add the out of vocabulary word +vocab['OOV'] = code +word_decoder[code] = 'OOV' + +# Set various parameters +max_seq_len = 16 +input_dim = len(vocab) # Vocabulary size for input +output_dim = len(vocab) # Vocabulary size for output +hidden_dim = 512 +n_layers = 6 +n_heads = 8 +dropout = 0.1 + +# Tokenize and convert to tensor +encoded_input_tokens = [] # Example tokenized input +for tokens in input_tokens: + encoded_tokens = [vocab[token] for token in tokens] + encoded_tokens = encoded_tokens + (max_seq_len - len(encoded_tokens)) * [0] + encoded_input_tokens.append(encoded_tokens) + +encoded_output_tokens = [] # Example tokenized output +for tokens in output_tokens: + encoded_tokens = [vocab[token] for token in tokens] + encoded_tokens = encoded_tokens + (max_seq_len - len(encoded_tokens)) * [0] + encoded_output_tokens.append(encoded_tokens) - return output_text - -# Main Flow -tokenizer = GPT2Tokenizer.from_pretrained("gpt2") -tokenizer.pad_token = tokenizer.eos_token +input_tensor = torch.tensor(encoded_input_tokens) +output_tensor = torch.tensor(encoded_output_tokens) -train_ds = TextDataSet("./test.csv", tokenizer) +model = TransformerModel(max_seq_len, input_dim, output_dim, hidden_dim, n_layers, n_heads, dropout) +optimizer = optim.Adam(model.parameters(), lr=0.01) +criterion = nn.CrossEntropyLoss(ignore_index=0) -# Define data loaders to visualize the data -train_dl = DataLoader(dataset=train_ds, batch_size=4, shuffle=True, drop_last=True) +# Training loop +num_epochs = 5 +for epoch in range(num_epochs): + model.train() + optimizer.zero_grad() + output = model(input_tensor, output_tensor) + loss = criterion(output.view(-1, output_dim), output_tensor.view(-1)) + loss.backward() + optimizer.step() -# Initialize the model -model = TransformerModel(v_size=tokenizer.vocab_size, d_model=512, n_heads=8, num_layers=6, max_seq_length=128) + if (epoch + 1) % 10 == 0: + print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}') -# Train the model -train(model, train_dl, 5, tokenizer.vocab_size, 0.01) +# Evaluate +model.eval() +input_tensor = torch.tensor([encoded_input_tokens[2]]) +print('Context: ' + str(input_tokens[2])) +generated_tokens = input_tensor.clone() -# Generate text +output = [] +with torch.no_grad(): + logits = model(input_tensor, generated_tokens) + predicted_tokens = torch.argmax(logits, dim=-1) + output = predicted_tokens.numpy()[0] - \ No newline at end of file +decoded_text = [word_decoder[code] for code in output] +print('Response: ' + str(decoded_text)) \ No newline at end of file diff --git a/ChatBot2.py b/ChatBot2.py new file mode 100644 index 0000000..61ffa9f --- /dev/null +++ b/ChatBot2.py @@ -0,0 +1,112 @@ +from unittest.util import _MAX_LENGTH +import torch +import torch.nn as nn +from torch.optim import AdamW +from torch.utils.data import DataLoader, Dataset +from transformers import EncoderDecoderModel, BertTokenizer +from transformers import AutoModelForCausalLM, AutoTokenizer + +# Sample data: context-response pairs +data = [ + ("What resources are available for mental health", "Depression"), + ("What parts of brain are affected in depression and anxiety", "Biology"), + ("Where do you live?", "Query"), + ("I am feeling very low today", "Sad"), + ("I got fired from my job today.", "Anxious"), + ("I feel bad when my kids let me down", "Furious"), + ("I had fight in the family today", "Angry"), + ("My family does not talk to me", "Frustrated") + +] + +# Custom dataset class +class ChatDataset(Dataset): + def __init__(self, data, tokenizer, max_length=128): + self.data = data + self.tokenizer = tokenizer + self.max_length = max_length + + def __len__(self): + return len(self.data) + + def __getitem__(self, idx): + context, response = self.data[idx] + inputs = self.tokenizer.encode_plus( + context, + add_special_tokens=True, + max_length=self.max_length, + padding='max_length', + truncation=True, + return_tensors="pt" + ) + + outputs = self.tokenizer.encode_plus( + response, + add_special_tokens=True, + max_length=self.max_length, + padding='max_length', + truncation=True, + return_tensors="pt" + ) + + input_ids = inputs['input_ids'].squeeze() + attention_mask = inputs['attention_mask'].squeeze() + labels = outputs['input_ids'].squeeze() + return input_ids, attention_mask, labels + +# Initialize tokenizer and model +#tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') +#model = EncoderDecoderModel.from_encoder_decoder_pretrained('bert-base-uncased', 'bert-base-uncased') + +# checkpoint +checkpoint = "gpt2" +# download and cache tokenizer +tokenizer = AutoTokenizer.from_pretrained(checkpoint) +tokenizer.pad_token = tokenizer.eos_token + +# download and cache pre-trained model +model = AutoModelForCausalLM.from_pretrained(checkpoint) + +# Create dataset and dataloader +dataset = ChatDataset(data, tokenizer) +dataloader = DataLoader(dataset, batch_size=8, shuffle=True) + +# Training parameters +epochs = 5 +learning_rate = 1e-2 + +# Optimizer and loss function +optimizer = AdamW(model.parameters(), lr=learning_rate) +loss_fn = nn.CrossEntropyLoss() + +# Training loop +model.train() +for epoch in range(epochs): + for input_ids, attention_mask, labels in dataloader: + optimizer.zero_grad() + outputs = model(input_ids=input_ids, attention_mask=attention_mask) + logits = outputs.logits + #labels = torch.zeros(logits.size(0), dtype=torch.long) # Dummy labels for demonstration + loss = loss_fn(logits.view(-1, logits.size(-1)), labels.view(-1)) + #loss = outputs.loss + loss.backward() + optimizer.step() + print(f"Epoch {epoch + 1}/{epochs} completed. Loss: {loss.item()}") + +print("Training completed.") + +# Example inference +model.eval() +context = "I feel very low today" +inputs = tokenizer.encode_plus(context, add_special_tokens=True, return_tensors="pt") +input_ids = inputs['input_ids'] +attention_mask = inputs['attention_mask'] +outputs = model.generate(input_ids=input_ids, attention_mask=attention_mask) +outputs = outputs.squeeze().tolist() +response = tokenizer.decode(outputs, skip_special_tokens=True) +print(f"Context: {context}") +print(f"Response: {response}") + + + + diff --git a/ChatBot3.py b/ChatBot3.py new file mode 100644 index 0000000..1b79911 --- /dev/null +++ b/ChatBot3.py @@ -0,0 +1,62 @@ +# Approach: +# Use Sentence Transformer to encode each question +# Build a logistic classifier to separate the question in two +# categories: +# A - User seeking information related to mental health +# B - User seeking emotional support +# For question category A, build a KNN classifier to generate a canned informational response. +# For question category B, predict the emotion using LinearSVC classifier +# For each emotion, generate a canned response. +# Report precision, recall, F1 score for all the classifiers. +# Important: Need canned response repository + +# Read empathetic dialogues context +import pandas as pd +from sentence_transformers import SentenceTransformer +from sklearn.linear_model import LogisticRegression +from sklearn.model_selection import train_test_split +from sklearn.metrics import classification_report, f1_score + +df_A = pd.read_csv('./data/Mental_Health_FAQ.csv') +print(df_A.columns) + +splits = {'train': 'train.csv', 'validation': 'valid.csv', 'test': 'test.csv'} +df_B = pd.read_csv("hf://datasets/bdotloh/empathetic-dialogues-contexts/" + splits["train"]) +print(df_B.columns) + +# Load pretrained Sentence-BERT model. +model = SentenceTransformer('paraphrase-MiniLM-L6-v2') + +# Create vector representation for each question/situation. +class_A_questions = df_A['Questions'] +class_A_labels = [0]*len(class_A_questions) + +class_B_contexts = df_B['situation'] +class_B_labels = [1]*len(class_B_contexts) + +all_data = pd.concat([class_A_questions, class_B_contexts], ignore_index=True).to_numpy() +X = model.encode(all_data) +print(X.shape) + +y = class_A_labels + class_B_labels + +# Split the data in training and testing sets +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) + +# Train a binary classifier +classifier = LogisticRegression() +classifier.fit(X_train, y_train) + +# Use the test dataset to compute metrics +y_pred = classifier.predict(X_test) + +print('\nClassification Report:\n ' + classification_report(y_test, y_pred)) + +# Build KNN classifier for class A questions. + +# Build emotion classifier for class B questions. + +# Generate responses + + + From 9584a667a85d98a316396bf286b4153482ff299a Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sat, 12 Oct 2024 20:11:09 -0400 Subject: [PATCH 02/61] feat: Improve chatbot class structure and documentation, integrate imports and fix unused variables - Refactored the MentalHealthChatbot class: - Added absl-py for command-line argument handling. - Incorporated Sentence-BERT for query encoding and classification. - Added logistic regression for query categorization (informational vs emotional). - Implemented KNN for informational responses. - Integrated LinearSVC for emotion classification in emotional support queries. - Improved docstrings across all methods: - Clarified method roles, input arguments, return values, and attributes. - Added detailed explanations for the purpose and handling of unused variables like 'distances'. - Updated LinearSVC-related docstring with classifier usage and purpose. - Imported missing dependencies: - Added 'precision_recall_fscore_support' from sklearn.metrics. - Added 'LinearSVC' from sklearn.svm. - Enhanced modular design: - Incorporated best practices by organizing methods into logical segments. - Added error handling and console flag management with absl-py. - Removed or clarified unused variables: - Explained 'distances' in get_informational_response if retained or removed when unnecessary. - Structured code for better maintainability and future enhancements. - Added instructions in README for setup, including Conda and venv, and running the chatbot. Each method now has clear docstrings that explain its purpose, the arguments it takes, and the expected return values. Additional clarifications and reasoning have been added to provide context for unused variables like distances. Methods are ordered sequentially, starting from initialization (__init__) to the main execution (run). --- REAMD.md | 132 +++++++++++++++++ mental_health_chatbot.py | 295 ++++++++++++++++++++++++++++++++++++++ project strucutre.graphql | 13 ++ requirements.txt | 4 + 4 files changed, 444 insertions(+) create mode 100644 REAMD.md create mode 100644 mental_health_chatbot.py create mode 100644 project strucutre.graphql create mode 100644 requirements.txt diff --git a/REAMD.md b/REAMD.md new file mode 100644 index 0000000..7e67cfa --- /dev/null +++ b/REAMD.md @@ -0,0 +1,132 @@ +# Mental Health Chatbot + +This project focuses on building a mental health chatbot that can provide empathetic responses and offer basic mental health information. The chatbot uses a logistic regression classifier to categorize user queries into two groups: information-seeking (class A) and emotional support-seeking (class B). The chatbot then generates appropriate canned responses based on these classifications. + +## Table of Contents + +- [Requirements](#requirements) +- [Installation](#installation) + - [Using Conda](#using-conda) + - [Using venv](#using-venv) +- [Running the Chatbot](#running-the-chatbot) +- [Project Structure](#project-structure) +- [Usage](#usage) +- [Credits](#credits) + +## Requirements + +- Python 3.8 or higher +- Libraries: + - absl-py + - pandas + - sentence-transformers + - scikit-learn + +## Installation + +### Using Conda + +1. **Install Conda**: Make sure Conda is installed on your machine. If not, download and install it from [Conda's website](https://docs.conda.io/en/latest/miniconda.html). + +2. **Create a Conda environment**: + +```bash +conda create -n chatbot_env python=3.8 +``` + +3. **Activate the environment:**: + +```bash +conda activate chatbot_env +``` + +4. **Install dependencies**: You can install the required dependencies using the provided requirements.txt file: + +```bash +pip install -r requirements.txt +``` + +5. **Installing `sentence_transformers` Using Conda** + +```bash +conda install -c conda-forge sentence-transformers +``` + +*if this fails try* [from anaconda.org](https://anaconda.org/conda-forge/sentence-transformers): + +```bash +conda install conda-forge::sentence-transformers +``` + +### Using venv + +1. **Install venv (if needed)**: If you don’t have venv installed, you can do so with the following command: + +```bash +sudo apt install python3-venv # On Ubuntu/Debian +``` + +2. **Create a virtual environment**: + +```bash +python3 -m venv chatbot_env +``` + +3. **Activate the environment**: + + **On Linux/macOS**: + + ```bash + source chatbot_env/bin/activate + ``` + + **On Windows**: + + ```bash + chatbot_env\Scripts\activate + ``` + +4. **Install dependencies**: + +```bash +pip install -r requirements.txt +``` + +### Running the Chatbot + +Once you have installed the necessary dependencies and activated your environment, you can run the chatbot using the following command: + +```bash +python main.py --faq_data_path ./data/Mental_Health_FAQ.csv --empathetic_data_path ./data/empathetic-dialogues-contexts/ +``` + +### Optional Arguments + +- `--faq_data_path`: Path to the FAQ dataset CSV file (default is ./data/Mental_Health_FAQ.csv). +- `--empathetic_data_path`: Path to the directory containing the empathetic dialogues datasets (default is ./data/empathetic-dialogues-contexts/). +- `--test_size`: Fraction of data to use for testing (default is 0.3). +- `--random_state`: Seed for random number generation (default is 42). + +The chatbot will start running, and you can interact with it via the command line. Type your query and receive a response. Type `exit` or `quit` to stop the chatbot. + +### Usage + +Once the chatbot is running, type any mental health-related query. +The chatbot will categorize your query as either informational or emotional. +It will respond with canned answers based on the classification. + +**Example interaction**: + +```bash +You: I'm feeling really stressed out lately. +Chatbot: I'm sorry to hear that you're feeling stressed. Would you like to talk about it? + +You: What are the symptoms of anxiety? +Chatbot: Some common symptoms of anxiety include nervousness, restlessness, and a sense of impending danger. +``` + +### Credits + +- **Sentence-BERT**: Used for encoding questions and contexts. +- **Scikit-learn**: Used for implementing classifiers. +- **Pandas**: For handling data loading and preprocessing. diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py new file mode 100644 index 0000000..f94f0c5 --- /dev/null +++ b/mental_health_chatbot.py @@ -0,0 +1,295 @@ +""" +# Approach: +# Use Sentence Transformer to encode each question +# Build a logistic classifier to separate the question in two +# categories: +# A - User seeking information related to mental health +# B - User seeking emotional support +# For question category A, build a KNN classifier to generate a canned informational response. +# For question category B, predict the emotion using LinearSVC classifier +# For each emotion, generate a canned response. +# Report precision, recall, F1 score for all the classifiers. +# Important: Need canned response repository + +While the current scope focuses on canned responses, + consider integrating advanced NLP models like GPT-3 + for more dynamic responses in future iterations. +Also, think about the ethical implications and the necessity for the chatbot to + recognize when to direct users to professional help. +""" +# Read empathetic dialogues context +import pandas as pd +from absl import app, flags +from sentence_transformers import SentenceTransformer +from sklearn.svm import LinearSVC +from sklearn.neighbors import NearestNeighbors +from sklearn.linear_model import LogisticRegression +from sklearn.model_selection import train_test_split +from sklearn.metrics import classification_report, precision_recall_fscore_support + +FLAGS = flags.FLAGS + +flags.DEFINE_string( + 'faq_data_path', './data/Mental_Health_FAQ.csv', 'Path to the FAQ dataset') +flags.DEFINE_string('empathetic_data_path', 'hf://datasets/bdotloh/empathetic-dialogues-contexts/', + 'Path to the empathetic dialogues dataset') +flags.DEFINE_float('test_size', 0.3, 'Test set size as a fraction') +flags.DEFINE_integer('random_state', 42, 'Random seed for reproducibility') + + +class MentalHealthChatbot: + """A chatbot for mental health support.""" + + def __init__(self, faq_data_path, empathetic_data_path, test_size, random_state): + """ + Initializes the MentalHealthChatbot with data paths and configuration parameters. + + Args: + faq_data_path (str): Path to the FAQ dataset (CSV file). + empathetic_data_path (str): Path to the empathetic dialogues dataset (directory). + test_size (float): Fraction of the data to reserve for testing (0 < test_size < 1). + random_state (int): Seed for random number generation to ensure reproducibility. + + Attributes: + model (SentenceTransformer): Pretrained Sentence-BERT model for encoding sentences. + logistic_classifier (LogisticRegression): Classifier for determining the type of query (informational vs. emotional). + knn_classifier (NearestNeighbors): KNN classifier for retrieving informational responses (set later). + emotion_classifier (LinearSVC): Classifier for predicting emotions in emotional queries (set later). + df_A (DataFrame): DataFrame containing FAQ questions and answers. + df_B (DataFrame): DataFrame containing empathetic dialogues context and emotion. + X (np.array): Encoded representations of both FAQ and empathetic dialogue data. + y (list): Labels corresponding to the FAQ and empathetic dialogue data. + canned_responses (dict): Predefined emotional responses keyed by predicted emotion. + """ + self.faq_data_path = faq_data_path + self.empathetic_data_path = empathetic_data_path + self.test_size = test_size + self.random_state = random_state + self.model = SentenceTransformer('paraphrase-MiniLM-L6-v2') + self.logistic_classifier = LogisticRegression() + # Placeholder for additional classifiers + self.knn_classifier = None + self.emotion_classifier = None + self.canned_responses = { + 'sadness': "I'm sorry to hear that you're feeling sad. Would you like to talk about it?", + 'anger': "It seems like you're feeling angry. I'm here to listen if you'd like to share more.", + 'joy': "That's wonderful to hear!", + # Add more emotions and corresponding responses + } + + def load_data(self): + """ + Loads the FAQ and empathetic dialogues datasets into DataFrames. + + FAQ data is expected to be in CSV format containing columns for questions and answers. + Empathetic dialogues data should contain columns for context and associated emotions. + + Returns: + None + """ + self.df_A = pd.read_csv(self.faq_data_path) + print("FAQ Data Columns:", self.df_A.columns) + + splits = {'train': 'train.csv', + 'validation': 'valid.csv', 'test': 'test.csv'} + self.df_B = pd.read_csv(self.empathetic_data_path + splits['train']) + print("Empathetic Dialogues Columns:", self.df_B.columns) + + def preprocess_data(self): + """ + Preprocesses and encodes the FAQ questions and empathetic dialogue contexts using Sentence-BERT. + + The method concatenates FAQ questions and empathetic dialogue contexts into a single dataset, + then encodes the data into vector representations using the pretrained Sentence-BERT model. + + It also generates binary labels: 0 for informational queries and 1 for emotional queries. + + Returns: + None + """ + class_A_questions = self.df_A['Questions'] + class_A_labels = [0] * len(class_A_questions) + + class_B_contexts = self.df_B['situation'] + class_B_labels = [1] * len(class_B_contexts) + + all_data = pd.concat( + [class_A_questions, class_B_contexts], ignore_index=True).to_numpy() + self.X = self.model.encode(all_data) + self.y = class_A_labels + class_B_labels + + def train_logistic_classifier(self): + """ + Trains a logistic regression classifier to categorize user queries as either informational or emotional. + + The classifier is trained on the encoded representations of FAQ and empathetic dialogues data, + with binary labels indicating the type of query. + + After training, the method evaluates the classifier using the test dataset and prints precision, recall, + and F1 score for the model's performance. + + Returns: + None + """ + X_train, X_test, y_train, y_test = train_test_split( + self.X, self.y, test_size=self.test_size, random_state=self.random_state + ) + + self.logistic_classifier.fit(X_train, y_train) + y_pred = self.logistic_classifier.predict(X_test) + + print('\nClassification Report:\n', + classification_report(y_test, y_pred)) + precision, recall, f1, _ = precision_recall_fscore_support( + y_test, y_pred, average='weighted') + print( + f"Precision: {precision:.2f}, Recall: {recall:.2f}, F1 Score: {f1:.2f}") + + def build_knn_classifier(self): + """ + Builds a K-Nearest Neighbors (KNN) classifier for retrieving informational responses. + + The FAQ questions are encoded and stored in the KNN classifier. When a new query categorized as + informational is received, the KNN classifier finds the closest matching FAQ question to return a response. + + Returns: + None + """ + faq_embeddings = self.model.encode(self.df_A['Questions'].tolist()) + self.knn_classifier = NearestNeighbors( + n_neighbors=1, algorithm='ball_tree').fit(faq_embeddings) + + def get_informational_response(self, query): + """ + Generates a response for informational queries. + + Args: + query (str): The user's query to find an informational response. + + Returns: + str: The informational response based on the closest match in the FAQ data. + + Note: + The `distances` variable, although not returned, + contains the distances between the query and the closest matching FAQ. + It can be used to evaluate how closely the query matches the informational responses. + May be useful for debugging or future enhancements. + """ + query_embedding = self.model.encode([query]) + distances, indices = self.knn_classifier.kneighbors(query_embedding) + index = indices[0][0] + response = self.df_A['Answers'].iloc[index] + return response + + def train_emotion_classifier(self): + """ + Trains a Linear Support Vector Classifier (LinearSVC) to predict emotions from emotional support queries. + + The classifier is trained on the encoded contexts from the empathetic dialogues dataset and their + associated emotions. It is used to determine the emotional state of users seeking emotional support. + + After training, the method evaluates the classifier on the test data and prints a classification report + (precision, recall, F1 score). + + Returns: + None + """ + emotions = self.df_B['emotion'] + contexts = self.df_B['context'] + X_emotion = self.model.encode(contexts.tolist()) + y_emotion = emotions.tolist() + + X_train, X_test, y_train, y_test = train_test_split( + X_emotion, y_emotion, test_size=self.test_size, random_state=self.random_state + ) + + self.emotion_classifier = LinearSVC() + self.emotion_classifier.fit(X_train, y_train) + y_pred = self.emotion_classifier.predict(X_test) + + print('\nEmotion Classification Report:\n', + classification_report(y_test, y_pred)) + + def get_emotional_response(self, query): + """ + Generates an emotional support response based on the user's query and predicted emotional state. + + The query is classified into one of several emotional states using the trained emotion classifier, and + a predefined (canned) response is returned based on the predicted emotion. + + Args: + query (str): The user's emotional query. + + Returns: + str: A canned response tailored to the predicted emotional state of the user. + """ + query_embedding = self.model.encode([query]) + predicted_emotion = self.emotion_classifier.predict(query_embedding)[0] + response = self.canned_responses.get( + predicted_emotion, "I'm here to listen.") + return response + + def respond_to_query(self, query): + """ + Responds to a user query by first categorizing it and then generating an appropriate response. + + The method uses the logistic regression classifier to determine whether the query is informational or + emotional. It then routes the query to the appropriate method for generating a response: + `get_informational_response` or `get_emotional_response`. + + Args: + query (str): The user's input query. + + Returns: + str: The chatbot's response (informational or emotional) based on the query type. + """ + query_embedding = self.model.encode([query]) + category = self.logistic_classifier.predict(query_embedding)[0] + + if category == 0: + response = self.get_informational_response(query) + else: + response = self.get_emotional_response(query) + + return response + + def run(self): + """ + Executes the main flow of the chatbot, including data loading, training, and user interaction. + + After loading and preprocessing the data, the method trains the classifiers and initiates an interactive + loop where users can input queries. The chatbot will continue to respond to user queries until the user + types 'exit' or 'quit'. + + Returns: + None + """ + self.load_data() + self.preprocess_data() + self.train_logistic_classifier() + self.build_knn_classifier() + self.train_emotion_classifier() + + # Interactive loop + print("Welcome to the Mental Health Chatbot. Type 'exit' to quit.") + while True: + user_input = input("You: ") + if user_input.lower() in ['exit', 'quit']: + print("Chatbot: Take care!") + break + response = self.respond_to_query(user_input) + print(f"Chatbot: {response}") + + +def main(argv): + chatbot = MentalHealthChatbot( + faq_data_path=FLAGS.faq_data_path, + empathetic_data_path=FLAGS.empathetic_data_path, + test_size=FLAGS.test_size, + random_state=FLAGS.random_state + ) + chatbot.run() + + +if __name__ == '__main__': + app.run(main) diff --git a/project strucutre.graphql b/project strucutre.graphql new file mode 100644 index 0000000..84ab0e1 --- /dev/null +++ b/project strucutre.graphql @@ -0,0 +1,13 @@ +mental_health_chatbot/ +│ +├── main.py # Entry point of the application +├── chatbot.py # Contains the MentalHealthChatbot class +├── utils.py # Utility functions (if any) +├── data/ +│ ├── Mental_Health_FAQ.csv +│ └── empathetic-dialogues-contexts/ +│ ├── train.csv +│ ├── valid.csv +│ └── test.csv +├── requirements.txt # List of dependencies +└── README.md # Project documentation diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..3c40d18 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +absl-py +pandas +sentence-transformers +scikit-learn \ No newline at end of file From 18b2adcbd3c98fa94095d3e8ef6be4092bdfd33a Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sat, 12 Oct 2024 20:11:57 -0400 Subject: [PATCH 03/61] Added instructions in README --- __pycache__/text_dataset.cpython-39.pyc | Bin 0 -> 2295 bytes __pycache__/train_utils.cpython-39.pyc | Bin 0 -> 2052 bytes __pycache__/transformer_model.cpython-39.pyc | Bin 0 -> 2206 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 __pycache__/text_dataset.cpython-39.pyc create mode 100644 __pycache__/train_utils.cpython-39.pyc create mode 100644 __pycache__/transformer_model.cpython-39.pyc diff --git a/__pycache__/text_dataset.cpython-39.pyc b/__pycache__/text_dataset.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8625449832f8b18fff0eb43e851c4afbd58a23e8 GIT binary patch literal 2295 zcmbVOOK%%D5GHq5T1mE32Pv8wC{Pyd!Aen`3!^AvxIocE4I>tE5DXC1lCsy?heA?` zEv$hS$+iEWhveA5#A{Ev^je_kp)=f-v~JQKLSbk5SPp0AoB1fQvoj#j?uCEM9_$eE zI}X|{g26+0%svQ7B+bZ#!aK-+AV~^LwL*s5Xvi^1d>idIq(W8sOre>OET%mSoYxEm3>gX<+jG^%A(p+WyK>( z$bdmRWGC0-QYROzIg!mu&9YL+v^Zy?kj$1(RFN)mXh8#$pn^S5?FCE90%yL`%FN5c zC^i?VHlsnU*jk-V7gm`AKgPpmX{PvGz}9_Z_3(h5VBeO^UMO~S`q+Qq)rz#h1OMv; zREDjwO=-4owI~eOo+~inM60m|9ZHUC>lL21?t35C&WzUf<>HEGsyIgj)55}*AH`Lg zFLGwo(}gM$#hPUdQggVlX<5`d-uwihB#8a0VILtog2#LU!jf0CqOWO1cu)l(!zu(> z;~$8}D_qdKABxnbB1@Ob_y}R-At%`MnrT%7bSrR(7OYzj)yi*=;l{BB9aMj)&s*5w z%>UxEI(>!HCTzI%eUT`qmnyL}AhpS@c%ou#8}r`}7u0b)?6_bqCp`=uPs}qHp+~O2 zw%iRi=L{nk8I{dke;pGY1AMv%;y0qV;Puz%;^6E=m*{{wJGu~dTG}&AE8fIvG{1H| z&LNjA=U>7W(*;5L+q6rUAC5QmI9h#_0RHQS{Qw@HJjgeeROFJrK&qh2pVw*oNZExh z>KrK+`4q~boG~Nvc?Ox27VYF|;oofAlqZG>(*A%Qua)TX`P&-sJ8Z+ig-{O~of=Zz zhnEjbEw*9kVvYsH`PVQo=nILL_ij7x*Au^n>(EdU2HX2xK?l4Bzbm>2M7l?AplsIT z0LD;2mrzW|f6xn&|9Z z239YM#Mi5f=R)F@QLo zdNk?}c6xn33uM=w!+ju(?!cPcwRp#m7B-J-Yqr EKL?v^xc~qF literal 0 HcmV?d00001 diff --git a/__pycache__/train_utils.cpython-39.pyc b/__pycache__/train_utils.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d49bc335b654b72e3bc2f71e0cd5f1b97f975fdc GIT binary patch literal 2052 zcmb_d+iE057_O>5On1*@39g{KcxXg017TccuY!ncc5#IyEE*Jtm7%7qW~P%qZBNhjaNuS_m?c{FXg*9Q$kEri4mw7Pz41bNf{sm~FgTyn_ zvTeW|Lf?fh|AaxIIj+&1EKuz($jnpD++CoVue_R^>%vp;=f5jKCb#s1EChIm~$m@i6xp8NvQJnYC-bZqEbe*3N=lAv}XK2=iuv0oSQJ z^UzxM=8>77+)-`j*DdC~fnFfistJq%pgIf0!WZtZ{y7Fz%pAx!qWc)3D28?@Xj;fv zO}JSWa#V_(i#RVC&w7!C+!JHDV^>DOzKOSrqPJhNX~w%d@gXRySCwN`n$5K6U8ypv z=pZX80|#68LD;ivu&@^5N|YxlON((lq$-(k8JDBjXs+$>s!S#_-bxDvx(CyI2nGRV z-5JdWuvR!3$n=b_6uv1FI-F)yoW^z=QjW{1s-|kKkwJtb2-P^)<5U#Jte}d=25qWU zRw~WGs%VsSm=<7RkTR+Lj1GAw4=ygDT|lMLng77V9KXaLo(0?SUMb~HeCG7-j=CG# zv!=9rkI`I56%{n+iVLYpQRvNG0pJIP5@mI2^t1<+9&_#4Y;_0`l!LLLOt%D=6IyW{ z3~6%w0~JiWQt?WAm4H%dH&r}0{_H30x37H;?KdUUep4zcnyO8$F_vp^!N1{C9iIR_ZCsYkf_1FeJn5s0Bz3NmL zqHRN$@4$fCn>ZjH99%uOaR5>3P*kTjc;FirWG=Oed`a3Lufv92N5v~ctj65eZ zw|0TAWbQ1`FGGwJu*)*`;mijny0r(4Y5{i~V3@bC9G(S=9JOkr71Y5PkMRPJiMchv zo>vDoJ_?VC*al9WJlXyhG2cZlI(INCHa|l0r#rw&^Lz&#uu<)?)-7Np3!f9qz@JwP z{DK$UoGc(Af2!hLvCIqa7oxu?a_b5vQ$*4flX;kDgoMG7O6^U)}#prEW+w9gM;I>jx4872a-P- zWV{%w$%?!C^l6$;^LV)nq+cb*mj3N+^A%T9QCz#VAcCEERp|yAgY_vS!IuOkmFi-B zLs(S^ypW}kT_OyBg*kI}0EolV{J?G>f^<_Jr`14KJb~N>ww|)v)-FGx8PLiW3CLQC zWTIO|LsiiMbK0k33|WesMsN}e9BRDk4liY63hoo_Gj1x~4aMsQ8D4!e9j%M3Z~V7l z!u%EcQA0|5E8&57+w65J!C9Ip&S2Zpv>9S!d}CEk`{f?Omb?uE+6eFs?2-t`7~xIq z;@2*HklrWaV|d$bi4S1Xflael6vF(m`|U=w*NAArj^(e_xaQYf6e5N}2cN*r1izF| QP06L9bpZZ4-QcZ%0f(qakN^Mx literal 0 HcmV?d00001 diff --git a/__pycache__/transformer_model.cpython-39.pyc b/__pycache__/transformer_model.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c0ab0b0a9f4b5dce7baa0c2d60bdc7888c7a5cd2 GIT binary patch literal 2206 zcmb7GPjA~c6eso1j_m~9dgxLN19w_73_0!)w8M&Y8w#vhu?0OC0SHEZu+2HSA-*$xizKyzbP?KEN*Bqhwi17j&%*Kar2`AAj$U&9=7(2%azezbAjf>MytH zJ^^gLg|Ge+2uB>JXk5Q>=8Zj!en8yg{tLu?;hp=>{c*tYFK9n_4f5zXcC`EW>y6%n zg+OD>(b(g7?7u`4Tv_Uag@A`I&^UaF0yK`mT4ZmWC?@qJSD8=`b1qVLA0sp%@EjG| z#6`AbW{4`-kLl9<#F| zW$KbR_Q6Js)7to2?tYR9slhT!6LU%O2{AKK`)_q5oe9QuWBa(s&V+KZ%orhET%;1{ zXcQSu*`-j|D47-sQp>b@8M~lbJfW$OQ!{HEK4ce3R%8TD3L#@b>f>51jym~q>mGbv zn)G8J1{qwU=ibs=A&iW_3`$&jE3ZT}gk5BM%Ra|t2t0oUl5`8WgVHPgGAM&p0GuIk zM!><9);9Mbp+5VgNuR_1flN#S2rh)K@atZ&hWlv(*Aajl=ZTztMdrB%6$d+k8|5{V zNlv<|4LY0T-BZ&}#{W0#RRwLF)?l|-JN5UfhE7OVwLiQroKN|V+E~|2BHxDbs^bqT zlM01v@NP}MhFqfK{T&Y?|;0*7^)ciIxc32iof#bNKuY6SKrik9#Xv zPrO}p3qA8IDd1d@g2uff1r53MU30FyXCbVEGF-WN?X$1D4f%bpo-)PB96)G>TIb5m zfO|({>AX-dY4)nL9-P3C%oWVl2XbB*n96QT;#?XAMIxtUE#6G1wzgcw8>Xhhytl2j zcx!7D=Fh?uO1?D$x)C0dp9*t*gmWc$5*q;{CjS-UZ$ms*E_?f->cdNofI#`dEK@sf zf5V+c>LbUF>TBAl4$=Br#nv}dVY( Date: Sat, 12 Oct 2024 20:15:17 -0400 Subject: [PATCH 04/61] Python-specific ignores: Includes cache directories, virtual environments (venv, env), build files, and logs. VS/VSCode files: Adds .vs/, .vscode/, .idea/, and other Visual Studio-specific files like .suo, .sln.docstates. Data and Environment files: To prevent sensitive data or local configurations from being committed (like .env files). MacOS and Jupyter files: Excludes .DS_Store (macOS) and Jupyter checkpoint files. --- .gitignore | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..de54b4c --- /dev/null +++ b/.gitignore @@ -0,0 +1,123 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Virtual environment directories +env/ +venv/ +.venv/ +env.bak/ +venv.bak/ + +# Conda environment files +*.conda +*.env +*.venv + +# Package files +*.egg +*.egg-info/ +dist/ +build/ +eggs/ +parts/ +wheels/ +pip-wheel-metadata/ +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ + +# Jupyter Notebook files +.ipynb_checkpoints/ + +# VSCode configuration files +.vscode/ + +# VS specific directories +.vs/ +.idea/ + +# Visual Studio Code Workspace +*.code-workspace + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# VS Specific +*.suo +*.user +*.userossc +*.sln.docstates + +# Visual Studio Code project settings +.settings/ + +# Logs +*.log + +# Local env files +.env +.env.* + +# dotenv environment variables file +.env.local +.env.development +.env.test +.env.production + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# PyCharm +.idea/ + +# JupyterLab +.lab/ +.jupyter/ + +# Ignore data files +data/ + +# Ignore macOS specific files +.DS_Store + +# Ignore pyright type checking files +.pyright/ + +# Other VS files +*.csproj +*.dbmdl +*.VC.db +*.pdb +*.opendb From bae608610bb828cdb2e4ea9b10c6dd01f29dd3c9 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sat, 12 Oct 2024 20:19:20 -0400 Subject: [PATCH 05/61] removing the git ignore cache. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index de54b4c..70db19a 100644 --- a/.gitignore +++ b/.gitignore @@ -74,6 +74,7 @@ ehthumbs.db *.user *.userossc *.sln.docstates +*.pyproj # Visual Studio Code project settings .settings/ From cf4185e9141f34110a96f9f27ceda35fbc65dde0 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sat, 12 Oct 2024 20:22:40 -0400 Subject: [PATCH 06/61] =?UTF-8?q?The=20unwanted=20files=20are=20removed=20?= =?UTF-8?q?from=20the=20repository=E2=80=99s=20history,=20but=20they=20rem?= =?UTF-8?q?ain=20on=20your=20local=20machine.=20Going=20forward,=20these?= =?UTF-8?q?=20files=20will=20be=20ignored=20thanks=20to=20the=20.gitignore?= =?UTF-8?q?=20file,=20so=20they=20won=E2=80=99t=20be=20accidentally=20comm?= =?UTF-8?q?itted=20again.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChatBot.pyproj | 35 ----------------------------------- ChatBot.sln | 23 ----------------------- 2 files changed, 58 deletions(-) delete mode 100644 ChatBot.pyproj delete mode 100644 ChatBot.sln diff --git a/ChatBot.pyproj b/ChatBot.pyproj deleted file mode 100644 index 12d7a25..0000000 --- a/ChatBot.pyproj +++ /dev/null @@ -1,35 +0,0 @@ - - - Debug - 2.0 - 67680f41-affd-4714-a0f7-b8a94d974197 - . - ChatBot.py - - - . - . - ChatBot - ChatBot - - - true - false - - - true - false - - - - - - - - - - - - \ No newline at end of file diff --git a/ChatBot.sln b/ChatBot.sln deleted file mode 100644 index 9780000..0000000 --- a/ChatBot.sln +++ /dev/null @@ -1,23 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.34525.116 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "ChatBot", "ChatBot.pyproj", "{67680F41-AFFD-4714-A0F7-B8A94D974197}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {67680F41-AFFD-4714-A0F7-B8A94D974197}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {67680F41-AFFD-4714-A0F7-B8A94D974197}.Release|Any CPU.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DB8CFA6D-627F-42A3-BE1C-EB64CD4104D9} - EndGlobalSection -EndGlobal From 1722b0a79f29f43e98207f353f5d8fde9cb31002 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sat, 12 Oct 2024 20:24:06 -0400 Subject: [PATCH 07/61] fixing cached items. --- ChatBot.sln | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 ChatBot.sln diff --git a/ChatBot.sln b/ChatBot.sln new file mode 100644 index 0000000..3a05a47 --- /dev/null +++ b/ChatBot.sln @@ -0,0 +1,23 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34525.116 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "ChatBot", "ChatBot.pyproj", "{67680F41-AFFD-4714-A0F7-B8A94D974197}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {67680F41-AFFD-4714-A0F7-B8A94D974197}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67680F41-AFFD-4714-A0F7-B8A94D974197}.Release|Any CPU.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DB8CFA6D-627F-42A3-BE1C-EB64CD4104D9} + EndGlobalSection +EndGlobal From 7ce2991a9f2a6df18b45a4dcbd507c2642a38552 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sat, 12 Oct 2024 20:25:28 -0400 Subject: [PATCH 08/61] tossing the .sln from the repo. --- ChatBot.sln | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 ChatBot.sln diff --git a/ChatBot.sln b/ChatBot.sln deleted file mode 100644 index 3a05a47..0000000 --- a/ChatBot.sln +++ /dev/null @@ -1,23 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.34525.116 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "ChatBot", "ChatBot.pyproj", "{67680F41-AFFD-4714-A0F7-B8A94D974197}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {67680F41-AFFD-4714-A0F7-B8A94D974197}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {67680F41-AFFD-4714-A0F7-B8A94D974197}.Release|Any CPU.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {DB8CFA6D-627F-42A3-BE1C-EB64CD4104D9} - EndGlobalSection -EndGlobal From 69a23bb961e6aab23c45eb5362bd909ef54d19fb Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sat, 12 Oct 2024 20:38:54 -0400 Subject: [PATCH 09/61] refactor: Move canned_responses to CSV file and update chatbot accordingly - Created 'canned_responses.csv' in the data directory with expanded responses. - Modified __init__ method to accept canned_responses_path and load responses from CSV. - Added 'load_canned_responses' method to read canned responses into a dictionary. - Updated 'get_emotional_response' to use the loaded canned responses. - Updated main.py and README.md to include the new command-line flag for canned responses path. - Ensured that the chatbot handles emotions not present in the canned responses gracefully. --- REAMD.md | 1 + canned_responses.csv | 10 +++++++++ mental_health_chatbot.py | 48 +++++++++++++++++++++++++++++++--------- 3 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 canned_responses.csv diff --git a/REAMD.md b/REAMD.md index 7e67cfa..0378822 100644 --- a/REAMD.md +++ b/REAMD.md @@ -104,6 +104,7 @@ python main.py --faq_data_path ./data/Mental_Health_FAQ.csv --empathetic_data_pa - `--faq_data_path`: Path to the FAQ dataset CSV file (default is ./data/Mental_Health_FAQ.csv). - `--empathetic_data_path`: Path to the directory containing the empathetic dialogues datasets (default is ./data/empathetic-dialogues-contexts/). +- `--canned_responses_path`: Path to the canned responses CSV file (default is `./data/canned_responses.csv`). - `--test_size`: Fraction of data to use for testing (default is 0.3). - `--random_state`: Seed for random number generation (default is 42). diff --git a/canned_responses.csv b/canned_responses.csv new file mode 100644 index 0000000..49357b8 --- /dev/null +++ b/canned_responses.csv @@ -0,0 +1,10 @@ +emotion,response +sadness,I'm sorry to hear that you're feeling sad. Would you like to talk about it? +anger,It seems like you're feeling angry. I'm here to listen if you'd like to share more. +joy,That's wonderful to hear! +fear,It's understandable to feel this way. Can you tell me more about what's making you feel afraid? +surprise,That sounds unexpected! How are you feeling about it? +disgust,I'm sorry that you're experiencing these feelings. Would you like to discuss it? +trust,I'm glad you feel that way. How can I assist you further? +anticipation,It's exciting to think about the future. What are you looking forward to? +# Add more emotions and corresponding responses as needed diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index f94f0c5..caf1824 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -35,6 +35,8 @@ 'Path to the empathetic dialogues dataset') flags.DEFINE_float('test_size', 0.3, 'Test set size as a fraction') flags.DEFINE_integer('random_state', 42, 'Random seed for reproducibility') +flags.DEFINE_string('canned_responses_path', './data/canned_responses.csv', + 'Path to the canned responses CSV file') class MentalHealthChatbot: @@ -70,12 +72,28 @@ def __init__(self, faq_data_path, empathetic_data_path, test_size, random_state) # Placeholder for additional classifiers self.knn_classifier = None self.emotion_classifier = None - self.canned_responses = { - 'sadness': "I'm sorry to hear that you're feeling sad. Would you like to talk about it?", - 'anger': "It seems like you're feeling angry. I'm here to listen if you'd like to share more.", - 'joy': "That's wonderful to hear!", - # Add more emotions and corresponding responses - } + self.canned_responses = self.load_canned_responses( + self.canned_responses_path) + + def load_canned_responses(self, path): + """ + Loads canned responses from a CSV file into a dictionary. + + Args: + path (str): Path to the canned responses CSV file. + + Returns: + dict: A dictionary mapping emotions to responses. + """ + try: + df = pd.read_csv(path) + # Ensure there are no NaN values + df = df.dropna(subset=['emotion', 'response']) + responses = dict(zip(df['emotion'], df['response'])) + return responses + except Exception as e: + print(f"Error loading canned responses: {e}") + return {} def load_data(self): """ @@ -214,9 +232,6 @@ def get_emotional_response(self, query): """ Generates an emotional support response based on the user's query and predicted emotional state. - The query is classified into one of several emotional states using the trained emotion classifier, and - a predefined (canned) response is returned based on the predicted emotion. - Args: query (str): The user's emotional query. @@ -225,8 +240,20 @@ def get_emotional_response(self, query): """ query_embedding = self.model.encode([query]) predicted_emotion = self.emotion_classifier.predict(query_embedding)[0] + # Mapping similar emotions to a standard set + emotion_mapping = { + 'sad': 'sadness', + 'happy': 'joy', + 'angry': 'anger', + # Add mappings as needed + } + standardized_emotion = emotion_mapping.get( + predicted_emotion, predicted_emotion) + response = self.canned_responses.get( - predicted_emotion, "I'm here to listen.") + standardized_emotion, + "I'm here to listen. Please tell me more about how you're feeling." + ) return response def respond_to_query(self, query): @@ -285,6 +312,7 @@ def main(argv): chatbot = MentalHealthChatbot( faq_data_path=FLAGS.faq_data_path, empathetic_data_path=FLAGS.empathetic_data_path, + canned_responses_path=FLAGS.canned_responses_path, test_size=FLAGS.test_size, random_state=FLAGS.random_state ) From 6180ca8c69af864cd4037e74a03ac577f87d5c78 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sat, 12 Oct 2024 20:44:36 -0400 Subject: [PATCH 10/61] moving the canned_responses to a CSV file Moved the csv file into a data folder "updated" Project strucutre.graphql - improving accuracy. updated readme updated mental_health_chatbot.py --- REAMD.md | 10 +++++++++- canned_responses.csv | 10 ---------- mental_health_chatbot.py | 9 +++++++++ project strucutre.graphql | 1 + 4 files changed, 19 insertions(+), 11 deletions(-) delete mode 100644 canned_responses.csv diff --git a/REAMD.md b/REAMD.md index 0378822..d77e4e4 100644 --- a/REAMD.md +++ b/REAMD.md @@ -97,7 +97,15 @@ pip install -r requirements.txt Once you have installed the necessary dependencies and activated your environment, you can run the chatbot using the following command: ```bash -python main.py --faq_data_path ./data/Mental_Health_FAQ.csv --empathetic_data_path ./data/empathetic-dialogues-contexts/ +python main.py --faq_data_path ./data/Mental_Health_FAQ.csv --empathetic_data_path ./data/empathetic-dialogues-contexts --canned_responses_path ./data/canned_responses.csv +``` + +*alt view*: + +```powershell +python main.py --faq_data_path ./data/Mental_Health_FAQ.csv \ + --empathetic_data_path ./data/empathetic-dialogues-contexts/ \ + --canned_responses_path ./data/canned_responses.csv ``` ### Optional Arguments diff --git a/canned_responses.csv b/canned_responses.csv deleted file mode 100644 index 49357b8..0000000 --- a/canned_responses.csv +++ /dev/null @@ -1,10 +0,0 @@ -emotion,response -sadness,I'm sorry to hear that you're feeling sad. Would you like to talk about it? -anger,It seems like you're feeling angry. I'm here to listen if you'd like to share more. -joy,That's wonderful to hear! -fear,It's understandable to feel this way. Can you tell me more about what's making you feel afraid? -surprise,That sounds unexpected! How are you feeling about it? -disgust,I'm sorry that you're experiencing these feelings. Would you like to discuss it? -trust,I'm glad you feel that way. How can I assist you further? -anticipation,It's exciting to think about the future. What are you looking forward to? -# Add more emotions and corresponding responses as needed diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index caf1824..2cec469 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -16,6 +16,15 @@ for more dynamic responses in future iterations. Also, think about the ethical implications and the necessity for the chatbot to recognize when to direct users to professional help. + +Future Enhancements: +Dynamic Response Generation: In the future, + replace canned responses with dynamically generated + responses using a language model like GPT-3 or fine-tuned transformers. +Localization: If you plan to support multiple languages, + you can expand your CSV to include a language column. +Emotional Intensity: Include an additional column to handle + the intensity of emotions for more nuanced responses. """ # Read empathetic dialogues context import pandas as pd diff --git a/project strucutre.graphql b/project strucutre.graphql index 84ab0e1..b203d30 100644 --- a/project strucutre.graphql +++ b/project strucutre.graphql @@ -5,6 +5,7 @@ mental_health_chatbot/ ├── utils.py # Utility functions (if any) ├── data/ │ ├── Mental_Health_FAQ.csv +| ├── canned_responses.csv │ └── empathetic-dialogues-contexts/ │ ├── train.csv │ ├── valid.csv From 3104a88ad404b739a04e15b2381146f55fbc70b4 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sat, 12 Oct 2024 20:46:57 -0400 Subject: [PATCH 11/61] removed # from doc string --- mental_health_chatbot.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index 2cec469..bd8f958 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -1,15 +1,15 @@ """ -# Approach: -# Use Sentence Transformer to encode each question -# Build a logistic classifier to separate the question in two -# categories: -# A - User seeking information related to mental health -# B - User seeking emotional support -# For question category A, build a KNN classifier to generate a canned informational response. -# For question category B, predict the emotion using LinearSVC classifier -# For each emotion, generate a canned response. -# Report precision, recall, F1 score for all the classifiers. -# Important: Need canned response repository +Approach: +Use Sentence Transformer to encode each question +Build a logistic classifier to separate the question in two +categories: +A - User seeking information related to mental health +B - User seeking emotional support +For question category A, build a KNN classifier to generate a canned informational response. +For question category B, predict the emotion using LinearSVC classifier +For each emotion, generate a canned response. +Report precision, recall, F1 score for all the classifiers. +Important: Need canned response repository While the current scope focuses on canned responses, consider integrating advanced NLP models like GPT-3 From c9b325d764e0cb18038c7191e7de8de0b3a45324 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sat, 12 Oct 2024 21:02:40 -0400 Subject: [PATCH 12/61] got a detailed md that explains the process --- MentalHealthChatbotCodeDocument.md | 304 +++++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 MentalHealthChatbotCodeDocument.md diff --git a/MentalHealthChatbotCodeDocument.md b/MentalHealthChatbotCodeDocument.md new file mode 100644 index 0000000..e080bac --- /dev/null +++ b/MentalHealthChatbotCodeDocument.md @@ -0,0 +1,304 @@ +# Mental Health Chatbot Code Documentation + +## Mission Vision Goal + +The Mental Health Chatbot is designed to provide users with emotional support and factual mental health information through conversational interactions. When a user inputs text into the chatbot, the process is as follows: + +Query Classification: The input is first processed by the chatbot to determine whether the user is seeking information or emotional support. This classification is done using a logistic regression model that has been trained to recognize different types of queries. + +**Response Generation**: + +Informational Queries: If the query is classified as informational, the chatbot uses a K-Nearest Neighbors (KNN) model to search through a predefined FAQ dataset. The model finds the most relevant question and returns the corresponding factual answer. +Emotional Queries: If the query is classified as emotional, the chatbot processes the input to detect the user's emotional state using a Linear Support Vector Classifier (LinearSVC). The classifier predicts an emotion (e.g., sadness, anger, joy), and the chatbot responds with an empathetic message chosen from a predefined set of canned responses. +Text Encoding: Throughout these steps, the chatbot uses Sentence-BERT, a powerful natural language processing model, to convert the user's input into a numerical vector representation. This allows for efficient processing by machine learning models. + +**Personalization and Adaptability**: Although responses are currently based on predefined templates, the chatbot can be expanded in future iterations to include more dynamic, personalized responses using generative models like GPT. + +This document outlines how each part of the chatbot is implemented, including detailed explanations of its components, the machine learning models used, and how user input flows through the system to generate responses. + +## Table of Contents + +- [Class and Method Descriptions](#purpose) + - [MentalHealthChatbot Class](#mentalhealthchatbot-class) + - [\_\_init\_\_](#attributes) + - [load\_data](#load_data) + - [load\_canned\_responses](#load_canned_responses) + - [preprocess\_data](#preprocess_data) + - [train\_logistic\_classifier](#train_logistic_classifier) + - [build\_knn\_classifier](#build_knn_classifier) + - [train\_emotion\_classifier](#train_emotion_classifier) + - [get\_informational\_response](#get_informational_response) + - [get\_emotional\_response](#get_emotional_response) + - [respond\_to\_query](#respond_to_query) + - [run](#run) +- [How the Code Implements the Methodology](#how-the-code-implements-the-methodology) +- [Technologies Used](#technologies-used) +- [Future Improvements](#future-improvements) +- [Appendix](#appendix) + - [Data File Formats](#data-file-formats) + +## Purpose + +Initializes the chatbot with data paths and configuration parameters. + +### Arguments + +- `faq_data_path`: Path to the FAQ dataset CSV file. +- `empathetic_data_path`: Path to the empathetic dialogues dataset directory. +- `canned_responses_path`: Path to the canned responses CSV file. +- `test_size`: Fraction of the data to reserve for testing. +- `random_state`: Seed for random number generation (ensures reproducibility). + +### Attributes + +- Initializes machine learning models. +- Loads canned responses into a dictionary. + +--- + +## load_data + +### Purpose + +Loads the FAQ and empathetic dialogues datasets into Pandas DataFrames. + +### Process + +- Reads the FAQ CSV file containing questions and answers. +- Reads the empathetic dialogues CSV files (train, validation, test) containing conversational contexts and associated emotions. + +--- + +## load_canned_responses + +### Purpose + +Loads canned emotional responses from a CSV file into a dictionary. + +### Process + +- Reads the `canned_responses.csv` file. +- Converts it into a dictionary with emotions as keys and responses as values. + +### Error Handling + +Includes a try-except block to handle exceptions during file loading. + +--- + +## preprocess_data + +### Purpose + +Preprocesses and encodes text data for model training. + +### Process + +- Concatenates FAQ questions and empathetic dialogue contexts. +- Encodes text data into vector representations using Sentence-BERT. +- Creates labels: `0` for informational queries, `1` for emotional queries. + +--- + +## train_logistic_classifier + +### Purpose + +Trains a logistic regression classifier to categorize queries as informational or emotional. + +### Process + +- Splits data into training and testing sets. +- Trains the classifier on encoded data and labels. +- Evaluates the classifier using precision, recall, and F1 score. + +--- + +## build_knn_classifier + +### Purpose + +Builds a KNN model for retrieving informational responses. + +### Process + +- Encodes FAQ questions using Sentence-BERT. +- Fits the KNN model on the encoded questions. + +--- + +## train_emotion_classifier + +### Purpose + +Trains a LinearSVC model to predict emotions from emotional queries. + +### Process + +- Encodes empathetic dialogue contexts. +- Splits data into training and testing sets. +- Trains the LinearSVC model on encoded data and emotion labels. +- Evaluates the classifier using precision, recall, and F1 score. + +--- + +## get_informational_response + +### Purpose + +Generates responses for informational queries. + +### Process + +- Encodes the user's query. +- Uses the KNN model to find the closest matching question. +- Retrieves the corresponding answer from the FAQ dataset. + +### Notes + +The `distances` variable (not used in the current code) contains the distance metrics from the KNN model, which could be useful for future enhancements like confidence scoring. + +--- + +## get_emotional_response + +### Purpose + +Generates empathetic responses based on the predicted emotion. + +### Process + +- Encodes the user's query. +- Predicts the emotion using the trained emotion classifier. +- Retrieves the corresponding canned response from the dictionary. +- Provides a default response if the emotion is not found. + +--- + +## respond_to_query + +### Purpose + +Determines the type of query and generates an appropriate response. + +### Process + +- Encodes the user's query. +- Uses the logistic classifier to categorize the query. +- Routes the query to either `get_informational_response` or `get_emotional_response` based on the category. + +--- + +## run + +### Purpose + +Executes the main flow of the chatbot and handles user interaction. + +### Process + +- Calls methods to load data, preprocess data, and train models. +- Initiates an interactive loop where the user can input queries. +- Handles exit conditions when the user types 'exit' or 'quit'. + +--- + +# How the Code Implements the Methodology + +The code closely follows the methodology outlined in the project proposal: + +### Classification of User Queries + +- **Methodology**: Classify queries as emotional or technical. +- **Implementation**: Uses a logistic regression classifier trained on encoded representations of FAQ questions (technical) and empathetic dialogues (emotional) to categorize queries. + +### Handling Informational Queries + +- **Methodology**: Use a KNN classifier to generate canned informational responses. +- **Implementation**: Encodes FAQ questions and uses a KNN model to find the closest match to the user's query, returning the associated answer. + +### Handling Emotional Queries + +- **Methodology**: Predict emotion using a classifier and generate canned responses. +- **Implementation**: Trains a LinearSVC model on emotional contexts to predict the user's emotional state and retrieves a corresponding canned response from a CSV file. + +### Use of Pretrained Models + +- **Methodology**: Leverage advanced NLP models for encoding and classification. +- **Implementation**: Uses Sentence-BERT (specifically the 'paraphrase-MiniLM-L6-v2' model) to encode sentences into vectors suitable for machine learning tasks. + +### Evaluation Metrics + +- **Methodology**: Report precision, recall, and F1 score for classifiers. +- **Implementation**: Uses Scikit-learn's evaluation metrics to assess model performance and prints classification reports during training. + +### Canned Response Repository + +- **Methodology**: Need a repository of canned responses for different emotions. +- **Implementation**: Loads canned responses from `canned_responses.csv` into a dictionary, allowing easy expansion and management of responses. + +--- + +# Technologies Used + +- **Python**: Main programming language for the project. +- **Sentence-BERT**: For encoding text into numerical vector representations. +- **Scikit-learn**: Provides machine learning algorithms and evaluation tools. +- **Pandas**: For data manipulation and handling CSV files. +- **absl-py**: For parsing command-line arguments and configuring the application. + +--- + +# Future Improvements + +### Dynamic Response Generation + +Integrate language models like GPT-3 to generate more personalized and dynamic responses instead of relying solely on canned responses. + +### Emotion Intensity Analysis + +Enhance the emotion classifier to detect the intensity of emotions, allowing the chatbot to adjust its responses accordingly. + +### Contextual Awareness + +Implement a mechanism to maintain conversation context over multiple turns, providing a more coherent and engaging user experience. + +### Multilingual Support + +Expand the chatbot's capabilities to support multiple languages, making it accessible to a wider audience. + +### Improved Error Handling + +Enhance the robustness of the application by handling exceptions and edge cases more gracefully. + +### User Feedback Loop + +Incorporate a system for users to provide feedback on responses, enabling continuous improvement of the chatbot. + +--- + +# Appendix + +## Data File Formats + +### Mental_Health_FAQ.csv + +#### Columns + +- `Questions`: The FAQ questions related to mental health topics. +- `Answers`: The corresponding answers to the questions. + +### canned_responses.csv + +#### Columns + +- `emotion`: The emotion label (e.g., sadness, joy, anger). +- `response`: The canned response associated with the emotion. + +### empathetic-dialogues-contexts/train.csv + +#### Columns + +- `context`: The conversational context or situation. +- `emotion`: The emotion associated with the context. +- Other columns may include dialogue history or metadata. From 86525d05aeb06fe2a1925c1d9f5b80b0c9d7dad3 Mon Sep 17 00:00:00 2001 From: Navneet Verma Date: Sat, 26 Oct 2024 19:23:13 -0400 Subject: [PATCH 13/61] updated gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 70db19a..7b4a8c1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # Byte-compiled / optimized / DLL files __pycache__/ +*.pyc *.py[cod] *$py.class From d20d67bd9e2f2a08377421c0645e4d6929276142 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sat, 26 Oct 2024 19:36:43 -0400 Subject: [PATCH 14/61] moving up the canned response --- .gitignore | 2 +- data/canned_responses.csv | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 data/canned_responses.csv diff --git a/.gitignore b/.gitignore index 7b4a8c1..904e033 100644 --- a/.gitignore +++ b/.gitignore @@ -109,7 +109,7 @@ dmypy.json .jupyter/ # Ignore data files -data/ +# data/ # Ignore macOS specific files .DS_Store diff --git a/data/canned_responses.csv b/data/canned_responses.csv new file mode 100644 index 0000000..49357b8 --- /dev/null +++ b/data/canned_responses.csv @@ -0,0 +1,10 @@ +emotion,response +sadness,I'm sorry to hear that you're feeling sad. Would you like to talk about it? +anger,It seems like you're feeling angry. I'm here to listen if you'd like to share more. +joy,That's wonderful to hear! +fear,It's understandable to feel this way. Can you tell me more about what's making you feel afraid? +surprise,That sounds unexpected! How are you feeling about it? +disgust,I'm sorry that you're experiencing these feelings. Would you like to discuss it? +trust,I'm glad you feel that way. How can I assist you further? +anticipation,It's exciting to think about the future. What are you looking forward to? +# Add more emotions and corresponding responses as needed From eb376ec0ac0bdfec6041ce5a7af82d280963c3db Mon Sep 17 00:00:00 2001 From: Navneet Verma Date: Sat, 26 Oct 2024 20:46:20 -0400 Subject: [PATCH 15/61] Added comments and added new CSV file. --- data/Mental_Health_FAQ.csv | 601 +++++++++++++++++++++++++++++++++++++ mental_health_chatbot.py | 33 +- 2 files changed, 632 insertions(+), 2 deletions(-) create mode 100644 data/Mental_Health_FAQ.csv diff --git a/data/Mental_Health_FAQ.csv b/data/Mental_Health_FAQ.csv new file mode 100644 index 0000000..ddd4332 --- /dev/null +++ b/data/Mental_Health_FAQ.csv @@ -0,0 +1,601 @@ +Question_ID,Questions,Answers +1590140,What does it mean to have a mental illness?,"Mental illnesses are health conditions that disrupt a person’s thoughts, emotions, relationships, and daily functioning. They are associated with distress and diminished capacity to engage in the ordinary activities of daily life. +Mental illnesses fall along a continuum of severity: some are fairly mild and only interfere with some aspects of life, such as certain phobias. On the other end of the spectrum lie serious mental illnesses, which result in major functional impairment and interference with daily life. These include such disorders as major depression, schizophrenia, and bipolar disorder, and may require that the person receives care in a hospital. +It is important to know that mental illnesses are medical conditions that have nothing to do with a person’s character, intelligence, or willpower. Just as diabetes is a disorder of the pancreas, mental illness is a medical condition due to the brain’s biology. +Similarly to how one would treat diabetes with medication and insulin, mental illness is treatable with a combination of medication and social support. These treatments are highly effective, with 70-90 percent of individuals receiving treatment experiencing a reduction in symptoms and an improved quality of life. With the proper treatment, it is very possible for a person with mental illness to be independent and successful." +2110618,Who does mental illness affect?,"It is estimated that mental illness affects 1 in 5 adults in America, and that 1 in 24 adults have a serious mental illness. Mental illness does not discriminate; it can affect anyone, regardless of gender, age, income, social status, ethnicity, religion, sexual orientation, or background. +Although mental illness can affect anyone, certain conditions may be more common in different populations. For instance, eating disorders tend to occur more often in females, while disorders such as attention deficit/hyperactivity disorder is more prevalent in children. +Additionally, all ages are susceptible, but the young and the old are especially vulnerable. Mental illnesses usually strike individuals in the prime of their lives, with 75 percent of mental health conditions developing by the age of 24. This makes identification and treatment of mental disorders particularly difficult, because the normal personality and behavioral changes of adolescence may mask symptoms of a mental health condition. +Parents and caretakers should be aware of this fact, and take notice of changes in their child’s mood, personality, personal habits, and social withdrawal. When these occur in children under 18, they are referred to as serious emotional disturbances (SEDs)." +6361820,What causes mental illness?,"It is estimated that mental illness affects 1 in 5 adults in America, and that 1 in 24 adults have a serious mental illness. Mental illness does not discriminate; it can affect anyone, regardless of gender, age, income, social status, ethnicity, religion, sexual orientation, or background. Although mental illness can affect anyone, certain conditions may be more common in different populations. For instance, eating disorders tend to occur more often in females, while disorders such as attention deficit/hyperactivity disorder is more prevalent in children. Additionally, all ages are susceptible, but the young and the old are especially vulnerable. Mental illnesses usually strike individuals in the prime of their lives, with 75 percent of mental health conditions developing by the age of 24. This makes identification and treatment of mental disorders particularly difficult, because the normal personality and behavioral changes of adolescence may mask symptoms of a mental health condition. Parents and caretakers should be aware of this fact, and take notice of changes in their child’s mood, personality, personal habits, and social withdrawal. When these occur in children under 18, they are referred to as serious emotional disturbances (SEDs)." +9434130,What are some of the warning signs of mental illness?,"Symptoms of mental health disorders vary depending on the type and severity of the condition. The following is a list of general symptoms that may suggest a mental health disorder, particularly when multiple symptoms are expressed at once. +In adults: +Confused thinking +Long-lasting sadness or irritability +Extreme highs and lows in mood +Excessive fear, worrying, or anxiety +Social withdrawal +Dramatic changes in eating or sleeping habits +Strong feelings of anger +Delusions or hallucinations (seeing or hearing things that are not really there) +Increasing inability to cope with daily problems and activities +Thoughts of suicide +Denial of obvious problems +Many unexplained physical problems +Abuse of drugs and/or alcohol + In older children and pre-teens: +Abuse of drugs and/or alcohol +Inability to cope with daily problems and activities +Changes in sleeping and/or eating habits +Excessive complaints of physical problems +Defying authority, skipping school, stealing, or damaging property +Intense fear of gaining weight +Long-lasting negative mood, often along with poor appetite and thoughts of death +Frequent outbursts of anger + In younger children: +Changes in school performance +Poor grades despite strong efforts +Excessive worrying or anxiety +Hyperactivity +Persistent nightmares +Persistent disobedience and/or aggressive behavior +Frequent temper tantrums" +7657263,Can people with mental illness recover?,"When healing from mental illness, early identification and treatment are of vital importance. Based on the nature of the illness, there are a range of effective treatments available. For any type of treatment, it is essential that the person affected is proactive and fully engaged in their own recovery process. +Many people with mental illnesses who are diagnosed and treated respond well, although some might experience a return of symptoms. Even in such cases, with careful monitoring and management of the disorder, it is still quite possible to live a fulfilled and productive life." +1619387,What should I do if I know someone who appears to have the symptoms of a mental disorder?,"Although this website cannot substitute for professional advice, we encourage those with symptoms to talk to their friends and family members and seek the counsel of a mental health professional. The sooner the mental health condition is identified and treated, the sooner they can get on the path to recovery. +If you know someone who is having problems, don't assume that the issue will resolve itself. Let them know that you care about them, and that there are treatment options available that will help them heal. Speak with a mental health professional or counselor if you think your friend or family member is experiencing the symptoms of a mental health condition. If the affected loved one knows that you support them, they will be more likely to seek out help." +1030153,How can I find a mental health professional for myself or my child?,Feeling comfortable with the professional you or your child is working with is critical to the success of the treatment. Finding the professional who best fits your needs may require research. Start by searching for providers in your area. +8022026,What treatment options are available?,"Just as there are different types of medications for physical illness, different treatment options are available for individuals with mental illness. Treatment works differently for different people. It is important to find what works best for you or your child." +1155199,"If I become involved in treatment, what do I need to know?","Since beginning treatment is a big step for individuals and families, it can be very overwhelming. It is important to be as involved and engaged in the treatment process as possible. Some questions you will need to have answered include: +What is known about the cause of this particular illness? +Are there other diagnoses where these symptoms are common? +Do you normally include a physical or neurological examination? +Are there any additional tests or exams that you would recommend at this point? +Would you advise an independent opinion from another psychiatrist at this point? +What program of treatment is the most helpful with this diagnosis? +Will this program involve services by other specialists? If so, who will be responsible for coordinating these services? +What do you see as the family’s role in this program of treatment? +How much access will the family have to the individuals who are providing the treatment? +What medications are generally used with this diagnosis? +How much experience do you have in treating individuals with this illness? +What can I do to help you in the treatment?" +7760466,What is the difference between mental health professionals?,"There are many types of mental health professionals. The variety of providers and their services may be confusing. Each have various levels of education, training, and may have different areas of expertise. Finding the professional who best fits your needs may require some research." +2553795,How can I find a mental health professional right for my child or myself?,Feeling comfortable with the professional you or your child is working with is critical to the success of your treatment. Finding the professional who best fits your needs may require some research. +1259439,If I become involved in treatment what do I need to know?,"Beginning treatment is a big step for individuals and families and can be very overwhelming. It is important to continue involvement in the treatment process as much as possible. Some questions you will need to have answered include: +What is known about the cause of this particular illness? +Are there other diagnoses where these symptoms are common? +Do you normally include a physical or neurological examination? +Are there any additional tests or exams that you would recommend at this point? +Would you advise an independent opinion from another psychiatrist at this point? +What program of treatment is the most helpful with this diagnosis? +Will this program involve services by other specialists? If so, who will be responsible for coordinating these services? +What do you see as the family’s role in this program of treatment? +How much access will the family have to the individuals who are providing the treatment? +What medications are generally used with this diagnosis? What is the biological effect of this medication, and what do you expect it to accomplish? What are the risks associated with the medication? How soon will we be able to tell if the medication is effective, and how will we know? +How much experience do you have in treating individuals with this illness? +What can I do to help you in the treatment?" +4197817,Where else can I get help?,"Where you go for help will depend on the nature of the problem and/or symptoms and what best fits you. Often, the best place to start is by talking with someone you trust about your concerns, such as a family member, friend, clergy, healthcare provider, or other professionals. Having this social support is essential in healing from mental illness, and you will be able to ask them for referrals or recommendations for trusted mental health practitioners. Search for mental health resources in your area. +Secondly, there are people and places throughout Nebraska that provide services to talk, to listen, and to help you on your journey to recovery. Thirdly, many people find peer support a helpful tool that can aid in their recovery. There are a variety of organizations that offer support groups for consumers, their family members, and friends. Some support groups are peer led while others may be led by a mental health professional." +3388962,What should I know before starting a new medication?,"The best source of information regarding medications is the physician prescribing them. He or she should be able to answer questions such as: 1. What is the medication supposed to do? 2. When should it begin to take effect, and how will I know when it is effective? 3. How is the medication taken and for how long? What food, drinks, other medicines, and activities should be avoided while taking this medication? 4. What are the side effects and what should be done if they occur? 5. What do I do if a dose is missed? 6. Is there any written information available about this medication? 7. Are there other medications that might be appropriate? 8. If so, why do you prefer the one you have chosen? 9. How do you monitor medications and what symptoms indicate that they should be raised, lowered, or changed? 10. All medications should be taken as directed. Most medications for mental illnesses do not work when taken irregularly, and extra doses can cause severe, sometimes dangerous side effects. Many psychiatric medications begin to have a beneficial effect only after they have been taken for several weeks." +5343181,"If I feel better after taking medication, does this mean I am ""cured"" and can stop taking it?","It is not uncommon for people to stop taking their medication when they feel their symptoms are under control. Others may choose to stop taking their medication because of its side effects, without realizing that most side effects can be effectively managed. While it may seem reasonable to stop taking the medication, the problem is that most often, the symptoms will return. If you or your child is taking medication, it is very important that you work together with your doctor before making decisions about any changes in your treatment.\nAnother problem with stopping medication, particularly for stopping it abruptly, is that you may develop withdrawal symptoms that can be very unpleasant. If you and your doctor feel a trial off your medicine is a good idea, it is necessary to slowly decrease the dosage of medications so that these symptoms don’t occur.\nIt is important that your doctor and pharmacist work together to make sure your medications are working safely and effectively. You should talk with them about how you are doing and if there are side effects that make you unwilling to continue treatment. They will work with you to develop strategies for minimizing these side effects, or will create a plan for switching to a different treatment that will be a better fit." +5778437,How can I get help paying for my medication?,"Some pharmaceutical companies offer prescription assistance programs to individuals and families with financial needs, while others offer special drug discount cards. These programs typically require a doctor’s consent and proof of your financial status. They may also require that you have either no health insurance or no prescription drug benefit through your health insurance.\nIn addition, there are prescription programs you might qualify for. Visit Healthfinder.gov to learn more." +9541219,Where can I go to find therapy,"Different kinds of therapy are more effective based on the nature of the mental health condition and/or symptoms and the person who has them (for example, children will benefit from a therapist who specializes in children’s mental health). However, there are several different types of treatment and therapy that can help." +3268009,Where can I learn about types of mental health treatment?,"Mental health conditions are often treated with medication, therapy or a combination of the two. However, there are many different types of treatment available, including Complementary & Alternative Treatments, self-help plans, and peer support. Treatments are very personal and should be discussed by the person with the mental health conditions and his or her team." +3340726,What are the different types of mental health professionals?,There are many types of mental health professionals. Finding the right one for you may require some research. +9539480,Where can I go to find a support group?,"Many people find peer support a helpful tool that can aid in their recovery. There are a variety of organizations that offer support groups for consumers, their family members and friends. Some support groups are peer-led, while others may be led by a mental health professional." +4211025,Where can I go to find inpatient care?,"If you or someone you know is in crisis, inpatient care can help. Inpatient care can help people stabilize on new medications, adjust to new symptoms, or get the help they need." +4031860,Where can I go to find other local services?,"There are likely plenty of resources that can be used to help you find mental health treatment in your community. These resources can help you find the right therapist, and enable you to better understand viable treatment options and the treatment process." +5215843,Where can I learn more information about clinical trials?,"Sometimes, consumers of mental health services may consider participating in a research study when they have not experienced improvement despite having tried a variety of medications and treatments. Research studies (also known as clinical trials) may involve the use of new medications or new treatment approaches whose safety and effectiveness is being tested. While we support innovation in the field, consumers should be cautioned that there are risks associated with clinical trials – make sure you’re aware of them before you enroll." +8927672,Where can I learn more information about creating a Psychiatric Advance Directive?,"Similar to a medical advance directive or a health care power of attorney, a psychiatric advance directive is a legal document completed in a time of wellness that provides instructions regarding treatment or services one wishes to have or not have during a mental health crisis, and may help influence his or her care." +7728364,What is mental health?,"We all have mental health which is made up of our beliefs, thoughts, feelings and behaviours." +4194958,What do I do if the support doesn’t help?,"It can be difficult to find the things that will help you, as different things help different people. It's important to be open to a range of approaches and to be committed to finding the right help and to continue to be hopeful, even when some things don't work out." +1667863,Can you prevent mental health problems?,"We can all suffer from mental health challenges, but developing our wellbeing, resilience, and seeking help early can help prevent challenges becoming serious." +8904276,Are there cures for mental health problems?,"It is often more realistic and helpful to find out what helps with the issues you face. Talking, counselling, medication, friendships, exercise, good sleep and nutrition, and meaningful occupation can all help." +4283807,What causes mental health problems?,"Challenges or problems with your mental health can arise from psychological, biological, and social, issues, as well as life events." +8690253,What do I do if I’m worried about my mental health?,"The most important thing is to talk to someone you trust. This might be a friend, colleague, family member, or GP. In addition to talking to someone, it may be useful to find out more information about what you are experiencing. These things may help to get some perspective on what you are experiencing, and be the start of getting help." +2973656,How do I know if I’m unwell?,"If your beliefs , thoughts , feelings or behaviours have a significant impact on your ability to function in what might be considered a normal or ordinary way, it would be important to seek help." +4759773,What should I do if I’m worried about a friend or relative?,This may depend on your relationship with them. Gently encouraging someone to seek appropriate support would be helpful to start with. +1511075,How do I deal with someone telling me what to do?,"Some people may advise you on good evidence of what works with the best of intentions, but it's important to find out what works best for you." +7069853,Why do I need to keep informed?,"It may be tempting to try to block out the world altogether to avoid bad news, but it's important to keep yourself informed. We all have to step up during a pandemic because we all have a part to play in reducing the spread of the virus. It's important that you know what must be done and how you should do it. This is important for the health of your neighbours and your own mental health, and taking action can help counter difficult feelings like hopelessness and despair. + One study from people in China found that people who had reliable up-to-date information about the coronavirus and COVID-19 illness and accurate instructions on how they should act (such as instructions around hand-washing and wearing a mask) felt more resilient and felt better able to handle the virus. People who received good, accurate information reported lower levels of stress, anxiety, and depression. This research is available for free at www.mdpi.com/1660-4601/17/5/1729. + Of course, it's okay to set limits. Staying informed does not mean that you have to follow the news all day. Check in a few times a day, sticking to trusted sources and media outlets. While social media can be a great way to keep in touch with family and friends, social media can also amplify bad advice, vague or untrue stories, and other unhelpful information. Be sure to use good critical thinking skills." +4181750,How can I tell if health information is good or bad?,"Anyone can post anything online. It's up to the readers to think critically about information to decide if it seems helpful, truthful, or safe. Here are key points to keep in mind as you determine which information is worth considering and which information doesn't pass the test. + It's so easy to spread information online, and we can't assume that the source we're reading or watching is the original source. Before you can evaluate anything, you need to know where the claims come from and determine if it's a reliable source. + Reliable sources on the coronavirus and COVID-19 illness include the World Health Organization (WHO), Government of Canada ministries and agencies like Health Canada and the Public Health Agency of Canada, the Government of BC ministries and agencies like the BC Ministry of Health, and the BC Centre for Disease Control (BCCDC). Scientists and researchers at universities and other institutions and health sciences professionals are also important sources of information. + Headlines and titles need to be simple and short, so they can sometimes be misleading on their own. They may also be purposefully shocking or controversial to entice you to click to read more. + Websites that belong to governments, government-funded agencies, well-known health providers, universities, or groups of medical professionals are generally the most reliable. Be careful of sites that don't list the author or don't tell you much about themselves. Double-check the author and the credentials of any 'experts' quoted or cited to see if they are actually experts in the topic being discussed. + Can you find other evidence from other sources to support the claims? Does the author list their sources? Are the sources legitimate, like research journals? + Unhelpful sources want you to feel a certain way: scared, angry, distrustful, vulnerable. Phrases like ""Skyrocketing rates of infection"" are sensational and they're meant to make people feel afraid. On the other hand, factual statements like ""We have 50 new cases in BC"" give you important information without playing into your emotions. Helpful news or information sources want you feel informed and empowered. + Who is paying for the site? What products or services are being advertised? What links or other sites do they promote? Are you learning something from a story or experience, or are you simply being directed to buy a product or service? + Social media can be a great way to keep in touch with family and friends, especially as we practice physical distancing or self-isolation. Social media can also be an important way to learn from health experts and connect to support services and mutual aid groups in your community. + Like any other source of information, it's important to use good critical thinking skills when you use social media. Studies find that searching for health information on social media generally has very mixed results. You'll see both very poor-quality sources next to good-quality sources, and it's up to you to decide which is which. In addition, social media posts tend to be short and rarely capture everything you need to consider. They are generally useful as a way to start learning or exploring different points of view rather than a place to gather all the information. + Visit www.mediasmarts.ca to learn more about digital and media literacy + Visit www.healthnewsreview.org to learn more about thinking critically around health claims (this resource is no longer updated daily, but all toolkits and lessons are still available) + This page is adapted from the Evaluating Mental Health and Substance Use Information info sheet." +2554141,Why do I need a plan?,"There are a lot of things you can't control. You can't control what happens next, how governments respond, or how your neighbours react to the pandemic. What you can do is make a plan and decide how you'll manage the things you do control, like your ability to stay safe, follow public health measures, stay connected with loved ones, and take care of your mental and physical health. + Events like a pandemic change a lot over time, and that uncertainty can add to fear and stress. The truth is that we don't know what will happen next—but that doesn't mean we're all helpless. You can do a lot. You can: + Map out a daily schedule, including times you can connect with loved ones online or by phone + Plan out daily tasks and goals + Give yourself a schedule to look up current information + Make sure you have 14 days of healthy food and household supplies at home + Keep medications on hand and talk to your doctor for advice if you're at increased risk + Educate yourself on public health measures and figure out how you'll follow those instructions + Figure out how you'll manage increased childcare demands, working for home, or other changes to your usual routine + Determine if you'll need financial supports like the Canada Emergency Response Benefit or BC Temporary Rent Supplement if your job is affected by COVID-19. If you anticipate a need, you can find application instructions and gather any documents or other pieces of information ahead of time + Figure out how you'll manage times when you feel overwhelmed or hopeless, like calming activities, the number for a local support or crisis line, a video chat with a loved one, or a way to connect with your mental health care provider + Look for local support organizations, neighbourhood groups, or mutual aid groups if you need extra help or support or would like to help others in your community + Some planning will be straightforward, but you may also encounter situations or times when it's harder to see a solution or good plan of action. This is a great time to practice problem-solving skills. Problem-solving is a method that helps you break down a complicated situation into manageable pieces, look for realistic and unbiased information, brainstorm possible solutions, and test the solutions that you think might work well. Problem-solving is a helpful skill no matter what else is going on in the world, and it's an empowering, methodical approach when you might otherwise feel overwhelmed or lost. + Check out the following resources for more information about problem-solving: + Wellness Module 4: Problem-Solving: www.heretohelp.bc.ca/wellness-module/wellness-module-4-problem-solving + Problem-solving worksheet from Anxiety Canada: www.anxietycanada.com/sites/default/files/ProblemSolving.pdf + Effective Problem-Solving in The Antidepressant Skills Workbook: psychhealthandsafety.org/asw" +9100298,How can I maintain social connections? What if I feel lonely?,"A lot of people are alone right now, but we don't have to be lonely. We're all in this together. + While you may be physically separated from friends, family members, and other loved ones, it has never been more important to maintain those social connections. Social connections are an opportunity to seek and share support, talk through difficult feelings, share a laugh, keep up-to-date with loved ones, and help each other cope. This pandemic is a lot for one person to deal with on their own. While measures like physical distancing and self-isolation are necessary to slow the spread of the virus, the physical separation can amplify a lot of challenging emotions like loneliness and fear. + Think about the different ways to connect that are most meaningful for you. For example, you might prefer a video chat over a phone call, or you might prefer to text throughout the day rather than one set time for a video call. Then, work with your social networks to make a plan. You might video chat with your close friends in the evening and phone a family member once a week. + Remember to be mindful of people who may not be online. Check in by phone and ask how you can help. + The quality of your social connections matter. Mindlessly scrolling through social media and liking a few posts usually doesn't build strong social connections. Make sure you focus on strategies that actually make you feel included and connected. If your current strategies don't help you feel connected, problem-solve to see if you can find a solution. + Everyone feels lonely at times—maybe you recently moved to a new city, are changing your circle of friends, lost someone important in your life, or lost your job and also lost important social connections with coworkers. Other people may have physical connections to others but may feel like their emotional or social needs aren't met. Measures like social distancing or self-isolation can make loneliness feel worse no matter why you feel lonely now. + Reach out to the connections you do have. Suggest ways to keep in touch and see if you can set a regular time to connect. People may hesitate to reach out for a lot of different reasons, so don't be afraid to be the one who asks. + Look for local community support groups and mutual aid groups on social media. This pandemic is bringing everyone together, so look for opportunities to make new connections. These groups are a great way to share your skills and abilities or seek help and support. + Look for specialized support groups. Support groups are moving online, and there are a lot of different support lines to call if you need to talk to someone. To find community services in BC, call or text 211 or visit www.bc211.ca. + If you need extra support, you can talk with a psychologist or counsellor for free: + You can access a free phone call with a Registered Psychologist though the Covid-19 Psychological Support Service from the BC Psychological Association. Visit www.psychologists.bc.ca/covid-19-resources. + You can access free, phone-based, short-term support with a counsellor from a new group called the BC COVID-19 Mental Health Network. Email bccovidtherapists@gmail.com to receive an appointment time. + For youth people ages 12-24, you can talk with a counsellor for free through Foundry Virtual. Visit foundrybc.ca/get-support/virtual/. + Call the BC Mental Health Support Line at 310-6789. It’s available 24/7. + Chat online with a Crisis Center volunteer at www.crisiscentrechat.ca (daily between noon and 1:00am) + For older adults: Call the Seniors Distress Line at 604-872-123 + For youth and young adults: Chat online with a volunteer at www.YouthinBC.com (daily between noon and 1:00am) + For children and youth: Call the Kids Help Phone at 1-800-668-6868 or visit kidshelpphone.ca + For tips on managing loneliness, check out the following resources: + Coping with Loneliness from the Canadian Mental Health Association: cmha.bc.ca/documents/coping-with-loneliness/ + Loneliness and Social Connection issue of Visions Journal at www.heretohelp.bc.ca/visions/loneliness-and-social-connection-vol14 + Wellness Module 3: Social Support at www.heretohelp.bc.ca/wellness-module/wellness-module-3-social-support" +2884887,How can I take care of my physical health?,"Taking care of your physical health is also good for your mental health. It's more important than ever to keep yourself healthy. + Try to eat as well as you can. It may be easier to reach for unhealthier comfort foods and snacks while you spend more time at home, but try to keep a balanced approach. When you stock up on groceries, don’t ignore fresh fruit and vegetables—we still have everything we need to prepare food. Now that we're advised to limit the amount of time we spend in public spaces like grocery stores, this is a great time to try out new fruits and vegetables that keep at home for longer periods of time. + If it's safer for you to stay home or you are in self-isolation, reach out for help. Many grocery stores and meal prep services offer safe, no-contact delivery. You can also ask family or friends to bring you groceries, or look for local COVID-19 support groups on social media. It's safest if others leave food and other supplies outside of your door to avoid spreading the virus. + Exercise is an important part of mental health and well-being, stress management, and health sleep. However, it's something that many people give up when they start to feel stressed or overwhelmed. + If it's safe for you to do so, spend time outside. You should still avoid busy areas or groups and stay at least two metres away from others, but there is no reason to avoid walks, runs, or other safe outdoor activities. (Note that some municipalities, BC Parks, and Parks Canada have restricted some outdoor spaces to reduce crowds, so check the status of your local parks or trails and respect closures—they're just keeping everyone safe.) + If you prefer to exercise indoors, you can also find many different exercises classes online. You can try yoga, follow a barre class, work on your cardio, pick up a new dumbbell routine, and keep up with Crossfit WODs from the comfort of your living room. Look for no-equipment exercise routines or classes if you don't already have equipment. + Poor sleep can make even simple problems feel a lot worse than they really are. Poor sleep can affect your mood, your outlook, and your patience. Unfortunately, stress and anxiety can really take a toll on your sleep. If you're having a hard time sleeping, be proactive and practice healthy sleep habits. For more, check out Wellness Module 6: Getting a Good Night's Sleep at www.heretohelp.bc.ca/wellness-module/wellness-module-6-getting-a-good-nights-sleep. + If you have other health problems like a chronic illness, check in with your doctor or health care team to see if you need to take any additional measures or precautions. Remember to plan ahead and do what you can to keep prescription or over-the-counter medications, medical supplies, supplements, or other health needs on hand." +9250044,How can I use distraction to manage difficult thoughts or feelings?,"Distraction is a very valid tool to help you cope when everything feels overwhelming or when you feel lonely or isolated. + If you don't have a lot of energy or focus right now, try low-effort distractions like watching TV, browsing Youtube, listening to a podcast or audiobook, playing a game on your phone, reading an easy book or magazine, or working on a simple art project. + If you have more energy and focus, give yourself a to-do list every day: you can clean and take care of projects around your home, work on hobbies, connect with family or friends, read a new book and catch up on your favourite TV shows. You can find interesting opportunities to take online courses from universities all over the world through MOOCs and other online learning platforms, you can learn a new language online or through apps, and you can learn new hobbies and activities. As more people have to practice social distancing or self-isolation, people are finding creative ways to bring the world into their homes: you can tour museums and art galleries, Skype with a scientist, watch animals at zoos and nature preserves, and more. + When normal schedules are disrupted, it's easy to fall into unhelpful habits. Look for ways to keep yourself on track with healthier habits. You could set yourself goals every day or turn activities into a fun competition with friends or family—whoever takes the most language classes wins! + Many communities are using social media platforms like Facebook to organize support and help for neighbours. If you are healthy and it's safe to do so, you can sign up to walk dogs, pick up groceries and household supplies, and help others who can't go out at the moment. This can be a great way to make new connections in your area, and helping others is good for your own mental health. Just be sure to follow good hygiene practices and physical distancing—your own health is important." +3597720,How can I reframe the situation and find more balanced perspectives?,"How you think about something impacts your feelings and your behaviours. + When we feel stressed out, angry, or fearful, it's hard to look at the situation realistically and see all of the options we have. (Remember: we all control our own actions and reactions, no matter what's going on in the world. We can call do something about this pandemic.) + People often overestimate the negative parts—their own feelings, their own abilities to manage a difficult situation, or the situation itself—and underestimate positive parts—their own abilities to care for themselves and loved ones, their support networks, and opportunities. + How does the thought ""We're never going to make it through this!"" make you feel? It likely doesn't feel good—and it isn't even true. + Challenging negative, unhelpful thoughts can improve your mood, validate your ability to get through this, and help you see new options or opportunities to stay well. + Stop and notice thoughts that come up. How do they make you feel? Do your thoughts seem realistic if you look at the situation more objectively? How can you reframe the thought to make it more productive or hopeful? Can you find any positive aspects or think of new ways to approach the situation? + Here are a few example: + ""I'm so mad that my event was cancelled! This sucks!"" + ""I know this is the safer option for everyone. When it's rescheduled, I'll enjoy it more because I won't have to worry about getting sick or spreading the illness."" + ""I hate spending so much time at home. This is so boring."" + ""I'm doing my part to keep my neighbours safe. It's worth it because it keeps people healthy."" + ""I'm having a hard time getting used to my new schedule. This is so frustrating."" + ""I'll get used to this soon, just like I adapted the last time I had to change my schedule. Now that I'm home more, I'll have more time to finish the projects I haven't touched in months and I'm excited to see the end results. + ""I'm really scared and I don't know what to do. I feel so overwhelmed right now."" + ""It makes sense that I feel scared—people are getting sick and we don't know when things will go back to normal. But there are a lot of things I can do to keep healthy, and I'm going to do some research so I can do my best. When I focus on the things I can do, everything feels more manageable."" + ""We're going to be stuck inside forever. I'm already sick of this."" + ""I understand that it will take some time to manage COVID-19, and I trust that health care professionals and scientists are working as fast as they can. I know this will end eventually and life will go back to normal."" + The goal is not to ignore the bad or uncomfortable parts of the situation or deny that there's a problem. Instead, this exercise can help you understand the situation more realistically and see the parts that you can control right now." +7535002,How can I challenge thinking traps?,"What you tell yourself about a situation affects how you feel and what you do. Sometimes your interpretation of a situation can get distorted and you only focus on the negative aspects—this is normal and expected. However, when you interpret situations too negatively, you might feel worse. You're also more likely to respond to the situation in ways that are unhelpful in the long term. + These automatic thoughts and assumptions are sometimes called thinking traps. Everyone falls into unbalanced thinking traps from time to time. You're most likely to distort your interpretation of things when you already feel sad, angry, anxious, depressed or stressed. You're also more vulnerable to thinking traps when you're not taking good care of yourself, like when you're not eating or sleeping well. + Here are some common thinking traps: + Thinking that a negative situation is part of a constant cycle of bad things that happen. People who overgeneralize often use words like ""always"" or ""never."" + I was really looking forward to that concert, and now it’s cancelled. This always happens to me! I never get to do fun things! + Seeing things as only right or wrong, good or bad, perfect or terrible. People who think in black and white terms see a small mistake as a total failure. + I wanted to eat healthier, but I ate too many snacks today. This plan is a total failure! + Saying only negative things about yourself or other people. + I made a mistake. I'm stupid! My boss told me that I made a mistake. My boss is a total jerk! + Predicting that something bad will happen without any evidence. + I've been doing what I can to stay home and reduce the risks, but I just know that I'm going to get sick. + Focusing only on the negative parts of a situation and ignoring anything good or positive. + I know there's a lot I can do at home, but I'm just so sick of this. Everything is terrible. + Believing that bad feelings or emotions reflect the situation. + I feel scared and overwhelmed right now, so that must mean everything is very bad and will never get better. + Telling yourself how you ""should"" or ""must"" act. + I should be able to handle this without getting upset and crying! + Here are helpful strategies to challenge common thinking traps. Many people find their mood and confidence improve after working through these skills. You can also find worksheets to help you go through each step at www.heretohelp.bc.ca. + Don't try to get out of a thinking trap by just telling yourself to stop thinking that way. + This doesn't let you look at the evidence and challenge the thinking trap. When you try and push upsetting thoughts away, they are more likely to keep popping back into your mind. + Ask yourself the following questions when something upsetting happens: + What is the situation? What actually happened? Only include facts that everyone would agree on. + What are your thoughts? What are you telling yourself? + What are your emotions? How do you feel? + What are your behaviours? How are you reacting? What are you doing to cope? + Take a look at the thoughts you've listed. Are you using any of the thinking traps and falling into distorted thinking patterns? It's common to fall into more than one thinking trap. Go back to the thinking trap list and identify which ones apply to you and your current situation. + The best way to break a thinking trap is to look at your thoughts like a scientist and consider the hard facts. Use the evidence you've collected to challenge your thinking traps. Here are some ways to do that: + Try to find evidence against the thought. If you make a mistake at work, you might automatically think, ""I can't do anything right! I must be a terrible employee!"" When this thought comes up, you might challenge it by asking, ""Is there any evidence to support this thought? Is there any evidence to disprove this thought?"" You might quickly realize that your boss has complimented your work recently, which doesn't support the idea that you're a bad employee. + Ask yourself, ""Would I judge other people if they did the same thing? Am I being harder on myself than I am on other people?"" This is a great method for challenging thinking traps that involve harsh self-criticism. + Find out whether other people you trust agree with your thoughts. For example, you might have trouble with one of your kids and think, ""Good parents wouldn't have this kind of problem."" To challenge this thought, you can ask other parents if they've ever had any problems with their kids. + Test your beliefs in person. For example, if you think that your friends don't care about you, call a few friends and make plans to start a regular video call. If you assumed that they will all say no, you may be pleasantly surprised to hear that they do want to see you. + Once you have worked through some challenges, try to think of a more balanced thought to replace the old thinking traps. Let's use the following example: + I feel sad and overwhelmed. I'm having a hard time figuring out what to do. + I'm the worst! I should be able to handle this! + Labeling + 'Should' statements + Examine the evidence: I have a lot of challenges right now. I'm worried about my family and everything seems to change so quickly. I've successfully handled complicated situations in the past, so I know I can do this. + It's okay to feel upset right now—there's a lot going on. I'm going to think about how I got through past situations and see what worked for me. I'm trying to do a lot on my own, so I'm going to talk to my family so we can make a plan and work together. + Try the Healthy Thinking Worksheet at www.heretohelp.bc.ca + Check out Anxiety Canada's articles Helpful Thinking and Thinking Traps + This page is adapted from Wellness Module 8: Healthy Thinking at www.heretohelp.bc.ca/wellness-module/wellness-module-8-healthy-thinking." +4134858,How can I manage grief?,"While a lot of people think of grief in terms of losing a person or pet, grief can come up whenever you lose something important. This includes: + Losing security, like losing your job or wondering how long you'll be able to pay rent + Losing stability or routine, like finding yourself working from home or navigating childcare closures + Losing your sense of safety, like fearing you or someone you love might end up with COVID-19 + Losing your social relationships, like missing time with family and friends now that everyone must practice physical distancing or self-isolation + Losing hope for the future, like feeling that life will never go back to normal + Losing important goals, like finding your classes, sports competitions, or performances are cancelled for the foreseeable future + Losing important milestone celebrations like graduation ceremonies and weddings + Grief bring up complicated feelings. You might feel sad, angry, frustrated, fearful, or hopeless. You may have a hard time eating or sleeping, or feel very tense. You may feel overwhelmed and tired. You may wonder if life will ever feel normal again. + Everyone grieves in their own way and their own time. Here are some strategies to try as you navigate your own journey. + Acknowledge and express your feelings in a healthy way. Give your feelings a name and find healthy ways to express them, such as by talking with a friend, writing in a journal, or making art. + Give yourself as much time as you need. Grief follows its own schedule. Give yourself permission to use this time to take care of your well-being. Let go of expectations, tasks, or other obligations that can wait. + Seek support. Grief can feel very isolating, even though a lot of people are experiencing some sort of loss right now. Reach out to friends or family and share your feelings. Look for ways to help and support each other. + Take care of yourself. Ignoring health and well-being can make difficult experiences feel worse. Eat as well as you can, try to get enough sleep, spend time outside if it's safe for you to do so, and exercise regularly. Think about self-care activities or strategies that have helped you cope with challenging situations in the past and make time for those activities. + Know that feelings of grief will pass. Grief may feel intense at times, but those feelings will become more manageable over time and will eventually pass. + Connect with a mental health professional if you're having a hard time. If you're having a hard time getting through the day, coping in unhealthy ways, or having a hard time managing difficult thoughts or feelings, it's a good idea to seek help from a professional like a psychologist or counsellor—many now offer online or phone appointments. To find help: + For everyone + BC Psychological Association: Find a Registered Psychologist at www.psychologists.bc.ca/find_psychologist + BC Association of Clinical Counsellors: Find a Registered Clinical Counsellor at bc-counsellors.org + BC Mental Health Support Line: call 310-6789 (no area code) for to learn about services in your area or just to talk with someone right now + For young people + Kids Help Phone: Talk to a counsellor at 1-800-668-6868 or chat at kidshelpphone.ca (available 24/7) + Foundry: Contact your local Foundry office at foundrybc.ca for Foundy Virtual and information about local resources (for youth ages 12-24) + Youth in BC: Chat with a crisis line responder at youthinbc.com (available every day from noon – 1:00am) + That Discomfort You're Feeling Is Grief in Harvard Business Review at hbr.org/2020/03/that-discomfort-youre-feeling-is-grief + Grieving from the Canadian Mental Health Association at cmha.ca/documents/grieving + Coping with Grief and Loss from Mind Your Mind at mindyourmind.ca/wellness/coping-grief-and-loss" +9676742,"How can I find a doctor, psychiatrist, psychologist, or counsellor?","To find a family doctor (general physician), visit the College of Physicians and Surgeons of BC to use their Find a Physician tool. You can also see a family doctor at a local walk-in clinic, though it’s helpful to find a regular doctor if you have ongoing care needs. You can also find a psychiatrist through the College of Physicians and Surgeons of BC. Be aware that you almost always need a doctor’s referral to see a psychiatrist. + You can find a registered psychologist through the BC Psychological Association and the College of Psychologists of BC. + To find a clinical counsellor, visit the BC Association of Clinical Counsellors. + For more on the differences between these service providers, see the article The Right Path for You: Finding your way to and through services in BC from the Finding the Right Help – Navigating the System issue of Visions Journal." +2612846,How can I see a psychiatrist?,"A psychiatrist is a specialist doctor. In BC, you need to ask your doctor for a referral. If you don't see a regular family doctor, you can ask any doctor at a walk-in clinic for a referral. + In some cases, you may be able to ""self-refer"" or make an appointment with a mental health program yourself, but that may not get you access to a psychiatrist. Contact your local mental health centre to see what's available in your area. You can search for mental health centres at www.gov.bc.ca/mentalhealth. If you need help finding your local mental health centre, call HealthlinkBC at 811 or visit www.healthlinkbc.ca and use the Find Health Service tool." +3166337,How can I see a psychologist?,"To find a Registered Psychologist, visit the BC Psychological Association. You can make an appointment on your own. You don’t need a doctor’s referral to see a psychologist. + Registered Psychologists are not usually covered by MSP, so you’ll have to pay for the cost of the appointment yourself. Workplace extended health benefits or Employee (Family) Assistance Programs may cover some costs. Some psychologists offer a sliding scale based on your income. If you’re facing financial hardship, you can ask when you make the appointment. + If you want to learn more about lower-cost options to access counselling (though not usually by Registered Psychologists), email us with your location and our information and referrals team can see what options there may be in your community. + If you see a Registered Psychologist through a public mental health centre like a mental health team or outpatient psychiatry program, it will still be covered by MSP. Talk to your care provider if you have questions or want to learn more." +7009409,How can I see a counsellor?,"You can find directories of counsellors through their professional organizations. + Registered Clinical Counsellors: visit the BC Association of Clinical Counsellors + Canadian Certified Counsellors: visit the Canadian Counselling and Psychotherapy Association + Canadian Professional Counsellors: visit the Canadian Professional Counsellors Association + For more specialized counselling professionals, such as Marriage and Family Therapists, see the Federation of Associations for Counselling Therapists in British Columbia. + You can make an appointment on your own. You don’t need a doctor’s referral to see a counsellor. + Counsellors are not usually covered by MSP, so you’ll have to pay for the cost of the appointment yourself. Workplace extended health benefits, Employee (Family) Assistance Programs, or private health insurance plans may help cover some costs. Some counsellors may offer a sliding scale based on your income. If you’re facing financial hardship, you can ask when you make the appointment. + Learn more about lower-cost options to access counselling or email us with your location and our information and referrals team can see what options there may be in your community. + If you see a counsellor through a public mental health centre like a mental health team or outpatient psychiatry program, it will still be covered by MSP. Talk to your care provider if you have questions or want to learn more. + Indigenous community members can access some counselling services locally or through the First Nations Health Authority. Contact your local Band or local Friendship Centre, or contact the First Nations Health Authority." +9630578,How can I find a support group?,"Support groups are a way for people with a common experience to help each other and learn from each other. There are support groups for people with any experience of mental illness, support groups for people with a specific diagnosis, support groups for family members and friends, and more. + Support groups are offered by community organizations, mental health service providers, schools, campuses, and support agencies. Here are some general resources to help you find a mental health or substance use related support group in BC: + Talk to your mental health care provider. They might be able to make recommendations. + The Mood Disorders Association of BC offers a network of peer support groups around the province for people who experience mental illnesses like mood disorders or post-traumatic stress disorder. They also have groups for family and friends. Groups are drop-in. + Many Canadian Mental Health Association branches offer support services, including support groups. If your local branch doesn’t have their own program, they can recommend other services in your community. + The BC Schizophrenia Society maintains a directory of support groups and other regular events for family members of people with a mental illness. + For groups related to alcohol or drug use, call the Alcohol and Drug Information Referral Service at 1-800-663-1441 or 604-660-9382 in the Lower Mainland. + For groups in the Lower Mainland, search the Red Book Online. + If you are at school or on campus, talk to a school counsellor or your campus’ health and wellness office. + For online support, see some suggestions at www.heretohelp.bc.ca/discuss. This can be particularly useful if you don’t have a group in your community or have trouble getting to an in-person group. + In order to benefit the most from a support group, you need to feel safe enough to share your experiences and thoughts, and you need to feel comfortable supporting others. It can be helpful to contact the group facilitator or organizer ahead of time to see if a particular group might be a good fit for you. We have a checklist to help you evaluate support groups—including when it might be time to leave one. + Sometimes a group just doesn’t work for you, and that’s okay. If you feel comfortable, you can try talking to the facilitator to see if they can recommend another group that you can try." +1585622,Where can I find child and youth mental health services?,"To find help for a child or youth, you can: + Encourage your child to talk to a teacher or school counsellor + Talk to your family doctor or pediatrician, or go to a walk-in clinic + Contact your local Child & Youth Mental Health office on one of their walk-in days + Use Kelty Mental Health’s Help Finder Tool to find specific services and providers + Contact the Institute of Families for Child and Youth Mental Health’s Youth-in-Residence or Parent-in-Residence for guidance, information, and support. Youth-in-Residence and Parents-in-Residence are located around the province. If you don’t have one in your community, a Parent- or Youth-in-Residence at the Kelty Mental Health Resource Centre can help you by phone or email + Visit www.familysmart.ca for information and resources on child and youth mental health + For young people ages 12-24, visit foundrybc.ca to see if there is a Foundry Centre in your area. Foundry offers easy-to-access mental health care, physical health care, social services, and support out of one office." +1833460,Where can older adults find help for mental health concerns?,"Mental health concerns are a serious concern at any age, and everyone deserves help and support. If you’re concerned about your mental health, you can: + Talk to your family doctor or go to a walk-in clinic + Call the Mental Health Support Line at 310-6789 (no area code) for information about services in your area + Find your local mental health centre or program at www.gov.bc.ca/mentalhealth (you may need a doctor’s referral to access some programs) + Find your local Canadian Mental Health Association branch at www.cmha.bc.ca and ask for information about local services + Contact a local senior’s support organization or group and ask for advice. You can search for organizations at www.bc211.ca + For general information about senior’s mental health: + Find resources from the Canadian Coalition for Seniors' Mental Health at www.ccsmh.ca + Find info sheets in the Seniors and Depression Series at www.heretohelp.bc.ca/factsheet/seniors-and-depression-series + If you are concerned about a loved one: + Be honest about your concerns, like changes you’ve noticed or problems that have come up + Give your loved one a chance to talk about their perspectives. They may have a different take on the problem or have different priorities in their health care + Be patient—it will probably take more than one conversation + Whenever possible, aim for cooperation. Focus on finding an action or solution that everyone can agree on + Remember that asking for help is hard for many of us, and it can be even harder as people’s roles and abilities change. If your loved one isn’t willing to talk about their experiences with you right away, offer alternatives like the BC Mental Health Support Line (310-6789—no area code needed), the Seniors Distress Line (604-872-1234) or a local seniors support organization (search for organizations at www.bc211.ca) + Seek support to manage your expectations and your own well-being. It can be very stressful to see a loved one experience health problems. But adults who can care for themselves and aren’t at risk of harm are free to make their own choices—and that includes refusing help" +6981545,Where can I find self-help materials for depression?,"Self-help resources are not a substitute for diagnosis or treatment. If you have concerns about low mood, it’s best to talk to your doctor first and rule out physical causes for your symptoms. However, once you’ve checked in with your doctor, self-help materials can be a great way to learn more about depression and practice different skills at your own pace or in between treatment sessions. Here are some resources to check out. + The Antidepressant Skills Workbook was created by two BC psychologists. You’ll learn more about depression, learn and practice different skills to help improve your mood, and learn how healthy changes in other parts of your life can impact your mood. They also have similar workbooks for specific groups: + Dealing With Depression: Antidepressant Skills for Teens + A workbook for people who experience problems with depression at work called Antidepressant Skills at Work: Dealing with Mood Problems in the Workplace + A workbook for expecting or new moms called Managing Depression: A Self-help Skills Resource for Women Living With Depression During Pregnancy, After Delivery and Beyond + A workbook for people who experience health problems called Positive Coping with Health Conditions: A Self-Care Workbook + On the HeretoHelp site, our Managing Depression series offers three info sheets: Dealing with a Diagnosis of Depression, Working With Your Doctor for Depression, and Preventing Relapse of Depression. The series helps you be an active partner in your health care, build healthy coping skills and self-management strategies, and more. + Often depression can affect your concentration and motivation to work through self-help materials on your own. If you’d like self-help materials with a bit of extra support from a person, Bounce Back: Reclaim Your Health is a guided self-help program for British Columbians who experience mild to moderate depression, low mood, stress, or anxiety. You can get a DVD of tips to help you recognize and manage symptoms of depression, or you can learn more in-depth skills in a series of workbooks you complete at home. You also work with a trained coach from the Canadian Mental Health Association who will offer support and advice by telephone or video conference. Bounce Back is free with a doctor’s referral. For more information, visit www.bouncebackbc.ca (If you want to access the Bounce Back materials without a coach or referral, you can do that online in BC at www.bouncebackonline.ca). + The Mood Disorders Association of BC has a number of videos on mental health, seeking help, and other topics + Kelty Mental Health Resource Centre also maintains a comprehensive list of websites, toolkits, books and other resources for young people and families + Heads Up Guys offer tips and strategies for healthy living strategies for men who experience depression + The BC Reproductive Mental Health Program of BC Mental Health and Substance Use Services has a self-management guide for women who experience postpartum depression called Coping with Depression in Pregnancy and Following the Birth. They also have a guide for Aboriginal women and their families called Celebrating the Circle of Life: coming back to Balance and Harmony + The follow resources are based outside of BC, but they offer a lot of good information. + MoodGYM Training Program is a web-based self-help course for people who experience depression. It is based in Australia but is available for free to anyone + Moodjuice is a UK initiative that offers self-help workbooks, including one for depression + There are many books and workbooks available to help people who experience depression. Talk to your mental health care team for recommendations. You can find many from your local bookstore or special bookstores specializing in mental health like Odin Books in Vancouver (you can also order online). Within British Columbia, you may also borrow books for free from the Family Support and Resource Centre at BC Children’s and Women’s Hospitals. They have many self-help and reference materials on depression for women and their partners, for parents, and for children and youth." +2115228,Where can I find self-help materials for anxiety?,"Self-help resources are not a substitute for diagnosis or treatment. If you have concerns about low mood, it’s best to talk to your doctor first and rule out physical causes for your symptoms. However, once you’ve checked in with your doctor, self-help materials can be a great way to learn more about anxiety and practice different skills at your own pace or in between treatment sessions. Here are some resources to check out: + Anxiety Canada has self-help resources, toolkits, worksheets, and videos on anxiety and anxiety disorders for children and their parents, teens, adults, expecting and new moms at www.anxietycanada.com. Their MindShift app teaches skills to help users manage anxiety, relax, and live well. Although designed for teens and young adults, other adults can also benefit from it. + Kelty Mental Health Resource Centre has a list of recommended websites, toolkits, books, and other resources for children and for teens. + The BC Reproductive Mental Health Program of BC Mental Health and Substance Use Services has a self-management guide for women who experience anxiety during and after birth called Coping With Anxiety During Pregnancy and Following the Birth. + Moodjuice is a UK program that offers self-help and information on a number of mental health concerns, including their anxiety self-help guide. If you’d like help for a specific anxiety disorder, visit www.moodjuice.scot.nhs.uk to search for other guides. + There are many books and workbooks available to help people who experience anxiety problems. Talk to your mental health. Talk to your mental health care team for recommendations. There are bookstores that specialize in mental health and well-being materials, such as Odin Books in Vancouver. Within British Columbia, you may also borrow books for free from the Family Support and Resource Centre at BC Children’s and Women’s Hospitals. They have many self-help and reference materials on depression for women and their partners, for parents, and for children and youth. + If you’d like self-help materials with a bit of extra support from a person, Bounce Back: Reclaim Your Health is a guided self-help program for British Columbians who experience mild to moderate low mood or anxiety. You can get a DVD of tips to help you recognize and manage symptoms of anxiety, or you can learn more in-depth skills in a series of workbooks you complete at home. You work with a trained coach from the Canadian Mental Health Association who will offer support and advice by telephone or video conference. Bounce Back is free with a doctor’s referral. For more information, visit www.bouncebackbc.ca. If you want to access the Bounce Back materials without a coach or referral, you can do that online in BC at www.bouncebackonline.ca." +2009922,I’m having a hard time coping with a physical health problem. Where can I find help?,"Physical health can have a big impact on mental health! Here are some resources to help you cope with the emotional challenges of living with a chronic health problem: + Self-Management BC offers free programs for adults of all ages who are experiencing any ongoing physical or mental health issues. Find information and strategies to help manage symptoms and take action toward the best life possible. Family members, friends, and loved ones are welcome to attend. Programs are available in languages other than English, including Chinese and Punjabi. On their website, you learn more about self-management research and find a workshop or telephone-based support program. Visit www.selfmanagementbc.ca or call toll-free 1-866-902-3767. + A group of BC psychologists and doctors have created a self-guided workbook called Positive Coping with Health Conditions for anyone who is dealing with a health problem and anyone who supports a loved one that experiences a health problem. The workbook discusses the links between physical health and mental health, and teaches you different skills to help you manage problems and difficult feelings well, get active, and work on healthy relationships. + Bounce Back: Reclaim Your Health is a guided self-help program for British Columbians who experience mild to moderate depression, low mood or anxiety. You can get a DVD of tips to help you recognize and manage symptoms of depression, or you can learn more in-depth skills in a series of workbook you complete at home. One of the workbooks, Reclaim Your Health, is focused on living with chronic health conditions. You work with a trained coach from the Canadian Mental Health Association who will offer support and advice by telephone or video conference. Bounce Back is free with a doctor’s referral. For more information, visit www.bouncebackbc.ca. If you want to access the Bounce Back materials without a coach or referral, you can do that online in BC at www.bouncebackonline.ca. + Reclaim Your Life: From illness, disability, pain, or fatigue is a booklet from the Canadian Mental Health Association that offers practical tips and strategies to help you cope with a problem and get back to your usual routine. The booklet is available for purchase at www.livinglifetothefull.ca. It is part of a program called Living Life to the Full, an eight-week program that helps people make helpful changes in their lives. It’s offered throughout the province, and you can find course listings on the website as well. + Many organizations support people who experience a particular illness or health problem. These organizations can often help people find appropriate support services or may even offer support groups of their own. You can also ask your health care team for recommendations. If you can’t find support in person, you can see if there are any support groups online. + If you’re having a hard time coping and feel that you need one-on-one support, a therapist or counsellor can be a great option. You can find more information on finding these professionals at www.heretohelp.bc.ca/ask-us/how-can-i-find-a-doctor-psychiatrist-psychologist-or-counsellor." +6167248,When is substance use a problem? Where can I go for help?,"Each person has a different relationship with substances like alcohol and other drugs, and people use substances for different reasons. What’s beneficial for some may cause problems for others, or for the same person in different situations. + To learn more about substance use, check out Understanding Substance Use: A health promotion perspective. For more on supporting someone else, a useful resource is Helping People who Use Substances: A health promotion perspective. + To help you think about your relationship with substance, You and Substance Use: Stuff to think about...and ways to make changes is a great workbook. Another series, Making Healthier Choices about Substance Use: Tips for cutting back or quitting, has a lot of useful tips and resources if you want to change the way you use alcohol, marijuana, medications, methamphetamine, and tobacco. + If you or someone you care about needs more help, contact the Alcohol and Drug Information Referral Service to find support in your area. To get help anywhere in BC, call 1-800-663-1441. In Greater Vancouver, call 604-660-9382. + To learn more about substance use, visit the Centre for Addictions Research of BC." +6779222,Where can I find free or low-cost counselling?,"Mental health services like counselling or therapy may be covered by your BC Medical Services Plan (MSP) when you access the service through a hospital or mental health clinic. Find your local health authority to learn more about counselling services in your area. HealthLink BC’s Find Services tool and Locator app can also help you find services. You often need a doctor’s referral to access these types of programs. + Without a doctor’s referral, you need to access care through the private system, which is not funded by the government. Private mental health services can be expensive. This can be a real barrier to finding good care. While there is no simple answer, there are several different places you can look: + If you have health benefits at work, ask about your coverage. Some plans will cover a certain number of private counselling or therapy sessions. In addition, a workplace Employee/Family Assistance Plan may offer some services or may refer you to community services. + Some psychologists, clinical counsellors, or other service providers may offer a sliding scale, which means that their costs are based on your income. Try contacting service providers directly to ask if they offer a sliding scale. One private clinic in Vancouver has a good list of lower-cost counselling options in the Vancouver area. For those outside of the Lower Mainland, you can still look at this list and see if any similar organizations might be in your community. + Contact a mental health organization like Anxiety Canada, the Canadian Mental Health Association, BC Schizophrenia Society, Institute of Families for Child and Youth Mental Health, Mood Disorders Association of BC, or Jessie’s Legacy. They may offer services in your area, or they may have local connections that they can refer you to. + You can also email us and we’ll try and give you some recommendations for your community." +1546812,Can I get help paying for prescription medications?,"BC PharmaCare covers the cost of some medications through Plan G, the Psychiatric Medications Plan, for people who need a medication to be well but cannot afford them. Your doctor or nurse practitioner must apply for your coverage on your behalf. Coverage usually lasts for one year, and then you can reapply if needed. Talk to your care team if you’re interested in Plan G." +2176317,How can I pay for mental health care?,"Mental health services provided through the government-run (‘public’) system, like services you receive through your local mental health centre or team, an outpatient psychiatry at a hospital are most often completely covered by MSP. As long as you are eligible for MSP, you won’t have to pay to see someone. + For mental health services that aren’t covered by MSP, such as psychotherapy or counselling with a private practitioner, you will have to cover the costs yourself. It’s no secret that these services can be expensive, but you may be able to offset the costs through: + Extended health coverage from your own or an immediate family member’s workplace benefits + Employee (Family) Assistance Program from your own or an immediate family member’s workplace benefits + For students, school or campus mental health services + For Indigenous community members, services offered through your Band, Friendship Centre, Indigenous support organization, or the First Nations Health Authority + Cultural or faith communities may offer some mental health services + You may be able to claim some larger costs related to treatment of a mental health condition on your income tax return under health expenses + Some providers offer lower-cost services or a sliding scale, usually based on your income. Email us with your location and our information and referrals team can help you look for options in your area. + If costs are a barrier to health care, talk to your doctor to see if there are any services in the public health system (covered by MSP) that may be a good fit for you. You can also called the Mental Health Support Line at 310-6789 (no area code) for more information on local mental health services." +3284724,How do I apply for income assistance?,"Provincial income assistance has three income levels: basic assistance (also called welfare), Persons with Disabilities benefits (PWD), and the Persons with Persistent and Multiple Barriers to employment benefits (PPMB). All are administered by the Ministry of Social Development and Social Inclusion. Depending on the situation, mental illness may considered under PWD or PPMB. Addictions may not be included in PPMB applications. + PWD benefits are for people who have a disability that prevents them from working or going about their daily activities. Find information from the Ministry and read a fact sheet from the Disability Alliance of BC with information about the application process. + PPMB benefits are for people who experience multiple barriers to work. Find information from the Ministry and read a fact sheet from the Disability Alliance of BC with information about the application process. + The Disability Alliance of BC (formerly the BC Coalition of People with Disabilities) and help you navigate PWD and PPMB programs as well as Canada Pension Plan benefits. They have in-depth information on preparing your application, working through the application process, and handling appeals. PovNet can also connect you with an advocate to help you through the application process. + For more on provincial PWD benefits and advocacy tips, see Getting By on Social Assistance: Navigating the ‘welfare’ system or read other articles in our Income issue of Visions Journal." +5981663,What is MSP?,"MSP stands for Medical Services Plan. It’s a health insurance program managed by the government for people who live in British Columbia, Canada. MSP pays for things like doctor’s appointments, appointments with specialist doctors like psychiatrists, and hospital stays you need to treat a medical problem. + Everyone who lives in BC must enroll in MSP. You pay a monthly fee based on your income. Some workplaces cover the costs of MSP fees for you. + Learn more about MSP here. If you have questions about applying for or managing your MSP coverage, call Health Insurance BC at 604 683-7151 in the Lower Mainland or 1-800-663-7100 in the rest of BC. They are open Monday – Friday from 8.00am – 4.30pm. You can also get help in person at your local Service BC office. + If you are new to BC, you have to wait three months before registering for MSP. + Bring your Care Card or BC Services Card with you when you go to medical appointments or use the pharmacy." +6623577,What is a referral?,"A referral means someone recommends you to another service. In health care, it usually means a request from your doctor to see a specialist like a psychiatrist. + To access any specialist in BC, you first need a referral. You may need to meet certain criteria, like a specific diagnosis or specific symptoms, to access some specialists. Your doctor can tell you what to expect. + Once your doctor has made the referral, the specialist’s office will contact you with an appointment time. Make sure your doctor’s office has your current contact information so the specialist can reach you. + The process is the same whether you see the same family doctor or visit a walk-in clinic. + Not all mental health programs in BC require a doctor’s referral. This is good news for people who are looking for help! A ""self-referral"" means that you ask to see someone, and then you will be evaluated to see if you meet the criteria to receive services. Contact your local health authority to learn more about programs in your area:" +6851366,What's the difference between a psychiatrist and a registered psychologist?,"A psychiatrist is a medical doctor with extra training in mental health who can choose to prescribe medications. Some use psychotherapy (‘talk therapies’) approaches like cognitive-behavioural therapy to treat mental health problems. Many psychiatrists work at hospitals, clinics, or health centres, and some have a private office. As they are specialist doctors, you will almost always need another doctor’s referral to see a psychiatrist, and fees are covered by MSP. If you have a valid BC Services or CareCard, you do not need to pay to see a psychiatrist. + A registered psychologist focuses on different talk therapy or counselling approaches to treatments, but they don’t prescribe medication. They have graduate degrees in psychology. There are two different ways to access registered psychologists: the public system and the private system. Registered psychologists in the public system work in some hospitals or schools. You may need a doctor’s referral to access the program, and costs are usually covered by MSP. However, most people need to access registered psychologists through the private system. To do this, you can contact the psychologist yourself—you do not need a referral. Costs are not covered by MSP, but they may be covered by employee health plans. A registered psychologist’s fees charged by hour vary, and some offer lower fees to people with lower incomes. + You’ve probably noticed that a lot of the differences come down to how you pay for different services and how these professionals are educated. The practical differences in how they work are not always so clear. When it comes to your treatment and care, the most important part is finding a professional who supports your own goals. Are you really focused on fine-tuning medications? Are you looking for a particular therapy approach? Does the professional’s philosophy of care make sense to you? Do you like the professional you’re talking to and do you feel safe sharing your experiences? Ultimately, your relationship with the professional is what matters. Instead of focusing on designation, look for a professional who meets your needs and your expectations. + Talk to your family doctor and ask for their recommendations + Ask local mental health organizations for help. You can find local branches through the provincial organizations behind HeretoHelp + Ask a community health centre, outpatient psychiatry program, or mental health team for suggestions + For a list of psychiatrists near you, search under ‘Specialist’ in the College of Physicians and Surgeons of British Columbia’s Find a Physician Tool but remember that you will first need a referral from a doctor (like your family doctor) + For a list of psychologists near you, search in the British Columbia Psychological Association’s Find a Registered Psychologist tool and you can also learn more about finding a psychologist from the College of Psychologists of British Columbia" +1898078,What's the difference between psychotherapy and counselling?,"Psychotherapy and counselling have a lot in common and usually mean the same thing. Both are used to describe professionals who use talk-based approaches to help someone recover from a mental illness or mental health problem. Many different professionals may provide counselling or psychotherapy, including registered psychologists, registered clinical counsellors, psychiatrists, other therapists and counsellors, family doctors, psychiatric nurses, and faith leaders. + It’s useful to talk to someone about any problem—a lot of people find that simply talking with friends or family can help them feel better. A professional therapist or counsellor can offer more: they have training, experience, and emotional distance (since they don’t know you). They use different theories to listen to you, support you, and approach different problems or patterns. For example, a psychotherapy called cognitive-behavioural therapy is based on the theory that learning skills to change your thinking and actions can positively impact your emotions, well-being, and future thoughts and behaviours. A therapist could help you learn and practice these skills. + There are many psychotherapies with good evidence of being effective for different problems or illnesses. A few examples include cognitive-behavioural therapy, interpersonal therapy, dialectical behaviour therapy, solutions-focused brief psychotherapy, narrative therapy, and emotion-focused therapy. + In general, some aspects of therapy and counselling are the same, no matter which approach you choose: the expectations you bring to your counselling sessions, the match between your understanding of the problems and your therapist’s understanding of the problem, and the trust and rapport that you have with your therapist. In fact, one research review found that 50% of the improvement seen in clients who just received active listening and support from a counsellor (called non-directive supportive therapy) was due simply to the relationship between client and therapist.1 Psychotherapy can and does work, but the professional you choose, and their match with your values, is also very important. + When you’re looking for a professional, it’s always a good idea to ask if they are a member of a professional organization (like those listed in the next section)." +1706961,What's the difference between CBT and DBT?,"CBT (cognitive-behavioural therapy) and DBT (dialectical behaviour therapy) are two forms of psychotherapy or “talk therapy.” In both, you work with a mental health professional to learn more about the challenges you experience and learn skills to help you manage challenges on your own. + Cognitive-behavioural therapy or CBT teaches you how your thoughts, feelings, and behaviours influence each other. For example, if you believe that people don’t like you (thought), you might avoid social situations (behaviour) and feel lonely (feeling). However, CBT teaches you how to use these relationships to your advantage: a positive change in one factor (changing a thought or behaviour) can lead to positive changes in all factors. CBT is an approach that has been proven by research to work for many different mental health problems, including depression, anxiety disorders, eating disorders and substance use problems. + CBT is structured, short-term, goal-oriented and focused on the present. It starts with education around the particular mental illness or challenge and how the illness or challenge affects you. Next, you’ll learn and practice skills and strategies like problem-solving or realistic thinking to help you make changes in your thoughts, feelings, and behaviours. You’ll learn how you can use your new skills to deal with problems in the future. + Dialectical behaviour therapy or DBT is based on CBT, with greater focus on emotional and social aspects. DBT was developed to help people cope with extreme or unstable emotions and harmful behaviours. DBT is an evidence-based approach to help people regulate emotions. It started as a treatment for borderline personality disorder, and current research shows it may help with many different mental illnesses or concerns, particularly self-harm. + Key differences between CBT and DBT are validation and relationships. DBT teaches you that your experiences are real, and it teaches you how to accept who you are, regardless of challenges or difficult experiences. Relationships are also very important in DBT—including the relationships between you and your DBT practitioner. You may have frequent check-ins to talk about any successes or problems. Treatment may include a mix of one-on-one sessions and group sessions. In addition to CBT skills, you’ll learn skills around managing your emotions, building relationships with others, coping well with problems or distress, acceptance, and mindfulness. + As with many talk therapies, it takes time and effort to enjoy the benefits of CBT and DBT skills. But once people master skills with support from your CBT or DBT therapist, they often find that their new skills and strategies become second nature—they are tools that last a lifetime." +4925221,What's the difference between antidepressants?,"There are many different types of antidepressant medications, and they each work in different ways. Antidepressants are divided into “classes” based on what they do and which chemical messengers in the brain (called neurotransmitters) they are thought to influence. Each class may contain several different medications, which each have slightly different ways of working. Below, you’ll find common classes and examples of common medications. The first name is the generic name and name in brackets is the brand name. + SSRIs or selective serotonin reuptake inhibitors: fluoxetine (Prozac), paroxetine (Paxil), citalopram (Celexa), escitalopram (Cipralex), and sertraline (Zoloft) + SNRIs or serotonin and norepinephrine reuptake inhibitors: venlafaxine (Effexor) and duloxetine (Cymbalta) + NDRIs or norepinephrine-dopamine reuptake inhibitors: bupropion (Wellbutrin and Zyban) + NaSSAs or noradrenergic and specific serotonergic antidepressants: mirtazapine (Remeron), which can also be classed as a TeCa or tetracyclic antidepressant + SARIs or serotonin antagonist and reuptake inhibitors: trazodone (Desyrel) + There are other classes of antidepressants (such as MAOIs or triclycics) that are much older and have more side effects or restrictions. They are usually prescribed when newer antidepressants don’t work. Other medications such as lithium, thyroid medication, or antipsychotics may also be prescribed, often in combination with an antidepressant to boost its effect. Antidepressants are not only used to treat depression—they may be prescribed to treat other illnesses like anxiety disorders. + Only medical doctors like family doctors or psychiatrists can prescribe antidepressants. If your doctor recommends that you consider antidepressants, keep in mind that most people have to try a few different options before they find the right medication. It can be a frustrating process, especially when you feel unwell, but it’s important to find something that works for you! Side effects and benefits can vary significantly between different people, and it’s difficult to predict how a medication might work without trying it out first. Everyone responds to them differently. It’s very important to have ongoing discussions with your health care team regarding your medication so you can bring up any problems or concerns—or even ask more about how your particular antidepressant works." +1043721,I received a diagnosis but I don’t think it’s right. What can I do?,"If possible, bring up your concerns with the professional who provided the diagnosis. That way, the professional can answer your questions and you can better understand their decision. + If that doesn’t resolve the situation or a follow-up appointment isn’t possible, you can ask for a second opinion. A second opinion is an assessment from a different professional. This can give you better understanding of what’s going on and what to do about it. Second opinions are common when it comes to major health decisions—you won’t hurt anyone’s feelings and your doctor will try to accommodate reasonable requests for a second opinion. Talk to your family doctor (or go to a walk-in clinic) to discuss your options and get a referral to a different program or health professional, if needed. + For more how to get a second opinion, see HealthLinkBC’s factsheet at www.healthlinkbc.ca. + For general tips on managing a diagnosis of a mental illness and working well with health care professionals, see HeretoHelp’s Managing a Mental Illness series." +8471978,I was prescribed an antidepressant or other psychiatric medication but I don’t think it’s working. What can I do?,"If you’re concerned about your medications, it’s important to talk with the doctor or psychiatrist who prescribed your medications. While it can take a few weeks to really see improvements with many antidepressants, it’s still a good idea to talk to your doctor about what to expect. + Talk to the doctor that prescribed your medication if you experience symptoms or side effects that are distressing you. If you want to talk to a trusted professional about the most common side effects, call your pharmacist. You can reach a pharmacist by phone after-hours by calling 811. + It’s also best not to stop taking the medication or changing the dose on your own without first talking to a health care provider. While it might be tempting to stop taking your medication when you start feel better, it’s important to follow your doctor’s instructions. + In some cases, people can have an allergic reaction to a medication. Some reactions are not serious, like a rash. In these cases, you can call the pharmacist or call 811 to reach help after-hours. If you have a serious reaction like difficult breathing, dizziness, or confusion, call 911 right away. + When you start a new medication, your pharmacist will give you a printout with information like side effects, signs of an allergic reaction, how long it might take to work, and other information. It’s good information to keep on hand, but it isn’t always easy to read. When you pick up your medication, you can ask the pharmacist to go over the information with you so you understand what you should look for. + If a particular antidepressant or psychiatric medication just isn’t working for you, there are many different options! Unfortunately, finding the right medication can take some trial and error. Different people can have very different experiences with the same medication, and often you need to try something to see if it works (or doesn’t work) for you. This can be a frustrating process, especially when you want to start feeling better, but it’s important to keep trying and work with your doctor so you understand your options. Many people feel intimidated talking to health professionals, but it’s important to share information so you both understand what’s going on and can make good, informed decisions about your health care. Some people also feel embarrassed talking about symptoms or side effects like changes in sex drive or digestion, but its important information for your doctor (and they know that changes in sex drive or digestion are common concerns). You can find strategies, including a mood journal, to help you work with doctors and other health care providers in our Working With Your Doctor toolkit." +2746837,An adult in my life seems ill and won’t find help. What can I do?,"It’s difficult when an adult child, sibling, parent, friend, co-worker, or other important person is struggling or behaving in ways that are causing harm. This can be a tricky situation—you want to help, but most adults are responsible for their own care. + There are two important points to think about. First, diagnosing a health condition, especially when symptom-checking is so easy online, can be dangerous. Diagnosis is still always best left to professionals who can look at the whole picture. Remember, too, that the person you care about may have a very different idea of what’s causing their difficulties and what the negative impacts are on their life. Second, except in rare cases, the person being treated needs to be an active player in their own recovery to continue with their treatment, just as they would for any other health problem. If the vast majority of cases, you cannot do this work entirely for them—and trying to do so may damage your relationship. + Be honest about your concerns, the impacts you are seeing that worry you, listen to their point of view and work together to find a solution that works for everyone, even if it means a compromise. You may want to offer to go with them to an appointment, encourage them to do an online screening self-test, or involve someone else close to them who may be similarly concerned and may have more influence in encouraging them to notice changes and seek help. Because you may be feeling frustrated and helpless, it’s important to get care and support for yourself during this time, especially if you’re very close to the person you’re worried about. + In serious situations, the BC Mental Health Act allows someone to be held for a period of time for psychiatric assessment without their consent if they are at risk of harming themselves or others. While it’s necessary in some situations to get someone the care they need, it can be traumatic for everyone involved. For more on the BC Mental Health Act, see the Guide to the Mental Health Act." +5640861,I’m worried about my child or teenager. Where can I find help?,"It can be hard to figure out what to do if you’re concerned about a young person in your family. Many people start by talking with their family doctor. If you don’t have a family doctor, you can find a doctor through the College of Physicians and Surgeons of BC. You can also visit a walk-in clinic. Depending on the situation, your family doctor may offer everything you need. If your child needs more specialized services, such as psychiatry services, your family doctor needs to make a referral for your child. Many family doctors can also recommend community services or supports in your community. Learn more about the role of family doctors in the info sheet What to Expect from Your Family or Walk-In Clinic Doctor. + If your child’s difficulties affect their performance or behaviour at school, the school may be involved. If your child’s school has a counsellor, talk to them about services you can access through the school. School counsellors can also suggest community services. See the info sheet What to Expect from Your Child's School. + Kelty Mental Health Resource Centre offers information, resources, peer support, and system navigation to children, youth, and families experiencing mental health or substance use challenges. Their Help Finder tool and help you navigate the mental health system. Kelty Mental Health is based at BC Children’s Hospital in Vancouver, but they support young people and their families across the province. + Institute of Families for Child and Youth Mental Health advocates for healthy young people and family support. They offer resources and education events across BC. + The Canadian Mental Health Association’s BC Division offers Confident Parents: Thriving Kids, a phone-based education and support program to help parents or caregivers manage mild to moderate behaviour problems for children ages 3 to 12. This program is free, but it requires a doctor’s referral. + You may also want to check out these resources from HeretoHelp on child and youth mental health and substance use:" +3393534,Someone I care about has a brain injury. Where can I find more information?,"A brain injury itself isn’t the same as a mental illness, though someone who experiences a brain injury may also experience mental health problems. These mental health problems may stem from the injury itself or from thoughts around the injury (like feelings of loss, anger, or frustration when quality of life changes). In some cases, mental health challenges may not be related to a brain injury at all. The good news is that mental health problems are treatable, even if you or someone you care about has experienced a brain injury. It may be helpful to find a service provider who is familiar with both brain injuries and mental health. + For more information and support, visit the BC Brain Injury Association. You can also find local and regional groups and organizations in BC through the Brain Injury Association of Canada." +3839472,Someone I love has been diagnosed with depression. How can I help?,"We naturally want to help a loved one who isn’t feeling well. How we can or should help may seem fairly obvious when a loved one experiences a physical health problem, but many people say they’re not sure how to best help when a loved one experiences a mental illness like depression. Here are some tips: + You don’t have to understand exactly what someone else is experiencing, you just need to recognize that it’s a difficult experience. You can try something like, “I can see that this experience or these symptoms are really painful for you,” or, “I’m sorry to hear that you’re feeling unwell.” If you have experienced depression yourself, you might say, “I know how you feel.” Just remember that everyone experiences illnesses like depression differently, and empathy is about recognizing the impact of the illness, not comparing symptoms. + You don’t have to be an expert, but learning more about depression can help you understand what’s going on (and maybe dispel some of the unhelpful myths around depression). Our Depression info sheet is a great place to start, and we have a list of resources at Q&A: Where can I learn more about depression? + Sometimes talking about problems or concerns can really help—in fact, many people who experience a mood disorder say that they just want to be heard. It’s important to understand that talking about something difficult like experiences of depression can be very hard for your loved one. You cannot force them to talk about it, but you can invite them to, and create safe and quiet spaces to talk. If a loved one opens up to you, listen actively—that is, without distractions like your phone or the TV. Really pay attention to what they have to say. Listen with empathy and without judgement. Even if you don’t understand the problem or see the problem in a different way, your main concern is the distress or difficult feelings your loved one is experiencing. You can find in-depth tips on listening and communicating well in Module Three of the Family Toolkit. Some people are not ready to talk about everything at once, or at all. That’s okay! Respect your loved one’s boundaries and let them tell you what they’re ready to talk about. + Even when you have the best intentions, unsolicited advice can be unhelpful. You likely can’t fix the problem, and you may not know the whole story. If you’d like to share what worked for you in a similar situation, you can ask if the other person would like to talk about strategies that worked for you. + Different people need different things—don’t assume you know what’s best! Some people need emotional help, like someone they can talk with. Other people may have a good relationship with a counsellor or other professional, but they might need practical help, like help around the house or help sticking to their treatment plan. And others may simply want to be included in some social events. By asking what a person needs, you may also be less tempted to give advice. + When people experience an episode of depression, they can have a lot of very negative thoughts and feelings. This can take a real toll on others. It’s a good idea to seek support for yourself—there are support groups just for family members and friends. The BC Schizophrenia Society has a directory of family support groups around BC for any mental illness. + If your loved one isn’t happy with their treatment or would like to try a different option, you can also help them seek different resources or services. You can find general advice in the Ask Us section of HeretoHelp. To find local services, call the BC Mental Health Support Line at 310-6789 (no area code) or email us. + This is very important! You are not responsible for your loved one’s treatment (unless your loved one is your child under 19)—but you can support them as they work towards recovery. In most cases, your loved one’s treatment and recovery plans are their choice—you are there to offer support and encouragement. + In order for any treatment to work, your loved one needs to be actively involved. Forcing or threatening treatment generally doesn’t work and will only hurt everyone involved. In most cases, anyone 19 years of age and older is free to make their own choices. And their choices may include refusing treatment or choosing a treatment you disagree with. It’s important to be respectful and keep honest communication open between you. You can learn more about dealing with this situation in Ask Us: An adult in my life seems ill and won’t find help. What can I do? + If your loved one says that they have thoughts of ending their life, it’s important to take action. Call 1-800-SUICIDE (1-800-784-2433) at any time or message online at www.crisiscentrechat.ca between noon and 1am. If you think your loved one is in immediate danger, you can always call 911 or go to a hospital emergency room." +3055896,Someone I love has been diagnosed with schizophrenia. How can I help?,"We naturally want to help a loved one who isn’t feeling well. How we can or should help may seem fairly obvious when a loved one experiences a physical health problem, but many people say they’re not sure how to best help when a loved one experiences a mental illness like schizophrenia. Here are some tips: + You don’t have to be an expert in schizophrenia, but learning more can help you understand what’s going on. There are a lot of myths about schizophrenia, so it’s a good idea to find some trustworthy resources. Our Schizophrenia info sheet is a great place to start. You can also find a lot of information from the BC Schizophrenia Society. + Sometimes talking about problems or concerns can really help. It’s important to understand that talking about something difficult like experiences of schizophrenia can be very hard for your loved one—and the symptoms of schizophrenia can also make conversations difficult. If a loved one opens up to you, listen actively—that is, without distractions like your phone or the TV. Really pay attention to what they have to say. Give them time to finish their thoughts, even if it takes a bit longer than usual. Listen with empathy and without judgement. Even if you don’t understand the problem or you see the problem in a different way, your main concern is the distress or difficult feelings your loved one is experiencing. You can find in-depth tips on listening and communicating well in Module Three of the Family Toolkit. Some people are not ready to talk about everything at once, or at all. That’s okay! Respect your loved one’s boundaries and let them tell you when they’re ready to talk. + Symptoms of schizophrenia like hallucinations (sensations that aren’t real, like hearing voices) or delusions (beliefs that can’t be true, like believing that you are being followed by a spy) can take some time to stop even when people are receiving treatment and following their treatment plan. As a group, these very distressing symptoms are called psychosis. Many people have a hard time responding to a loved one’s hallucinations or delusions. It’s best to avoid arguing about these experiences. Remember that delusion are symptoms of schizophrenia—they are not thoughts that you can talk someone out of. Telling someone that their experiences aren’t real or aren’t true doesn’t help when the experiences feel very real to that person! A better approach is to empathize with the feelings that hallucinations or delusions bring up—without confirming or denying the hallucination or delusion. For example, if a loved one is frustrated or upset when they hear voices, it isn’t helpful to say something like, “You’re okay! It isn’t real. I don’t hear anything.” Instead, you might say, “I can only image how upsetting that voice must be. I can see the voice makes you feel scared.” Know that with good treatment and support, symptoms like hallucinations and delusions become much easier for people to manage and lose importance. + Ask how you can help. When people experience a serious mental illness like schizophrenia, they may want to plan how they can take action if they start to feel unwell again, especially if they have dependent children. These plans, such as advanced directives or Ulysses Agreements, are made when a person feels well and are meant to communicate their wishes to loved ones and their care team. Ask your loved one if they have a plan in place so you know what they need if they need help. If you’d like to learn more about planning for care, see the BC Schizophrenia Society. + If a loved one is experiencing an episode of psychosis or is recovering for an episode of psychosis, they might need extra help. For example, people who are actively experiencing hallucinations or delusions might need a lot of personal space and feel uncomfortable being around a lot of people or even making eye contact. When people are recovering from an episode of psychosis, they may need a quiet space and a lot of rest. Sometimes people can get back into their usual routines fairly quickly, while other times it may take a lot of time (and effort) to get back into routines. Keep in mind that too much help can be a bit counterproductive. It may well be faster and easier for you to take care of your loved one’s tasks or chores yourself, but rebuilding activity and confidence are a big part of recovery. Encourage and support your loved one as they take on daily responsibilities, and let them tell you when they need extra help. + Schizophrenia can be a difficult illness—for everyone. During episodes of psychosis, your loved one may experience frightening sensations that you can’t understand. They may act in ways that you don’t understand. Other symptoms of schizophrenia can make it hard for people to express emotions or feelings, communicate clearly, or seem interested in others. It’s important to know that these are symptoms of an illness. They are no one’s fault, but they can still be hard to cope with. Consider reaching out to a family and friends support group for your own support. The BC Schizophrenia Society has a directory of groups around BC at www.bcss.org/monthly-meetings-calendar/. + As a family member, it’s important to take care of yourself. Try to maintain your regular schedule and activities, such as your exercise routine and hobbies. Ask another family member or good friend to provide help with caregiving, especially in the early days of your loved one's illness. If you need help balancing time for self-care with caregiving duties, check out the BC Schizophrenia Society’s Family Respite Program. + Try to maintain your friendships or the network of people that you have in your life. These will later become important supports as your loved one recovers. Educate them and update them on your loved one's recovery. People are sometimes afraid to ask questions about schizophrenia and this will put them at ease. + This is very important! You are not responsible for your loved one’s treatment (unless your loved one is your child under 19), but you can support them. Schizophrenia can make it difficult for people to make and go to appointments and follow their treatment plan. With your loved one’s permission, you may choose to help by reminding them of appointments, taking them to appointments, or whatever helps in your situation. If your loved one isn’t happy with their treatment or would like to try a new approach, you can encourage them to talk with their care team, like their doctor or mental health team—it can be dangerous to stop or change a treatment without a doctor’s support. + Treatment can be a difficult area for loved ones. It’s hard to see someone you love in pain. You might be scared of the things your loved one is experiencing. You want to help. But in order for any treatment to work, your loved one needs to be active in their care. Forcing or threatening treatment generally doesn’t work (or if it does, in the case of an emergency, only for a short time) and can often hurt everyone involved. In most cases, anyone 19 years of age and older and not at risk of harm is free to make their own choices. And their choices may include refusing treatment or choosing a treatment that you disagree with. It helps everyone if you can be respectful and keep honest communication open between you. You can learn more about dealing with this situation in Q&A: An adult in my life seems ill and won’t find help. What can I do?. + If you think your loved one is at risk of harming themselves or others and they refuse help, it is possible to have them evaluated by a psychiatrist under the Mental Health Act. This process may involve police and other first responders, and it can be a difficult and stressful process for everyone. But it can also be a necessary step if someone is in danger. You can learn more about the Mental Health Act in the info sheet Families Coping with a Crisis and you can find the Guide to the Mental Health Act at www.health.gov.bc.ca/library/publications/year/2005/MentalHealthGuide.pdf. For a more in-depth discussion of the Mental Health Act, see a video with lawyer and health law consultation Gerrit Clements. + If your loved one says that they have thoughts of ending their life, it’s important to take action. Call 1-800-SUICIDE (1-800-784-2433) at any time or message online at www.crisiscentrechat.ca between noon and 1am. If you think your loved one is in immediate danger, you can always call 911 or go to a hospital emergency room." +4200873,I’m a young person and one of my parents has a mental illness. What can I do?,"Someone else’s illness is not your fault. You also can’t control how someone else feels, their illness, or the things they do or say. What you can do is take care of yourself. + Learning more about your parent’s illness can make it a bit easier to understand what they experience. On this website, you can find easy-to-read booklets on mental illnesses as well as longer info sheets on many different mental illnesses. You can also find information for young people from the Centre for Addiction and Mental Health. + It’s important to take care of yourself, too! A lot of people have a big mix of feelings when a parent isn’t well. You might feel angry, embarrassed, scared, or many other things. These feelings and experiences can have a big impact on the way your think about yourself and other people. When you’re on an airplane and the flight attendants go through the safety demonstration, they tell you to put your own oxygen mask on before your help other people. That’s because it’s hard to help someone else if you aren’t well yourself. Here are some programs specifically for young people: + Kids in Control Support Group Program from the BC Schizophrenia Society helps children and youth ages 8-18 understand mental illnesses, cope with challenges, and take care of their own health and well-being. If Kids in Control is not currently available at your local branch, your branch can order materials so you can work through them on your own. + Super Saturday Club from CMHA Vancouver-Fraser is a free recreation group for children and youth ages 8-17 who have a parent that experiences a mental illness. To learn more, visit www.vancouver-fraser.cmha.bc.ca. + If you’re having trouble coping with something going on at home, ask for some help! Here are some places you can go: + A teacher or counsellor at school + An adult you trust, like a friend’s parent or another family member + Kids Help Phone: visit www.kidshelpphone.ca to learn about taking care of yourself and chat with a counsellor, or call 1-800-668-6868 to talk with a counsellor + YouthinBC: Visit www.youthinbc.com to chat with a trained volunteer (noon-1.00am Pacific Time) + BC Mental Health Support Line: If you ever need to talk to someone or you’d like to see what kind of resources are in your community, call 310-6789 (no area code) at any time" +1337085,"I have thoughts of suicide, or someone I care about is talking about suicide. What should I do?","If you need to talk to someone or you aren’t sure how to help someone you care about, call 1-800-SUICIDE (1-800-784-2433) at any time. Or type your concern using live chat (like texting online) at www.crisiscentrechat.ca between noon and 1am. They can help you, and they can suggest good local resources. If you’re at risk of harm or think someone else is in danger and you need help right now, call 911. + It’s scary to have thoughts of suicide or hear that someone you can care about has thoughts of suicide. Thoughts of suicide don’t mean that someone will end their life, but it’s a sign that they need extra help or support. If you have thoughts of suicide, it’s important to talk with your doctor or mental health service provider. If you’re supporting someone else, encourage them to seek help. + Coping With Suicidal Thoughts is a good resource to help you understand and manage difficult feelings. + Our info sheet on suicide has information on suicide, helping someone else, and finding help. What is Suicide? is a booklet with audio in plain language for lower literacy readers. + The Centre for Suicide Prevention has many resource toolkits on suicide for different audiences, including people serving in the military, young people, teens, older adults, Aboriginal community members, and LGBT community members." +2447683,"Cannabis is legally allowed to 19+ but there are doctor groups saying it’s potentially harmful to age 25. Any use or certain use? What’s myth and what’s fact? If I’m a parent, what should I tell my young adult?","Using cannabis has the potential for benefits and harms. Young people use cannabis, like other psychoactive drugs, to feel good, to feel better, to do better or to explore. Trying cannabis out of curiosity, as an experiment, or while socializing with friends, is related to moderate use and lower potential for harm. Using cannabis to cope with daily life, deal with unpleasant feelings, or fit in with a social group has higher potential for harm. This is because dealing with these kinds of issues is associated with frequent and heavier use, less thought about potential harms and little consideration of alternatives for coping such as talking with a parent or trusted adult or physical activity with friends. + Evidence suggests that the younger a person is when they start using cannabis and the more often they use, the greater the potential for harms. The legal age to use cannabis in BC is 19. However, our brains do not finish developing until about age 25. Delaying cannabis use until early adulthood may reduce potential harmful effects on the brain. + Some young people, especially those with many factors predisposing them to serious and persistent mental health issues, should probably not use cannabis. Cannabis has been associated with an increased risk for psychosis and schizophrenia in this small group of people. Some people with serious mental health issues have also reported that using cannabis has helped them cope with their illness by helping them feel less anxious or stressed. As in most situations, balancing potential benefits and harms of using cannabis will be key for young people who have serious mental health concerns. + Mixing drugs, such as cannabis and alcohol, can also increase the possibility of experiencing harms. Intoxication may be more intense and long lasting and the young person may not appreciate how impaired they are. We often suggest, “Not too much, not too often, and only in a safe context” as a simple way to gauge your use of any psychoactive substance. + As a parent or caring adult, an open respectful relationship with a young person is one of your best resources and ways to prevent harms from substance use. Letting the youth know they can approach you at any time to talk about cannabis, other substances, or anything else of concern to them, says they matter to you and you are ready to listen and engage in dialogue with them. This is a great place to begin addressing anything that might come the young person’s way in life! + The Canadian Institute for Substance Use Research, formerly CARBC, is a member of the BC Partners for Mental Health and Addictions Information. The institute is dedicated to the study of substance use in support of community-wide efforts aimed at providing all people with access to healthier lives, whether using substances or not. For more, visit www.cisur.ca." +7995219,What's the difference between mental health and mental illness?,"‘Mental health’ and ‘mental illness’ are increasingly being used as if they mean the same thing, but they do not. Everyone has mental health, just like everyone has health. As the World Health Organization famously says, “There is no health without mental health.” In the course of a lifetime, not all people will experience a mental illness, but everyone will struggle or have a challenge with their mental well-being (i.e., their mental health) just like we all have challenges with our physical well-being from time to time. + When we talk about mental health, we’re talking about our mental well-being: our emotions, our thoughts and feelings, our ability to solve problems and overcome difficulties, our social connections, and our understanding of the world around us. + A mental illness is an illness the affects that way people think, feel, behave, or interact with others. There are many different mental illnesses, and they have different symptoms that impact peoples’ lives in different ways. + Health isn’t like an on/off switch. There are different degrees of health. People move on a continuum ranging from great or good health to so-so health to poor health to illness or disability. For example, some people have good health and have no problems going about their lives. Some people experience serious health problems, and their poor health has a very negative impact on their life. Some people have serious health problems that last for a long time, and others have serious health problems that resolve very quickly. Many people fall somewhere in the middle—they’re generally in good health, though the occasional problem may come up. Mental health is the same way. + Just as someone who feels unwell may not have a serious illness, people may have poor mental health without a mental illness. We all have days where we feel a bit down, or stressed out, or overwhelmed by something that’s happening in our lives. An important part of good mental health is the ability to look at problems or concerns realistically. Good mental health isn’t about feeling happy and confident 100% of time and ignoring any problems. It’s about living and coping well despite problems. + Just as it’s possible to have poor mental health but no mental illness, it’s entirely possible to have good mental health even with a diagnosis of a mental illness. That’s because mental illnesses (like other health problems) are often episodic, meaning there are times (‘episodes’) of ill health and times of better or good health. + With the right supports and tools, anyone can live well—however they define well—and find meaning, contribute to their communities, and work towards their goals." +2903196,Where can I find more information about depression?,"Our info sheets on mood disorders, bipolar disorder, and depression offer information on mood problems, treatment options, and resources in BC. We also offer What is Depression? It’s a booklet with audio in plain language for lower literacy readers. You can take a screening self-test for depression (and other mental health concerns). The adult depression tool also screens for signs of bipolar disorder. + If you want to go beyond the basics, our Managing Depression series can help you deal with a diagnosis of depression, work with doctor, and prevent relapse of depression. You’ll also find many experiences and perspectives around depression—reading personal stories can help you feel less alone." +4893447,What’s the difference between anxiety and an anxiety disorder?,"Anxiety is a normal reaction to many different kinds of events and situations in our lives. Anxiety is one of our internal warning systems that alerts us to danger or other threats and prepares our bodies to fight back or get out of a dangerous situation. (Scientists call this the ‘fight, flight, or freeze’ response.) + A manageable amount of anxiety from time to time can be helpful. For example, it can motivate you to prepare for a test a school or finish a task at work. Even happy events like moving to a new home or celebrating an important milestone can bring up anxiety—all of this is just part of being human. + Anxiety is a problem when it becomes overwhelming or unmanageable and it comes up unexpectedly. Anxiety disorders are mental illnesses that have a big impact your life. People may avoid going about their daily lives in order to avoid anxiety. They may experience a lot of uncomfortable physical sensations and physical health problems. Many people say that they know their anxiety isn’t based in reality, but they feel ‘trapped’ by their thought and feelings. Anxiety disorders can be treated. It’s important to seek help if you’re concerned about anxiety in your life. + Normal anxiety... + Is related to a specific situation or problem + Lasts only as long as the situation or problem/p> + Is proportional to the situation or problem/p> + Is a realistic response to a realistic problem or situation/p> + When someone experiences an anxiety disorder... + Anxiety may come up unexpectedly, for seemingly no reason + The anxiety response to a situation or problem may be much stronger that they would expect + They may experience a lot of unrealistic anxiety, such as fear of a situation that likely will never happen + Anxiety may last for a long time, even when the situation or problem has been resolved + Anxiety may feel impossible to control or manage + They may avoid situations or things that they believe to trigger anxiety symptoms + Here’s an example of normal anxiety and an anxiety disorder. Many people are a bit nervous about flying, which is a totally normal reaction. Yet, if they have to travel for work, they can can get on a plane without any problems. Someone with an anxiety disorder, on the other hand, may not be able to travel to the airport—even if it puts their job in jeopardy. + *Formerly classified as an anxiety disorder and currently classified as Trauma- and Stressor-Related Disorders + **Formerly classified as an anxiety disorder and currently classified as Obsessive-Compulsive and Related Disorders" +8612349,What's the difference between anxiety and stress?,"Stress and anxiety are often used interchangeably, and there is overlap between stress and anxiety. Stress is related to the same ‘fight, flight, or freeze’ response as anxiety, and the physical sensations of anxiety and stress may be very similar. + The cause of stress and anxiety are usually different, however. Stress focuses on mainly external pressures on us that we’re finding hard to cope with. When we are stressed, we usually know what we’re stressed about, and the symptoms of stress typically disappear after the stressful situation is over. + Anxiety, on the other hand, isn’t always as easy to figure out. Anxiety focuses on worries or fears about things that could threaten us, as well as anxiety about the anxiety itself. Stress and anxiety are both part of being human, but both can be problems if they last for a long time or have an impact on our well-being or daily life." +6062232,What's the difference between sadness and depression?,"Sadness is a normal reaction to a loss, disappointment, problems, or other difficult situations. Feeling sad from time to time is just another part of being human. In these cases, feelings of sadness go away quickly and you can go about your daily life. + Other ways to talk about sadness might be ‘feeling low,’ ‘feeling down,’ or ‘feeling blue.’ A person may say they are feeling ‘depressed,’ but if it goes away on its own and doesn’t impact life in a big way, it probably isn’t the illness of depression. + Depression is a mental illness that affects your mood, the way you understand yourself, and the way you understand and relate to things around you. It can also go by different names, such as clinical depression, major depressive disorder, or major depression. Depression can come up for no reason, and it lasts for a long time. It’s much more than sadness or low mood. People who experience depression may feel worthless or hopeless. They may feel unreasonable guilty. Some people may experience depression as anger or irritability. It may be hard to concentrate or make decisions. Most people lose interest in things that they used to enjoy and may isolate themselves from others. There are also physical signs of depression, such as problems with sleep, appetite and energy and unexplainable aches or pains. Some may experience difficult thoughts about death or ending their life (suicide). Depression lasts longer than two weeks, doesn’t usually go away on its own, and impacts your life. It’s a real illness, and it is very treatable. It’s important to seek help if you’re concerned about depression." +9045344,What is dysthymia or persistent depressive disorder?,"Dysthymia, now called persistent depressive disorder or PDD, is a mood disorder. It is related depression (major depressive disorder). The difference between the two is in the number of symptoms and the amount of time that they last. Someone diagnosed with PDD would experience two to four of the symptoms below for at least two years with no periods of wellness during that time, while someone diagnosed with major depressive disorder would experience five or more of the symptoms below for at least two weeks. + Symptoms of PDD include: + There is a myth that PDD is not as severe an illness as major depressive disorder, but research shows that the disability of the illness, like the ability to work productively and enjoy hobbies, may be as severe in PDD as it is in major depressive disorder. As PDD involves a smaller number of symptoms that last for a very long time, many people begin to assume PDD is just part of their personality rather than an illness that can be effectively treated. So you should most certainly talk to a doctor or mental health professional if you think you might have PDD." +9020440,What is cyclothymic disorder?,"Cyclothymic disorder is a subtype of bipolar disorder. Much like bipolar disorder, the symptoms of cyclothymia include three or more symptoms of hypomania, and five or more symptoms of depression. Like bipolar disorder, people may experience wellness between episodes of hypomania and depression. + Symptoms of hypomania include: + Symptoms of depression include: + Talk to a doctor or mental health professional if you think you might have cyclothymic disorder." +5819325,What does rapid cycling mean?,"Rapid cycling means that someone diagnosed with bipolar disorder (or depression) experiences four or more episodes of depression and/or mania in one year. + Rapid cycling can happen any time someone experiences bipolar disorder—about 10-20% of people diagnosed with bipolar disorder experience rapid cycling at some point. In many cases, rapid cycling eventually goes away on its own and people return to a pattern of longer and less frequent episodes." +4816493,Where can I find information and help for borderline personality disorder?,"Borderline personality disorder or BPD is a treatable illness. It’s made up of five groups of symptoms around behaviours, emotions, relationships, sense of identity, and awareness. You can read our info sheet on borderline personality disorder. We also have an entire issue of Visions Journal on BPD, where you’ll find information on treatments and support and personal stories from people who are managing BPD and living well. + The Borderline Personality Disorder Society of BC offers a support group in Victoria and a resource library, and they have a listing of services in BC. + In Vancouver, the DBT Centre of Vancouver offer dialectical behaviour therapy (DBT) ad specializes in helping people who experience BPD. The offer individual, group, and family counselling, and they have a useful blog on DBT skills. + There are several good, helpful books available now, including:" +9178453,What is schizoid personality disorder?,"A personality disorder is a pattern of thoughts, feelings, and behaviours that last for a long time and causes some sort of problem or distress. + Schizoid personality disorder or SPD affects social interactions and relationships. People with SPD may have a hard time relating to others and showing emotions. They may avoid close relationships and prefer to spend their time alone, seeming distant even to close family members. Many people don’t respond to strong emotions like anger, even when others try to provoke them. On the outside, people with SPD may seem cold or aloof, showing little emotion. + While they have a similar name, schizoid personality disorder isn’t the same as schizophrenia. + Schizoid personality disorder is believed to be relatively uncommon. While some people with SPD may see it as part of who they are, other people may feel a lot of distress, especially around social interactions. Some medications may help people manage symptoms and psychotherapy may help people build new skills and improve relationships. + To find help for schizoid personality disorder, talk to your family doctor, find a psychologist through the BC Psychological Association, or call 811 to talk to a HealthLink BC navigator." +9679704,What is antisocial personality disorder?,"A personality disorder is a pattern of thoughts, feelings, and behaviours that last for a long time and causes some sort of problem or distress. + Antisocial personality disorder or ASPD affects the way people think about the rights of others. Someone with ASPD may disregard laws or expectations, lack remorse when they hurt others or break the law, make reckless decisions, and believe they are superior to others. People may see someone with ASPD as overly dramatic, impulsive, manipulative, and deceitful. Some people may appear charming, at least on the surface. Like all mental illnesses, antisocial personality disorder is a spectrum. Some people may only occasionally act out, while others may break the law often and spend a lot of time in the criminal justice system. + ASPD is only diagnosed in adults, but people with ASPD start to have problems with conduct or antisocial behaviours at a young age. They may be diagnosed with conduct disorder during childhood. + Treatment for antisocial personality disorder, usually psychotherapy, can help reduce the harms of ASPD and help people build empathy towards others. ASPD is treatable and it may improve as a person approaches middle age. + All of us have hurt someone else or acted without thinking of others' needed. It’s important to remember that antisocial personality disorder is an enduring pattern around lack of empathy and lack of remorse. Only a doctor or mental health professional can diagnose illnesses like ASPD. + To find help for antisocial personality disorder, talk to your family doctor, find a psychologist through the BC Psychological Association, or call 811 to talk to a HealthLink BC navigator." +9167296,What is obsessive-compulsive personality disorder?,"A personality disorder is a pattern of thoughts, feelings, and behaviours that last for a long time and causes some sort of problem or distress. + Obsessive-compulsive personality disorder or OCPD is about control. People with OCPD have very inflexible thinking and expect everything to be ordered, perfect, and done their ""correct"" way. This happens at the expense of other important things in life, including relationships with others. Work can take priority over every other part of life, too, and people with OCPD may seem excessively dedicated, but may be unable to complete tasks due to perfectionism. They may struggle to delegate and may distrust other people’s contributions. People with OCPD may not tolerate uncertainty and may have a very rigid understanding of the world—something is either right or wrong. They may also have a hard time spending money on themselves or others, and they may experience hoarding, the inability to throw away items from their homes. The conflict between the desire for neatness or order and the inability to throw things out may cause a lot of anxiety. + While obsessive-compulsive personality disorder and obsessive-compulsive disorder (OCD) have a similar name, they are not the same illness. People with obsessive-compulsive disorder usually understand that their obsessions and compulsions are illogical and usually experience a lot of distress, even though they may not be able to stop obsessions or compulsions. Compulsions are an attempt to reduce anxiety, not to find pleasure. People with obsessive-compulsive personality disorder may view their thoughts as part of who they are, see their thoughts as logical, and may find pleasure or benefit in completing compulsive tasks. They may experience a lot of distress when they can’t achieve control or the perfectionism they want. + Obsessive-compulsive personality disorder is one of the most common personality disorders. Treatment may include some combination of psychotherapy, medication, and self-help strategies. To find help for OCPD, talk to your family doctor, find a psychologist through the BC Psychological Association, or call 811 to talk to a HealthLink BC navigator." +9049618,What is binge-eating disorder?,"Binge-eating disorder or BED is a type of eating disorder. It involves episodes of eating a lot of food in a short amount of time, past the point of feeling full, and feelings of being out of control or unable to stop eating. People who experience binge-eating disorder may binge even when they don’t feel hungry. They may feel temporarily comforted by food, and then feel depressed, upset, guilty, or ashamed of their eating. As a result, many people try to keep binge-eating symptoms a secret. You can’t tell if someone experiences binge-eating disorder just from the way they look or the way they eat around others. + While a lot of people have the experience of eating too much a few times and feeling uncomfortable after, people who experience binge-eating disorder experience many binges for a long period of time. + Binge-eating disorder is treatable. Talk to your doctor or a mental health professional if you think you might have binge-eating disorder." +7984793,What’s the difference between dissociative identity disorder (multiple personality disorder) and schizophrenia?,"Sometimes, people confuse dissociative identity disorder, formerly known as multiple personality disorder, and schizophrenia. Schizophrenia does mean “split mind,” but the name was meant to describe the ‘split’ from reality that you experience during an episode of psychosis, as well as changes in thoughts, emotions, and other functions. Dissociative identity disorder, on the other hand, does cause a split or fragmented understanding of a person’s sense of themselves. + Dissociative identity disorder is really more about fragmented identities than many different personalities that develop on their own. Most people see different parts of their being as part of the whole person. For people who experience DID, identity fragments may have very different characteristics, including their own history, identity, and mannerisms. A key part of DID is dissociation—feeling detached to the world around you. People who experience DID may have many unexplainable gaps in their memory, forget information they’re already learned, or have difficulties recalling things they’ve said or done. Unlike portrayals of DID on TV or in movies, DID may not be obvious to others, and it can take a lot of time to come to the diagnosis. + Schizophrenia is a serious mental illness that causes hallucinations (sensations that aren’t real) and delusions (beliefs that can’t possibly be true, in addition to other symptoms like jumbled thoughts, jumbled speech, and difficulties expressing emotions. People who experience schizophrenia may hear or feel things that aren’t real or believe things that can’t be real, but these aren’t separate identities." +6085633,What's the difference between psychosis and schizophrenia?,"Psychosis is a syndrome or group of symptoms. Someone experiencing an episode of psychosis is having a ‘break’ with reality. Major symptoms of psychosis are hallucinations and delusions. Hallucinations are sensations that are not real, such as hearing voices or sounds that aren’t real. Hearing voices is a common hallucination, but hallucinations can be experiences with any sense—hearing, sight, smell, taste, or touch. Delusions are strong beliefs that can’t possibly be true. Common delusions include the belief that someone is following or monitoring you, or the belief that you have extraordinary powers or abilities. Other symptoms of psychosis include difficulties concentrating, completing tasks, or making decisions. Thoughts may feel ‘jumbled’ or confused. Some people have a hard time following conversations or speaking clearly. Psychosis can even affect the way people move or express their emotions. + Schizophrenia is a mental illness that causes psychosis, but schizophrenia also has other symptoms. And it isn’t the only cause of psychosis. In some cases, other mental illnesses cause psychosis, including depression, bipolar disorder, dementia and borderline personality disorder. Psychosis may come up during times of extreme stress, a major lack of sleep, or trauma. People who are using or withdrawing from certain drugs or medications may experience psychosis. Psychosis may also be caused by a brain injury, neurological problem, or other health problem. So while psychosis can be a part of schizophrenia, it can be caused by many other things too. + Psychosis and schizophrenia are treatable. It’s important to seek help as soon as possible." +1896541,What are positive and negative symptoms?,"Positive and negative symptoms are medical terms for two groups of symptoms in schizophrenia. + Positive symptoms add. Positive symptoms include hallucinations (sensations that aren’t real), delusions (beliefs that can’t be real), and repetitive movements that are hard to control. + Negative symptoms take away. Negative symptoms include the inability to show emotions, apathy, difficulties talking, and withdrawing from social situations and relationships. + There is also a third group of symptoms, usually called cognitive symptoms. This includes anything related to thinking, such as disorganized thoughts, memory problems, and difficulties with focus and attention." +4962901,What is a prodrome?,"Prodrome is a medical term for early signs or symptoms of an illness or health problem that appear before the major signs or symptoms start. + Psychosis, a group of symptoms found in disorders like schizophrenia, is one illness with a specific prodrome. With psychosis, prodrome signs and symptoms start before full symptoms like hallucinations and delusions appear. + Common symptoms in the prodrome of psychosis include: + These symptoms are found in many other mental illnesses, so it isn’t always clear at the time if this is a prodrome of psychosis or schizophrenia or something else. It’s best to seek help whenever you are concerned about your mental health or a loved one’s mental health. Psychosis and schizophrenia are much easier to manage and treat when treatment starts early." +6869967,I’m an adult and I think I might have ADHD. What can I do next?,"While we think of attention-deficit/hyperactivity disorder as an illness that affects children, it can last into adulthood—and some people aren’t diagnosed until much later in life. + ADHD is diagnosed like any other mental illness, so your family doctor is a good place to start. Your family doctor may be able to assess your mental health and start treatment, if needed, or they may refer you to more specialized mental health services. + There are a few organizations that can help you find good resources and find some support: + The Canadian Attention Deficit Hyperactivity Disorder Resource Alliance (CADDRA) is an organization that supports health professionals who research ADHD, treat and support people diagnosed with ADHD, and trains professionals. In the ‘Public Info’ section of their website, you’ll find more information on adult ADHD and the assessment process. You’ll also find extensive resources and recommended publications. + The Centre for ADHD Awareness, Canada provides education and advocacy for Canadians who experience ADHD. They have a section on their website for adults, including information on symptoms and assessments, treatments, ADHD in the workplace, resources, and a reading list. + CHADD Vancouver offers a monthly support group for adults in the Vancouver area." +4824231,What’s the difference between substance use and addiction?,"People tend to use the word “addiction” to mean very different things. “I am addicted to shopping” might mean only that the speaker likes to shop. On the other hand, “He is addicted” might mean the speaker thinks the other person is completely unable to control his own behaviour. When people use the word about psychoactive (mind-altering) substances like alcohol, tobacco, or other drugs, they often assume these drugs are dangerous and have the power to control human behaviour. + The evidence, however, suggests a quite different picture. While substance use can clearly contribute to health and social problems, substances can be beneficial for some people in some situations. Many people celebrate a special occasion with a nice glass of wine, for example. Some people use tobacco as a powerful symbol in cultural and spiritual ceremonies. In fact, substances have been used by humans throughout history for many reasons: to feel good, to feel better, to improve performance, for cultural/spiritual reasons, and to have new experiences. + Substance use is more complicated than just “good” or “bad.” It’s helpful to think of substance use along a continuum, from beneficial use to harmful use. Along the middle of the continuum, substance use may be both beneficial and harmful. You have an enjoyable night out with friends, but feel a little ill the next day. At the far end of the continuum, some people develop dependence—they need to continually use the drug in order to feel normal and will keep using even when that leads to financial difficulties, problems at home or at work, health problems, or legal problems. + In general, substance use is a problem when it causes problems for you or others—and how much use causes problems will be different for different people in different situations. The reason a person uses a substance influences the risk of developing problems. For instance, if a person uses a substance to have fun, only occasional social use may follow. But when a person uses a substance to cope with a long-term problem such as social anxiety, then more long lasting and intense use may follow. Managing our risk involves being aware of why we are using and what impacts our use is having on ourselves and those around us. The wisdom of our ancestors suggests a guiding principle—not too much, not too often, and only in safe contexts." +4294616,How can I find help for an alcohol or drug use problem?,"Seeking to make changes in the way you use substances like alcohol or other drugs? This can be an important step! + Some people are able to reduce their substance use or quit altogether on their own or with self-help materials. But most of us need support from other people—family members, friends, health professionals, or other people struggling with substance use problems. The right help for you depends on many factors. These include the type of drug you are using, how much and how often, your health and social situation and, of course, your own preferences. Getting help doesn’t mean giving up control of shaping your own path. You are still the one who makes the final decisions about the type and degree of change you make. + One way to get help is to talk to a doctor you trust and feel comfortable confiding in. If you aren’t comfortable talking in person, you can also get advice from a registered nurse (along with advice on programs or services in your area) by calling HealthLink BC at 8-1-1. Since some drugs are illegal, many people worry about what might happen if they talk about drug use. It’s important to know that in most cases, doctors have to protect your privacy—it’s the law. + In BC, the Alcohol and Drug Information Referral Service can help you find information on treatment options, support groups and other resources throughout the province. It’s free, confidential, and available 24/7. Call the Alcohol and Drug Information Referral Service at 1-800-663-1441 or 604-660-9382 in the Lower Mainland." +4373204,How do I know if I'm drinking too much?,"Sorting out if you are drinking too much can be complicated. You are unique and your relationship with alcohol is unique. No one has the same combination of life experiences and influences that you do. So even though you and your friend may choose to drink, how and why you use alcohol may be different. + Those of us who drink, seek benefits from alcohol, not difficulties. But sometimes we start using more, and more often, than makes sense. As a general rule, drinking alcohol becomes a problem when it negatively affects our life or the lives of others. Many people imagine this refers to people who consume alcohol “all day every day.” But even drinking too much on a single occasion can lead to a problem, for instance making a poor decision such as driving while impaired. + What’s also important to recognize is the potential for negative consequences related to drinking in various contexts (i.e., places, times and activities) and over time (e.g., coping with chronic problems). You can get personalized feedback related to your pattern of drinking as compared to Canada’s Low-Risk Alcohol Drinking Guidelines via the Alcohol Reality Check screening app. This short, simple screen can be used by people of all ages. + All alcohol use involves some risk. The reasons people use alcohol can influence their risk of developing problems. For instance, if a person uses alcohol to enhance special celebrations, only occasional social use may follow. But when a person drinks to cope with a long-term problem such as social anxiety, then more long lasting and intense use may follow. + By reflecting on your pattern of drinking you can manage your risk for immediate injury or death, your chances for long-term health consequences such as cancer or heart disease, and your risk of developing habitual patterns of drinking that may lead to these harms. + Whenever you decide to drink alcohol, it is helpful to know what steps you can take to ensure that your drinking behaviour is the most rewarding and least harmful possible. The following are some useful guidelines to consider. + Not too much. Managing how much you drink on a given occasion helps decrease risky behaviours. + Tip: Drink slowly and alternate between non-alcoholic and alcoholic beverages. + Not too often. Drinking in moderation helps to reduce harms to ourselves and others over time. + Tip: Keep less alcohol at home and set limits on how much you are going to drink each week, avoiding drinking on some days. + Only in safe contexts. Making informed decisions about where you drink helps to minimize alcohol-related harm. + Tip: If going to a bar, stay with a group and choose an establishment that is well lit and near safe transportation options. + For information on treatment options and resources throughout BC, call the Alcohol and Drug Information Referral Service at 1-800-663-1441. In Greater Vancouver, call 604-660-9382. + To better understand how substances play a role in your life, visit the You and Substance Use workbook on the HeretoHelp website. + The Canadian Institute for Substance Use Research, formerly CARBC, is a member of the BC Partners for Mental Health and Addictions Information. The institute is dedicated to the study of substance use in support of community-wide efforts aimed at providing all people with access to healthier lives, whether using substances or not. For more, visit www.cisur.ca." +7807643,"If cannabis is dangerous, why are we legalizing it?","Cannabis smoke, for example, contains cancer-causing toxins. However, the risk of developing some cancers (e.g., mouth, tongue and lung) is less for cannabis smokers than tobacco smokers, partly because they tend to smoke less than tobacco users. And, while all drugs have an effect on the brain, the particular properties of the drug influence the level of risk of harmful consequences. The negative effects of cannabis on the brain, for example, seem to be less than the effects of some substances such as alcohol. + Legalizing cannabis provides an opportunity to put in place regulations to minimize potential harms. The danger of buying and using any illegal drug is that we can never know for sure what exactly is in it. Cannabis is legal in Canada as of October 17, 2018. Adults (over age 19 in BC) are now permitted to possess up to 30 grams of cannabis in public. Cannabis is regulated by the Province of British Columbia and will be sold through the Liquor Distribution Branch. Cannabis will be tested for quality. + When drugs are produced and obtained inside a regulated system, it is possible for us to know about the contents and dosage of what we are taking. This helps us manage the risks. However, it is likely that cannabis will still be available outside the government system. It is important to know that the quality of cannabis obtained from a dealer or a friend is unknown and may contain contaminants like mold, mildew, or fillers that may be toxic. + The legalization of cannabis also provides us with openings to engage in honest and thoughtful discussions about drug use with our families and communities. When dealing with complex issues, like cannabis policy, no one has all the answers. But as community members, we all have thoughts, feelings and experiences around drugs and drug use to share with each other. Engaging together to explore and share ideas will help us discover how to manage use, as individuals and communities, in ways that maximize benefit and minimize harm. + The Canadian Institute for Substance Use Research, formerly CARBC, is a member of the BC Partners for Mental Health and Addictions Information. The institute is dedicated to the study of substance use in support of community-wide efforts aimed at providing all people with access to healthier lives, whether using substances or not. For more, visit www.cisur.ca." +4352464,How can I convince my kids not to use drugs?,"You can't. But you can influence their capacity to make good choices in a world where alcohol and other drugs are available. It's about helping your child develop the skills to assess what might be helpful in achieving their goals in life. It's also about nourishing a supportive relationship, so they know where to go with questions or problems. + Opening up a discussion about drugs can help strengthen your relationship with your child. Inviting and allowing open, honest conversation about drugs (or any other subject) makes your child know that what they are thinking, feeling and experiencing matters to you. The goal is to get your child talking and sharing their thoughts and feelings. + When young people are asked thoughtful, open-ended questions exploring what they think, it helps them become interested in their own thoughts and behaviour. This process of self-reflection is part of developing critical thinking skills, a part of good decision-making. Critical thinking skills are actually an essential part of reducing the risks related to using drugs. Once young people have considered something carefully, they are a lot less likely to act out of impulse or in response to influence. + There is no rule about how or where a conversation about alcohol or other drugs should start. Even young children know drugs are a part of our culture. They see people drinking around them and are exposed to drugs on TV and in advertising. This makes it a subject that can be brought up naturally while getting ready for a family celebration where alcohol will be present, or if you are planning to visit a relative who uses tobacco, or while swapping stories at the dinner table about what happened at work and school that day. + Talking with teens and young adults about drugs as they make choices on the path into adulthood helps them to develop personal standards, minimize risks and critically assess popular beliefs about drug use. This can be particularly important as they transition to the legal age for using alcohol or cannabis and move out of the family home. While young adults have more independence and more legal rights, parents can continue to be an important sounding board on which to try out their thoughts and ideas. + The Canadian Institute for Substance Use Research, formerly CARBC, is a member of the BC Partners for Mental Health and Addictions Information. The institute is dedicated to the study of substance use in support of community-wide efforts aimed at providing all people with access to healthier lives, whether using substances or not. For more, visit www.cisur.ca." +6521784,What is the legal status (and evidence) of CBD oil?,"Cannabidiol or CBD is a naturally occurring component of cannabis. It is extracted from the cannabis plant and often made into an oil for use. CBD is not psychoactive, and does not produce the ‘high’ of THC (tetrahyrocannabinol), the primary psychoactive component of cannabis. CBD is legal in Canada and has been used in the treatment of various medical conditions. + All cannabinoids, including CBD, produce effects in the body by attaching to certain receptors in the brain or immune system. The human body also produces its own cannabinoids. It seems that CBD does not attach directly to receptors. Instead, it directs the body to use more of its own cannabinoids to produce the therapeutic effects associated with CBD. + Research suggests that CBD may provide relief for chronic pain. Sativex is a proprietary medication that combines THC and CBD and may be prescribed for the relief of pain associated with multiple sclerosis. There is also some evidence suggesting that CBD may be a promising support for people with opioid use disorders. The researchers noted that CBD reduced some symptoms associated with substance use disorders including anxiety, mood-related symptoms, pain, and insomnia. + After researching the safety and effectiveness of CBD oil for treating epilepsy, in 2018, the United States FDA approved CBD (Epidiolex) as a therapy for two rare conditions characterized by epileptic seizures. Other evidence suggests that CBD may be useful in the treatment of schizophrenia, though further research is needed before introducing CBD into medical practice. + There is some initial evidence that CBD may help people in the early stages of Alzheimer's disease keep the ability to recognize the faces of people that they know, and thus slow progression of the illness. Again, more research is needed in this area. + Because of the way cannabis and its products are metabolized, scientists believe there is a potential for interaction with other drugs, although nothing significant has yet been recorded. CBD has been found to be generally safe. Reports from patients indicate that negative drug interactions are not common. As with any other treatment, it is important to monitor your use of CBD and seek assistance if you experience any problems or have questions or concerns about its use. + The Canadian Institute for Substance Use Research, formerly CARBC, is a member of the BC Partners for Mental Health and Addictions Information. The institute is dedicated to the study of substance use in support of community-wide efforts aimed at providing all people with access to healthier lives, whether using substances or not. For more, visit www.cisur.ca." +3221856,What is the evidence on vaping?,"""Vaping"" is the term for using a device where liquids, often flavoured, are turned into vapour (hence, vaping) and inhaled. A vaping device consists of a mouthpiece, tank or reservoir to hold the liquid, a heating element and a battery to power the element. The liquid is heated to become a mist, inhaled through the mouth into the lungs where the nicotine or cannabis enters the bloodstream. Any residual vapour is exhaled. Vaping devices come in several types, shapes, and sizes, referred to as e-cigarettes, vape pens, vapes, mods, tanks, or e-hookahs. Vaping liquid (e-liquid, e-juice) consists of a solvent, usually propylene glycol or glycerol, flavour, and nicotine or cannabis, though it may not contain anything. In British Columbia you must be 19 years old to buy vaping products. + The number of young people who smoke cigarettes has declined over the past few years, while vaping has increased. E-cigarettes were developed as an alternative to smoking. The first devices were available in 2003 and looked much like a traditional cigarette. Nicotine vapour contains significantly fewer toxins and other particles than smoke from cigarettes. Vaping is a less harmful alternative to cigarettes and evidence suggests, it may help some people quit smoking. Evidence suggests vaping is likely not a gateway to smoking tobacco. + Though less harmful than smoking cigarettes, vaping still carries potential harms. There is a small exposure to nicotine and possible carcinogens in the vapour. (A carcinogen is a substance that has the potential to cause cancer). Some evidence suggests that young people may be unaware the vaping liquid often contains nicotine. E-cigarettes are not controlled and the nicotine content of vaping liquids varies significantly among brands. Other chemicals, flavourings, and heavy metals present in vaping liquids, have not as yet been well studied. Long-term health risks from vaping are thus undetermined. More research is needed in these areas. + Marketing strategies for vaping products, often on social media, are designed to appeal to young people. The range of flavours available, especially those that are fruity and sweet, and the look and feel of vaping devices attract youth. Young people can see vaping as fun and a way to socialize with friends and 'smoke' in a less harmful way. + Making the time and space for discussion and exploring the issues around vaping is one important way we can support young people and indeed, each other, in making good decisions about if, when, or how much to vape. We offer, ""not too much, not too often, and in a safe context"" as one way to think about using any substance. What this means to you may be a place for talking to start! + The Canadian Institute for Substance Use Research, formerly CARBC, is a member of the BC Partners for Mental Health and Addictions Information. The institute is dedicated to the study of substance use in support of community-wide efforts aimed at providing all people with access to healthier lives, whether using substances or not. For more, visit www.cisur.ca." diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index bd8f958..6a3f942 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -37,7 +37,36 @@ from sklearn.metrics import classification_report, precision_recall_fscore_support FLAGS = flags.FLAGS - +''' +We do not neeed data/canned_response.csv. +The canned response file is the mental health FAQ file. + +The empathetic data path represents the situation and emotion. +Our emotion classifier needs to produce one of the 32 emotions +encoded in this dataset. This classifier will be used to classify the emotion +of user's query i.e. angry, furious, sad etc. + +Instead of producing canned responses to each emotion, we can create +a conversation graph based on previous counseling sessions. +A conversation graph will enable us to have history and thus +chatbot will be able to have meaninful conversations. +We will use this data: https://huggingface.co/datasets/Amod/mental_health_counseling_conversations +So we need to add df_C dataframe to get this data. + +Using conversation graph is better than producing canned responses. + +How will this process work? + +This data has conversations with a counselor. +We will classify each of these conversations with an emotion because we have emotion classifier now. +Thus each emotion will have a separate graph. Let us say when someone is +sad, how conversation with a counseler proceeds is very predictable. +We will first classify user's emotion. +The ChatBot will then map user's query to a graph. +Then the conversation will proceed accordingly. +We do not have a lot of conversation data, so chatbot won't +be able to chat for long but for our project this should be fine. +''' flags.DEFINE_string( 'faq_data_path', './data/Mental_Health_FAQ.csv', 'Path to the FAQ dataset') flags.DEFINE_string('empathetic_data_path', 'hf://datasets/bdotloh/empathetic-dialogues-contexts/', @@ -222,7 +251,7 @@ def train_emotion_classifier(self): None """ emotions = self.df_B['emotion'] - contexts = self.df_B['context'] + contexts = self.df_B['situation'] X_emotion = self.model.encode(contexts.tolist()) y_emotion = emotions.tolist() From 84f009bb5396f2cdafd169f1995f2f4b11d7a6ab Mon Sep 17 00:00:00 2001 From: Navneet Verma Date: Sat, 26 Oct 2024 22:07:19 -0400 Subject: [PATCH 16/61] Added document for showing our detailed approach. --- Pipeline.txt | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Pipeline.txt diff --git a/Pipeline.txt b/Pipeline.txt new file mode 100644 index 0000000..65ed0ed --- /dev/null +++ b/Pipeline.txt @@ -0,0 +1,45 @@ +Datasets used for Mental Health Chatbot. +A. data/Mental_Health_FAQ.csv for informational response +B. https://huggingface.co/datasets/bdotloh/empathetic-dialogues-contexts to build emotion classifier +C. Build a conversation graph by selecting some conversations. There is a lot in this dataset and we may need to curate this data. + +https://huggingface.co/datasets/Amod/mental_health_counseling_conversations for mapping conversations appropriate to an emotion. + +For example, for the emotion of sadness, we will pick some actual responses and create a conversation_graph.csv file. + +User: I'm very depressed. How do I find someone to talk to? + +Counseler: If there is no one in your life with whom you feel comfortable, I would recommend identifying someone on this site, psychology today or goodtherapy.org who is in your area, then give that therapist a call to see if you would be a good match. + +User: I have family issues, and my dad was both violent and a cheater. + +Counseler: In general, our past is always somewhat alive and does inform our present experiences. All past experiences, both positive and negative are what have brought you where you are today, physically and emotionally. That being said, your father's behavior does not have to define you or your future. You have power over your life and your future. By learning more about yourself, you can learn to incorporate your past into your present life, without being defined by past traumas. The best way to grow and learn how to do this is to talk with someone about your experiences. By talking about your past and present struggles with a trusted confidante or helping professional you will hopefully learn how to be at peace with your past. + +User: I've gone to a couple therapy sessions so far and still everytime I walk in I get nervous and shaky. Is this normal? Should I still be feeling like this? + +Counseler: Certainly. It is ok to feel nervous. I wish you good luck! + + +This curated data is called: conversation_graph.csv which I will make. + +So this conversation can be represented as a graph. If we do not have conversation data for specific situation of sadness, we will just use +canned_responses.csv to select the response and that would be the end of the conversation. + +Pipeline of Mental Health Chatbot. + +1. Load all datasets with pandas - df_A, df_B, df_C + +2. Classify user's query into informational A or emotional B. + +3. If user's query is informational, produce a response directly from the answers in the FAQ file. + We already built, k nearest neighbor classifier for this purpose. + +4. Build a LinearSVC classifier to pinpoint exact emotion a user is having - sad, furious etc. + The B dataset has 32 emotions. So we cover a lot of emotions a user has. + +5. Build emotion graph based on dataset C. The graph is a network X graph which chat bot navigates. + For example, let us say chatbot detects user is having sadness as emotion. + I will pick out various conversations in this graph and curate them to present various kinds of situations for emotion of sadness. + +6. We will use similarity based node matching to produce a response. + \ No newline at end of file From 4dcb12113613287e9756a37e15e7df8a9e545ea7 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sun, 27 Oct 2024 17:16:06 -0400 Subject: [PATCH 17/61] Refactor and expand chatbot project structure, add documentation, and improve runtime logic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - **Refactor MentalHealthChatbot class**: - Moved the 'run' method out of the class and into 'conversation_chatbot_main.py' to follow best practices. - Updated imports in the new 'conversation_chatbot_main.py' file for better modularity. - Updated class method variable names to conform to snake_case naming style in 'load_data', 'preprocess_data', 'train_logistic_classifier', 'build_knn_classifier', and 'get_informational_response'. - Removed dependency on 'data/canned_responses.csv' and incorporated conversation graphs for emotional queries based on the mental health counseling conversations dataset. - **Enhance chatbot interaction**: - Expanded termination options in the interactive loop to include 'exit', 'quit', 'q', 'x', 'e', and 'Ctrl+C' for graceful exits. - **Update project documentation**: - Updated README running instructions to reflect changes in module names and data paths. - Added project structure section to README with descriptions of key files and directories. - Provided a module docstring for 'conversation_chatbot_main.py' detailing the purpose and usage of the script. - Updated the project’s structure in GraphQL format to better reflect the file organization. - **Future-proofing**: - Set up a clear separation of concerns between chatbot logic and runtime flow to improve maintainability and reusability. - Prepared the project for future improvements by updating docstrings, adhering to coding best practices, and documenting all key functionality. This commit includes all updates made during the conversation, enhancing the overall structure, usability, and clarity of the chatbot project. --- REAMD.md | 84 +++- __pycache__/text_dataset.cpython-39.pyc | Bin 2295 -> 0 bytes __pycache__/train_utils.cpython-39.pyc | Bin 2052 -> 0 bytes __pycache__/transformer_model.cpython-39.pyc | Bin 2206 -> 0 bytes conversation_chatbot_main.py | 120 +++++ data/canned_responses.csv | 10 - test.csv => data/test.csv | 12 +- mental_health_chatbot.py | 436 +++++++++---------- project strucutre.graphql | 14 - project-structure.graphql | 104 +++++ 10 files changed, 514 insertions(+), 266 deletions(-) delete mode 100644 __pycache__/text_dataset.cpython-39.pyc delete mode 100644 __pycache__/train_utils.cpython-39.pyc delete mode 100644 __pycache__/transformer_model.cpython-39.pyc create mode 100644 conversation_chatbot_main.py delete mode 100644 data/canned_responses.csv rename test.csv => data/test.csv (98%) delete mode 100644 project strucutre.graphql create mode 100644 project-structure.graphql diff --git a/REAMD.md b/REAMD.md index d77e4e4..66798ab 100644 --- a/REAMD.md +++ b/REAMD.md @@ -10,6 +10,7 @@ This project focuses on building a mental health chatbot that can provide empath - [Using venv](#using-venv) - [Running the Chatbot](#running-the-chatbot) - [Project Structure](#project-structure) +- [Schema Definition](#schema-definition) - [Usage](#usage) - [Credits](#credits) @@ -97,32 +98,99 @@ pip install -r requirements.txt Once you have installed the necessary dependencies and activated your environment, you can run the chatbot using the following command: ```bash -python main.py --faq_data_path ./data/Mental_Health_FAQ.csv --empathetic_data_path ./data/empathetic-dialogues-contexts --canned_responses_path ./data/canned_responses.csv +python conversation_chatbot_main.py --faq_data_path ./data/Mental_Health_FAQ.csv --empathetic_data_path ./data/empathetic-dialogues-contexts --conversations_data_path ./data/mental_health_counseling_conversations.csv ``` *alt view*: ```powershell -python main.py --faq_data_path ./data/Mental_Health_FAQ.csv \ +python conversation_chatbot_main.py --faq_data_path ./data/Mental_Health_FAQ.csv \ --empathetic_data_path ./data/empathetic-dialogues-contexts/ \ - --canned_responses_path ./data/canned_responses.csv + --conversations_data_path ./data/mental_health_counseling_conversations.csv ``` ### Optional Arguments - `--faq_data_path`: Path to the FAQ dataset CSV file (default is ./data/Mental_Health_FAQ.csv). - `--empathetic_data_path`: Path to the directory containing the empathetic dialogues datasets (default is ./data/empathetic-dialogues-contexts/). -- `--canned_responses_path`: Path to the canned responses CSV file (default is `./data/canned_responses.csv`). +- `--conversations_data_path`: Path to the CSV file containing mental health counseling conversations (default is ./data/mental_health_counseling_conversations.csv). - `--test_size`: Fraction of data to use for testing (default is 0.3). - `--random_state`: Seed for random number generation (default is 42). -The chatbot will start running, and you can interact with it via the command line. Type your query and receive a response. Type `exit` or `quit` to stop the chatbot. +The chatbot will start running, and you can interact with it via the command line. Type your query, and the chatbot will categorize it as either informational or emotional, providing a suitable response. +To exit the chatbot, you can type any of the following: + +- `exit` +- `quit` +- `q` +- `x` +- `e` +- `Or press Ctrl+C (keyboard interrupt)` + +## Project Structure + +The project follows a structured organization defined using GraphQL schema. Below is both the visual directory structure and its corresponding schema representation: + +```ps +mental_health_chatbot/ +│ +├── main.py # Entry point of the application +├── chatbot.py # Contains the MentalHealthChatbot class +├── utils.py # Utility functions +├── data/ +│ ├── Mental_Health_FAQ.csv +│ ├── canned_responses.csv +│ └── empathetic-dialogues-contexts/ +│ ├── train.csv +│ ├── valid.csv +│ └── test.csv +├── requirements.txt # List of dependencies +└── README.md # Project documentation +``` + +### Schema Definition + +The project structure is formally defined in `project-structure.graphql`: + +```graphql +# Import from ./project-structure.graphql +type Project { + name: String! + rootDirectory: Directory! +} + +# See complete schema in project-structure.graphql +``` + +### Key Components + +- **Source Files**: + - `main.py`: Entry point for the chatbot application + - `chatbot.py`: Core chatbot implementation + - `utils.py`: Helper functions and utilities + +- **Data Directory**: + - Mental health FAQ dataset + - Canned responses + - Empathetic dialogues training data + +- **Configuration**: + - `requirements.txt`: Project dependencies + - `README.md`: Documentation and setup instructions + +### Key Files and Directories + +- `data/`: Contains the required datasets for running the chatbot, including FAQ data, counseling conversation data, and empathetic dialogues. +- `mental_health_chatbot.py`: Implements the `MentalHealthChatbot` class, handling data loading, preprocessing, model training, and generating responses. +- `conversation_chatbot_main.py`: Contains the runtime logic and manages the interactive loop for user queries. +- `README.md`: Provides an overview of the project, installation steps, running instructions, and usage examples. +- `requirements.txt`: Lists the dependencies needed to run the project (e.g., `sentence-transformers`, `scikit-learn`). + +Ensure the datasets are correctly placed in the `data/` directory as per the structure, and you're ready to run the chatbot using the provided instructions. ### Usage -Once the chatbot is running, type any mental health-related query. -The chatbot will categorize your query as either informational or emotional. -It will respond with canned answers based on the classification. +Once the chatbot is running, type any mental health-related query. The chatbot will categorize your query as either informational or emotional. It will then respond with an appropriate answer based on its classification, using the FAQ dataset for informational queries and a conversation graph derived from counseling sessions for emotional queries. **Example interaction**: diff --git a/__pycache__/text_dataset.cpython-39.pyc b/__pycache__/text_dataset.cpython-39.pyc deleted file mode 100644 index 8625449832f8b18fff0eb43e851c4afbd58a23e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2295 zcmbVOOK%%D5GHq5T1mE32Pv8wC{Pyd!Aen`3!^AvxIocE4I>tE5DXC1lCsy?heA?` zEv$hS$+iEWhveA5#A{Ev^je_kp)=f-v~JQKLSbk5SPp0AoB1fQvoj#j?uCEM9_$eE zI}X|{g26+0%svQ7B+bZ#!aK-+AV~^LwL*s5Xvi^1d>idIq(W8sOre>OET%mSoYxEm3>gX<+jG^%A(p+WyK>( z$bdmRWGC0-QYROzIg!mu&9YL+v^Zy?kj$1(RFN)mXh8#$pn^S5?FCE90%yL`%FN5c zC^i?VHlsnU*jk-V7gm`AKgPpmX{PvGz}9_Z_3(h5VBeO^UMO~S`q+Qq)rz#h1OMv; zREDjwO=-4owI~eOo+~inM60m|9ZHUC>lL21?t35C&WzUf<>HEGsyIgj)55}*AH`Lg zFLGwo(}gM$#hPUdQggVlX<5`d-uwihB#8a0VILtog2#LU!jf0CqOWO1cu)l(!zu(> z;~$8}D_qdKABxnbB1@Ob_y}R-At%`MnrT%7bSrR(7OYzj)yi*=;l{BB9aMj)&s*5w z%>UxEI(>!HCTzI%eUT`qmnyL}AhpS@c%ou#8}r`}7u0b)?6_bqCp`=uPs}qHp+~O2 zw%iRi=L{nk8I{dke;pGY1AMv%;y0qV;Puz%;^6E=m*{{wJGu~dTG}&AE8fIvG{1H| z&LNjA=U>7W(*;5L+q6rUAC5QmI9h#_0RHQS{Qw@HJjgeeROFJrK&qh2pVw*oNZExh z>KrK+`4q~boG~Nvc?Ox27VYF|;oofAlqZG>(*A%Qua)TX`P&-sJ8Z+ig-{O~of=Zz zhnEjbEw*9kVvYsH`PVQo=nILL_ij7x*Au^n>(EdU2HX2xK?l4Bzbm>2M7l?AplsIT z0LD;2mrzW|f6xn&|9Z z239YM#Mi5f=R)F@QLo zdNk?}c6xn33uM=w!+ju(?!cPcwRp#m7B-J-Yqr EKL?v^xc~qF diff --git a/__pycache__/train_utils.cpython-39.pyc b/__pycache__/train_utils.cpython-39.pyc deleted file mode 100644 index d49bc335b654b72e3bc2f71e0cd5f1b97f975fdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2052 zcmb_d+iE057_O>5On1*@39g{KcxXg017TccuY!ncc5#IyEE*Jtm7%7qW~P%qZBNhjaNuS_m?c{FXg*9Q$kEri4mw7Pz41bNf{sm~FgTyn_ zvTeW|Lf?fh|AaxIIj+&1EKuz($jnpD++CoVue_R^>%vp;=f5jKCb#s1EChIm~$m@i6xp8NvQJnYC-bZqEbe*3N=lAv}XK2=iuv0oSQJ z^UzxM=8>77+)-`j*DdC~fnFfistJq%pgIf0!WZtZ{y7Fz%pAx!qWc)3D28?@Xj;fv zO}JSWa#V_(i#RVC&w7!C+!JHDV^>DOzKOSrqPJhNX~w%d@gXRySCwN`n$5K6U8ypv z=pZX80|#68LD;ivu&@^5N|YxlON((lq$-(k8JDBjXs+$>s!S#_-bxDvx(CyI2nGRV z-5JdWuvR!3$n=b_6uv1FI-F)yoW^z=QjW{1s-|kKkwJtb2-P^)<5U#Jte}d=25qWU zRw~WGs%VsSm=<7RkTR+Lj1GAw4=ygDT|lMLng77V9KXaLo(0?SUMb~HeCG7-j=CG# zv!=9rkI`I56%{n+iVLYpQRvNG0pJIP5@mI2^t1<+9&_#4Y;_0`l!LLLOt%D=6IyW{ z3~6%w0~JiWQt?WAm4H%dH&r}0{_H30x37H;?KdUUep4zcnyO8$F_vp^!N1{C9iIR_ZCsYkf_1FeJn5s0Bz3NmL zqHRN$@4$fCn>ZjH99%uOaR5>3P*kTjc;FirWG=Oed`a3Lufv92N5v~ctj65eZ zw|0TAWbQ1`FGGwJu*)*`;mijny0r(4Y5{i~V3@bC9G(S=9JOkr71Y5PkMRPJiMchv zo>vDoJ_?VC*al9WJlXyhG2cZlI(INCHa|l0r#rw&^Lz&#uu<)?)-7Np3!f9qz@JwP z{DK$UoGc(Af2!hLvCIqa7oxu?a_b5vQ$*4flX;kDgoMG7O6^U)}#prEW+w9gM;I>jx4872a-P- zWV{%w$%?!C^l6$;^LV)nq+cb*mj3N+^A%T9QCz#VAcCEERp|yAgY_vS!IuOkmFi-B zLs(S^ypW}kT_OyBg*kI}0EolV{J?G>f^<_Jr`14KJb~N>ww|)v)-FGx8PLiW3CLQC zWTIO|LsiiMbK0k33|WesMsN}e9BRDk4liY63hoo_Gj1x~4aMsQ8D4!e9j%M3Z~V7l z!u%EcQA0|5E8&57+w65J!C9Ip&S2Zpv>9S!d}CEk`{f?Omb?uE+6eFs?2-t`7~xIq z;@2*HklrWaV|d$bi4S1Xflael6vF(m`|U=w*NAArj^(e_xaQYf6e5N}2cN*r1izF| QP06L9bpZZ4-QcZ%0f(qakN^Mx diff --git a/__pycache__/transformer_model.cpython-39.pyc b/__pycache__/transformer_model.cpython-39.pyc deleted file mode 100644 index c0ab0b0a9f4b5dce7baa0c2d60bdc7888c7a5cd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2206 zcmb7GPjA~c6eso1j_m~9dgxLN19w_73_0!)w8M&Y8w#vhu?0OC0SHEZu+2HSA-*$xizKyzbP?KEN*Bqhwi17j&%*Kar2`AAj$U&9=7(2%azezbAjf>MytH zJ^^gLg|Ge+2uB>JXk5Q>=8Zj!en8yg{tLu?;hp=>{c*tYFK9n_4f5zXcC`EW>y6%n zg+OD>(b(g7?7u`4Tv_Uag@A`I&^UaF0yK`mT4ZmWC?@qJSD8=`b1qVLA0sp%@EjG| z#6`AbW{4`-kLl9<#F| zW$KbR_Q6Js)7to2?tYR9slhT!6LU%O2{AKK`)_q5oe9QuWBa(s&V+KZ%orhET%;1{ zXcQSu*`-j|D47-sQp>b@8M~lbJfW$OQ!{HEK4ce3R%8TD3L#@b>f>51jym~q>mGbv zn)G8J1{qwU=ibs=A&iW_3`$&jE3ZT}gk5BM%Ra|t2t0oUl5`8WgVHPgGAM&p0GuIk zM!><9);9Mbp+5VgNuR_1flN#S2rh)K@atZ&hWlv(*Aajl=ZTztMdrB%6$d+k8|5{V zNlv<|4LY0T-BZ&}#{W0#RRwLF)?l|-JN5UfhE7OVwLiQroKN|V+E~|2BHxDbs^bqT zlM01v@NP}MhFqfK{T&Y?|;0*7^)ciIxc32iof#bNKuY6SKrik9#Xv zPrO}p3qA8IDd1d@g2uff1r53MU30FyXCbVEGF-WN?X$1D4f%bpo-)PB96)G>TIb5m zfO|({>AX-dY4)nL9-P3C%oWVl2XbB*n96QT;#?XAMIxtUE#6G1wzgcw8>Xhhytl2j zcx!7D=Fh?uO1?D$x)C0dp9*t*gmWc$5*q;{CjS-UZ$ms*E_?f->cdNofI#`dEK@sf zf5V+c>LbUF>TBAl4$=Br#nv}dVY( Date: Sun, 27 Oct 2024 17:18:05 -0400 Subject: [PATCH 18/61] Removing TODOs removed pycache removed cannded response .csv moved test.csv into data - remove later updated readme.md to have the proper name. --- conversation_chatbot_main.py | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/conversation_chatbot_main.py b/conversation_chatbot_main.py index b1ac5c4..f933c33 100644 --- a/conversation_chatbot_main.py +++ b/conversation_chatbot_main.py @@ -42,36 +42,6 @@ from mental_health_chatbot import MentalHealthChatbot FLAGS = flags.FLAGS -''' -We do not neeed data/canned_response.csv. -The canned response file is the mental health FAQ file. - -The empathetic data path represents the situation and emotion. -Our emotion classifier needs to produce one of the 32 emotions -encoded in this dataset. This classifier will be used to classify the emotion -of user's query i.e. angry, furious, sad etc. - -Instead of producing canned responses to each emotion, we can create -a conversation graph based on previous counseling sessions. -A conversation graph will enable us to have history and thus -chatbot will be able to have meaninful conversations. -We will use this data: https://huggingface.co/datasets/Amod/mental_health_counseling_conversations -So we need to add df_C dataframe to get this data. - -Using conversation graph is better than producing canned responses. - -How will this process work? - -This data has conversations with a counselor. -We will classify each of these conversations with an emotion because we have emotion classifier now. -Thus each emotion will have a separate graph. Let us say when someone is -sad, how conversation with a counseler proceeds is very predictable. -We will first classify user's emotion. -The ChatBot will then map user's query to a graph. -Then the conversation will proceed accordingly. -We do not have a lot of conversation data, so chatbot won't -be able to chat for long but for our project this should be fine. -''' flags.DEFINE_string( 'faq_data_path', './data/Mental_Health_FAQ.csv', 'Path to the FAQ dataset') flags.DEFINE_string('empathetic_data_path', 'hf://datasets/bdotloh/empathetic-dialogues-contexts/', From 4f3e52597bf562317ccad01225bec384b4a82aed Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Sun, 27 Oct 2024 17:21:59 -0400 Subject: [PATCH 19/61] make Pipeline.txt into Pipeline.md corrected the README.md filename updated project structure. --- Pipeline.txt => Pipeline.md | 48 ++++++++++++++++++++++++++++++------- REAMD.md => README.md | 0 2 files changed, 39 insertions(+), 9 deletions(-) rename Pipeline.txt => Pipeline.md (61%) rename REAMD.md => README.md (100%) diff --git a/Pipeline.txt b/Pipeline.md similarity index 61% rename from Pipeline.txt rename to Pipeline.md index 65ed0ed..951e63e 100644 --- a/Pipeline.txt +++ b/Pipeline.md @@ -1,9 +1,10 @@ -Datasets used for Mental Health Chatbot. +# Datasets used for Mental Health Chatbot. + A. data/Mental_Health_FAQ.csv for informational response -B. https://huggingface.co/datasets/bdotloh/empathetic-dialogues-contexts to build emotion classifier -C. Build a conversation graph by selecting some conversations. There is a lot in this dataset and we may need to curate this data. +B. to build emotion classifier +C. Build a conversation graph by selecting some conversations. There is a lot in this dataset and we may need to curate this data. -https://huggingface.co/datasets/Amod/mental_health_counseling_conversations for mapping conversations appropriate to an emotion. + for mapping conversations appropriate to an emotion. For example, for the emotion of sadness, we will pick some actual responses and create a conversation_graph.csv file. @@ -13,16 +14,15 @@ Counseler: If there is no one in your life with whom you feel comfortable, I wou User: I have family issues, and my dad was both violent and a cheater. -Counseler: In general, our past is always somewhat alive and does inform our present experiences. All past experiences, both positive and negative are what have brought you where you are today, physically and emotionally. That being said, your father's behavior does not have to define you or your future. You have power over your life and your future. By learning more about yourself, you can learn to incorporate your past into your present life, without being defined by past traumas. The best way to grow and learn how to do this is to talk with someone about your experiences. By talking about your past and present struggles with a trusted confidante or helping professional you will hopefully learn how to be at peace with your past. +Counseler: In general, our past is always somewhat alive and does inform our present experiences. All past experiences, both positive and negative are what have brought you where you are today, physically and emotionally. That being said, your father's behavior does not have to define you or your future. You have power over your life and your future. By learning more about yourself, you can learn to incorporate your past into your present life, without being defined by past traumas. The best way to grow and learn how to do this is to talk with someone about your experiences. By talking about your past and present struggles with a trusted confidante or helping professional you will hopefully learn how to be at peace with your past. User: I've gone to a couple therapy sessions so far and still everytime I walk in I get nervous and shaky. Is this normal? Should I still be feeling like this? Counseler: Certainly. It is ok to feel nervous. I wish you good luck! - This curated data is called: conversation_graph.csv which I will make. -So this conversation can be represented as a graph. If we do not have conversation data for specific situation of sadness, we will just use +So this conversation can be represented as a graph. If we do not have conversation data for specific situation of sadness, we will just use canned_responses.csv to select the response and that would be the end of the conversation. Pipeline of Mental Health Chatbot. @@ -38,8 +38,38 @@ Pipeline of Mental Health Chatbot. The B dataset has 32 emotions. So we cover a lot of emotions a user has. 5. Build emotion graph based on dataset C. The graph is a network X graph which chat bot navigates. - For example, let us say chatbot detects user is having sadness as emotion. + For example, let us say chatbot detects user is having sadness as emotion. I will pick out various conversations in this graph and curate them to present various kinds of situations for emotion of sadness. 6. We will use similarity based node matching to produce a response. - \ No newline at end of file + +```py +We do not neeed data/canned_response.csv. +The canned response file is the mental health FAQ file. + +The empathetic data path represents the situation and emotion. +Our emotion classifier needs to produce one of the 32 emotions +encoded in this dataset. This classifier will be used to classify the emotion +of user's query i.e. angry, furious, sad etc. + +Instead of producing canned responses to each emotion, we can create +a conversation graph based on previous counseling sessions. +A conversation graph will enable us to have history and thus +chatbot will be able to have meaninful conversations. +We will use this data: +So we need to add df_C dataframe to get this data. + +Using conversation graph is better than producing canned responses. + +How will this process work? + +This data has conversations with a counselor. +We will classify each of these conversations with an emotion because we have emotion classifier now. +Thus each emotion will have a separate graph. Let us say when someone is +sad, how conversation with a counseler proceeds is very predictable. +We will first classify user's emotion. +The ChatBot will then map user's query to a graph. +Then the conversation will proceed accordingly. +We do not have a lot of conversation data, so chatbot won't +be able to chat for long but for our project this should be fine. +``` diff --git a/REAMD.md b/README.md similarity index 100% rename from REAMD.md rename to README.md From bd7238155aa688c5e1b1274085405d165104617a Mon Sep 17 00:00:00 2001 From: Navneet Verma Date: Sun, 3 Nov 2024 15:35:33 -0500 Subject: [PATCH 20/61] Added a new class for emotional response. --- Emotional_Response.py | 254 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 254 insertions(+) create mode 100644 Emotional_Response.py diff --git a/Emotional_Response.py b/Emotional_Response.py new file mode 100644 index 0000000..9665dad --- /dev/null +++ b/Emotional_Response.py @@ -0,0 +1,254 @@ +import nltk +from nltk.corpus.reader import documents +import pandas as pd +import gensim +from gensim import corpora +from nltk.corpus import stopwords +from nltk import word_tokenize +from nltk.stem import WordNetLemmatizer +from gensim.models import LdaModel, TfidfModel +import sentence_transformers +from numpy.linalg import norm +import networkx as nx +from sentence_transformers import SentenceTransformer +import numpy as np +import random + +class Emotional_Response(object): + + # Lemmatize and filter stop words + def get_filtered_base_words(self, query): + tokens = word_tokenize(query.lower()) + base_words = [self.lemmatizer.lemmatize(token) for token in tokens if token.isalpha()] + filtered_base_words = [word for word in base_words if word not in self.custom_stop_words] + return filtered_base_words + + # Preprocess context data by lemmatizing and filtering out stop words. + # This way, we can focus only on the relevant parts of the text. + def preprocess_data(self, contexts): + nltk.download('stopwords') + nltk.download('wordnet') + + lemmatizer = WordNetLemmatizer() + stop_words = set(stopwords.words('english')) + custom_stop_words = stop_words.union(['wa', + 'ha', + 'doe', + 'know', + 'want', + 'something', + 'someone', + 'person', + 'process', + 'start', + 'nothing', + 'make', + 'really', + 'get', + 'like', + 'know', + 'many', + 'say', + 'walk', + 'one', + 'two', + 'ca', + 'would', + 'said', + 'still', + 'got', + 'go', + 'back', + 'lot', + 'u', + 'think', + 'feel', + 'need', + 'help', + 'issue', + 'told', + 'always', + 'stop', + 'even', + 'see', + 'ever', + 'thought', + 'thing', + 'everything', + 'year', + 'going', + 'around', + 'time', + 'keep', + 'also', + 'much', + 'day', + 'tell', + 'anything', + 'give', + 'normal', + 'never', + 'every', + 'stay', + 'month', + ]) + + # Preprocess questions + processed_questions = [] + for context in contexts: + filtered_base_words = self.get_filtered_base_words(context) + processed_questions.append(filtered_base_words) + + return processed_questions + + # Apply Latent Dirichlet Allocation is a statistical generative model which uses + # co-occurrence of various words to identify a certain topic. LDA is widely used for + # topic modeling. + def apply_lda_model(self, processed_data): + self.dictionary = corpora.dictionary(processed_data) + + # Represent each data point by bag of words + self.corpus_bow = [self.dictionary.doc2bow(doc) for doc in processed_data] + + # Initialize tf-idf model + self.tfidf_model = TfidfModel(self.corpus_bow) + + # Transform the bag of words model to tf-idf model so that terms are weighted properly. + self.corpus_tfidf = self.tfidf_model[self.corpus_bow] + n_topics = 8 + self.lda_model = LdaModel(self.corpus_tfidf, + num_topics=n_topics, + id2word=self.dictionary, + alpha=0.01, + eta=0.01, + passes=20, + random_state=42) + + self.topics = self.lda_model.print_topics(num_words=25) + + for idx, topic in self.topics: + print(f'Topic:{idx}') + + # Split the topic words into word, probability pairs + word_probs = topic.split(' + ') + for word_prob in word_probs: + prob, word = word_prob.split('*') + print(f'Word={word} Probability={prob}') + + def get_topic(self, query): + filtered_base_words = self.get_filtered_base_words(query) + doc_bow = self.dictionary.doc2bow(filtered_base_words) + doc_tfidf = self.tfidf[doc_bow] + topics = self.lda_model.get_document_topics(doc_tfidf) + topic = max(topics, key=lambda x:x[1])[0] + return topic + + def tag_documents(self): + self.df['Topic'] = -1 + self.df['Conv_Id'] = -1 + + for idx, row in self.df.iterrows(): + topic = self.get_topic(row['Context']) + self.df.at[idx, 'Topic'] = topic + + # Each conversation in the present data is independent + self.df.at[idx, 'Conv_Id'] = idx + + def add_new_conv_graph(self, row): + conv_graph = nx.DiGraph() + from_node = row['Context'] + to_node = row['Response'] + conv_graph.add_node(from_node, conv_id=row['Conv_Id'], type='Context') + conv_graph.add_node(to_node, conv_id=row['Conv_Id'], type='Response') + conv_graph.add_edge(from_node, to_node) + topic = row['Topic'] + if topic not in self.graph_dict: + self.graph_dict[topic] = {} + self.graph_dict[topic][row['Conv_Id']] = conv_graph + + # Extend conversation graph by finding the leaf node + # Conversations are linear by design presently. + # In future, probabilistic conversations can be added. + def extend_conv_graph(conv_graph, row): + leaf_nodes = [node for node in conv_graph.nodes if conv_graph.out_degree(node) == 0] + + # Choose the first leaf node for insertion. + new_from_node = row['Context'] + new_to_node = row['Response'] + conv_graph.add_edge(leaf_nodes[0], new_from_node) + conv_graph.add_node(new_from_node, conv_id=row['Conv_Id'], type='Context') + conv_graph.add_node(new_to_node, conv_id=row['Conv_Id'], type='Response') + conv_graph.add_edge(new_from_node, new_to_node) + + def make_conversation_grah(self): + self.graph_dict = {} + conv_id = -1 + for idx, row in self.df.iterrows(): + topic = row['Topic'] + conv_id = row['Conv_Id'] + if (topic in self.graph_dict): + if row['Conv_Id'] in self.graph_dict[topic]: + conv_graph = self.graph_dict[topic][conv_id] + self.extend_conv_graph(conv_graph, row) + else: + # It is a new conversation but check if duplicate context exists. + found = False + for conv_id, conv_graph in self.graph_dict[topic].items(): + if (row['Context'] in conv_graph): + conv_graph.add_edge(row['Context'], row['Response']) + found = True + break + + if (found == False): + self.add_new_conv_graph(row) + else: + self.add_new_conv_graph(row) + + def __init__(self): + self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') + self.df = pd.read_json("hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) + contexts = self.df['Context'].tolist() + processed_data = self.preprocess_data(contexts) + self.apply_lda_model(processed_data) + self.tag_documents() + self.make_conversation_grah() + + + # Work-horse: Get the emotional query response by navigating the graph. + def get_response(self, query): + topic = self.get_topic(query) + + # Find the best matching conversation by matching the root + # node of conversation with the query. + query_embedding = self.encoder.encode(query) + sim_score = 0.0 + target_G = None + target_node = None + for topic, conv_graph in self.graph_dict[topic].items(): + root = None + for node in conv_graph: + if (conv_graph.in_degree(node) == 0): + root = node + break + if (root): + root_embedding = self.encoder.encode(root) + score = np.dot(query_embedding, root_embedding) / (norm(query_embedding) * norm(root_embedding)) + if (score > sim_score): + target_G = conv_graph + target_node = root + sim_score = score + + + # Get the neighbors of the target node + neighbors = list(target_G.neighbors(target_node)) + + if (neighbors): + selected_neighbor = random.choice(neighbors) + return selected_neighbor + else: + default_response = "Sorry, I do not have enough material on this topic to help you." + return default_response + + + + From 1637ea3d465f0c94d682cf70f15c9778a6e276e8 Mon Sep 17 00:00:00 2001 From: nverma42 Date: Sun, 3 Nov 2024 15:49:34 -0500 Subject: [PATCH 21/61] Update Pipeline.md lgtm --- Pipeline.md | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/Pipeline.md b/Pipeline.md index 951e63e..8397e39 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -1,8 +1,7 @@ # Datasets used for Mental Health Chatbot. A. data/Mental_Health_FAQ.csv for informational response -B. to build emotion classifier -C. Build a conversation graph by selecting some conversations. There is a lot in this dataset and we may need to curate this data. +B. Build a conversation graph by selecting some conversations. There is a lot in this dataset and we may need to curate this data. for mapping conversations appropriate to an emotion. @@ -20,40 +19,33 @@ User: I've gone to a couple therapy sessions so far and still everytime I walk i Counseler: Certainly. It is ok to feel nervous. I wish you good luck! -This curated data is called: conversation_graph.csv which I will make. +This curated data will be added to the mental health counseling conversations as an example of multi-stage conversation. So this conversation can be represented as a graph. If we do not have conversation data for specific situation of sadness, we will just use canned_responses.csv to select the response and that would be the end of the conversation. Pipeline of Mental Health Chatbot. -1. Load all datasets with pandas - df_A, df_B, df_C +1. Load all datasets with pandas - df_A, df_B 2. Classify user's query into informational A or emotional B. 3. If user's query is informational, produce a response directly from the answers in the FAQ file. We already built, k nearest neighbor classifier for this purpose. -4. Build a LinearSVC classifier to pinpoint exact emotion a user is having - sad, furious etc. - The B dataset has 32 emotions. So we cover a lot of emotions a user has. +4. Generate distinct situation categories using Latent Dirichlet Allocation (LDA) generative statistical model for dataset B. -5. Build emotion graph based on dataset C. The graph is a network X graph which chat bot navigates. - For example, let us say chatbot detects user is having sadness as emotion. - I will pick out various conversations in this graph and curate them to present various kinds of situations for emotion of sadness. - -6. We will use similarity based node matching to produce a response. +5. Build emotion graph based on dataset B. The graph is a network X graph which chat bot navigates. + For example, let us say chatbot detects user wants to discuss their addiction issues. + Then chatbot figures out the apppropriate topic and pick the best conversation for that topic. + +7. We will use similarity based node matching to produce a response. ```py We do not neeed data/canned_response.csv. The canned response file is the mental health FAQ file. -The empathetic data path represents the situation and emotion. -Our emotion classifier needs to produce one of the 32 emotions -encoded in this dataset. This classifier will be used to classify the emotion -of user's query i.e. angry, furious, sad etc. - -Instead of producing canned responses to each emotion, we can create -a conversation graph based on previous counseling sessions. +A conversation graph will be created based on previous counseling sessions. A conversation graph will enable us to have history and thus chatbot will be able to have meaninful conversations. We will use this data: @@ -64,10 +56,10 @@ Using conversation graph is better than producing canned responses. How will this process work? This data has conversations with a counselor. -We will classify each of these conversations with an emotion because we have emotion classifier now. -Thus each emotion will have a separate graph. Let us say when someone is -sad, how conversation with a counseler proceeds is very predictable. -We will first classify user's emotion. +We will classify each of these conversations with a situation e.g. relationship issues because we have LDA classifier now. +Thus each situation will have a separate graph. Let us say when someone is +sad because of relationship issues, how conversation with a counseler proceeds is very predictable. +We will first classify user's situation. The ChatBot will then map user's query to a graph. Then the conversation will proceed accordingly. We do not have a lot of conversation data, so chatbot won't From ad7f78b3652c9f946d4a2a0e68e9a91fc63f0e44 Mon Sep 17 00:00:00 2001 From: nverma42 Date: Sun, 3 Nov 2024 15:57:06 -0500 Subject: [PATCH 22/61] Update Pipeline.md lgtm --- Pipeline.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Pipeline.md b/Pipeline.md index 8397e39..f305b88 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -49,7 +49,7 @@ A conversation graph will be created based on previous counseling sessions. A conversation graph will enable us to have history and thus chatbot will be able to have meaninful conversations. We will use this data: -So we need to add df_C dataframe to get this data. +So we need to add df_B dataframe to get this data. Using conversation graph is better than producing canned responses. @@ -62,6 +62,8 @@ sad because of relationship issues, how conversation with a counseler proceeds i We will first classify user's situation. The ChatBot will then map user's query to a graph. Then the conversation will proceed accordingly. +Each response will sent to a summarization engine which will produce a compact response. +For the purpose of demo, we will show both response. We do not have a lot of conversation data, so chatbot won't be able to chat for long but for our project this should be fine. ``` From b33b770b38849291ee9b8eeec492d3da481a7550 Mon Sep 17 00:00:00 2001 From: Navneet Verma Date: Sun, 3 Nov 2024 16:01:57 -0500 Subject: [PATCH 23/61] Removed test files --- ChatBot.py | 137 ---------------------------------------------------- ChatBot2.py | 112 ------------------------------------------ ChatBot3.py | 62 ------------------------ 3 files changed, 311 deletions(-) delete mode 100644 ChatBot.py delete mode 100644 ChatBot2.py delete mode 100644 ChatBot3.py diff --git a/ChatBot.py b/ChatBot.py deleted file mode 100644 index a1c9726..0000000 --- a/ChatBot.py +++ /dev/null @@ -1,137 +0,0 @@ -from multiprocessing import context -import torch -import torch.nn as nn -import pandas as pd -from transformers import BertTokenizer -from torch.utils.data import Dataset, DataLoader -import torch.optim as optim -import re - -# To Do: -# 1. Make a simple model work. -# 2. Think about how would we generate vocabulary. -# 3. Add positional encoding. - -class TransformerModel(nn.Module): - def __init__(self, max_seq_len, input_dim, output_dim, hidden_dim, n_layers, n_heads, dropout): - super(TransformerModel, self).__init__() - self.encoder = nn.Embedding(input_dim, hidden_dim) - self.input_positional_embeddings = nn.Parameter(torch.zeros(1, max_seq_len, hidden_dim)) - self.decoder = nn.Embedding(output_dim, hidden_dim) - self.output_positional_embeddings = nn.Parameter(torch.zeros(1, max_seq_len, hidden_dim)) - self.transformer = nn.Transformer(hidden_dim, n_heads, n_layers, n_layers, dropout=dropout) - self.fc_out = nn.Linear(hidden_dim, output_dim) - self.dropout = nn.Dropout(dropout) - - def forward(self, src, trg): - input_seq_len = src.size(1) - src = self.encoder(src) + self.input_positional_embeddings[:, :input_seq_len, :] - output_seq_len = trg.size(1) - trg = self.decoder(trg) + self.output_positional_embeddings[:, :output_seq_len, :] - output = self.transformer(src, trg) - output = self.fc_out(output) - return output - - -# Text normalization -def tokenize_text(text): - # Remove punctuation - text = re.sub(r'[^\w\s]', '', text) - - # Tokenize - tokens = text.split(' ') - return tokens - -# Main driver - -# Generate vocabulary -df = pd.read_csv('./test - Copy.csv') -contexts = [] -responses = [] -for index, row in df.iterrows(): - contexts.append(row['Context']) - responses.append(row['Response']) - -# Normalize text and add to the vocabulary -vocab = dict() -word_decoder = dict() -input_tokens = [] -output_tokens = [] -code = 1 -for i in range(len(df)): - tokens = tokenize_text(contexts[i]) - input_tokens.append(tokens) - for token in tokens: - if (token not in vocab): - vocab[token] = code - word_decoder[code] = token - code += 1 - - tokens = tokenize_text(responses[i]) - output_tokens.append(tokens) - for token in tokens: - if (token not in vocab): - vocab[token] = code - word_decoder[code] = token - code += 1 - -# Add the out of vocabulary word -vocab['OOV'] = code -word_decoder[code] = 'OOV' - -# Set various parameters -max_seq_len = 16 -input_dim = len(vocab) # Vocabulary size for input -output_dim = len(vocab) # Vocabulary size for output -hidden_dim = 512 -n_layers = 6 -n_heads = 8 -dropout = 0.1 - -# Tokenize and convert to tensor -encoded_input_tokens = [] # Example tokenized input -for tokens in input_tokens: - encoded_tokens = [vocab[token] for token in tokens] - encoded_tokens = encoded_tokens + (max_seq_len - len(encoded_tokens)) * [0] - encoded_input_tokens.append(encoded_tokens) - -encoded_output_tokens = [] # Example tokenized output -for tokens in output_tokens: - encoded_tokens = [vocab[token] for token in tokens] - encoded_tokens = encoded_tokens + (max_seq_len - len(encoded_tokens)) * [0] - encoded_output_tokens.append(encoded_tokens) - -input_tensor = torch.tensor(encoded_input_tokens) -output_tensor = torch.tensor(encoded_output_tokens) - -model = TransformerModel(max_seq_len, input_dim, output_dim, hidden_dim, n_layers, n_heads, dropout) -optimizer = optim.Adam(model.parameters(), lr=0.01) -criterion = nn.CrossEntropyLoss(ignore_index=0) - -# Training loop -num_epochs = 5 -for epoch in range(num_epochs): - model.train() - optimizer.zero_grad() - output = model(input_tensor, output_tensor) - loss = criterion(output.view(-1, output_dim), output_tensor.view(-1)) - loss.backward() - optimizer.step() - - if (epoch + 1) % 10 == 0: - print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}') - -# Evaluate -model.eval() -input_tensor = torch.tensor([encoded_input_tokens[2]]) -print('Context: ' + str(input_tokens[2])) -generated_tokens = input_tensor.clone() - -output = [] -with torch.no_grad(): - logits = model(input_tensor, generated_tokens) - predicted_tokens = torch.argmax(logits, dim=-1) - output = predicted_tokens.numpy()[0] - -decoded_text = [word_decoder[code] for code in output] -print('Response: ' + str(decoded_text)) \ No newline at end of file diff --git a/ChatBot2.py b/ChatBot2.py deleted file mode 100644 index 61ffa9f..0000000 --- a/ChatBot2.py +++ /dev/null @@ -1,112 +0,0 @@ -from unittest.util import _MAX_LENGTH -import torch -import torch.nn as nn -from torch.optim import AdamW -from torch.utils.data import DataLoader, Dataset -from transformers import EncoderDecoderModel, BertTokenizer -from transformers import AutoModelForCausalLM, AutoTokenizer - -# Sample data: context-response pairs -data = [ - ("What resources are available for mental health", "Depression"), - ("What parts of brain are affected in depression and anxiety", "Biology"), - ("Where do you live?", "Query"), - ("I am feeling very low today", "Sad"), - ("I got fired from my job today.", "Anxious"), - ("I feel bad when my kids let me down", "Furious"), - ("I had fight in the family today", "Angry"), - ("My family does not talk to me", "Frustrated") - -] - -# Custom dataset class -class ChatDataset(Dataset): - def __init__(self, data, tokenizer, max_length=128): - self.data = data - self.tokenizer = tokenizer - self.max_length = max_length - - def __len__(self): - return len(self.data) - - def __getitem__(self, idx): - context, response = self.data[idx] - inputs = self.tokenizer.encode_plus( - context, - add_special_tokens=True, - max_length=self.max_length, - padding='max_length', - truncation=True, - return_tensors="pt" - ) - - outputs = self.tokenizer.encode_plus( - response, - add_special_tokens=True, - max_length=self.max_length, - padding='max_length', - truncation=True, - return_tensors="pt" - ) - - input_ids = inputs['input_ids'].squeeze() - attention_mask = inputs['attention_mask'].squeeze() - labels = outputs['input_ids'].squeeze() - return input_ids, attention_mask, labels - -# Initialize tokenizer and model -#tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') -#model = EncoderDecoderModel.from_encoder_decoder_pretrained('bert-base-uncased', 'bert-base-uncased') - -# checkpoint -checkpoint = "gpt2" -# download and cache tokenizer -tokenizer = AutoTokenizer.from_pretrained(checkpoint) -tokenizer.pad_token = tokenizer.eos_token - -# download and cache pre-trained model -model = AutoModelForCausalLM.from_pretrained(checkpoint) - -# Create dataset and dataloader -dataset = ChatDataset(data, tokenizer) -dataloader = DataLoader(dataset, batch_size=8, shuffle=True) - -# Training parameters -epochs = 5 -learning_rate = 1e-2 - -# Optimizer and loss function -optimizer = AdamW(model.parameters(), lr=learning_rate) -loss_fn = nn.CrossEntropyLoss() - -# Training loop -model.train() -for epoch in range(epochs): - for input_ids, attention_mask, labels in dataloader: - optimizer.zero_grad() - outputs = model(input_ids=input_ids, attention_mask=attention_mask) - logits = outputs.logits - #labels = torch.zeros(logits.size(0), dtype=torch.long) # Dummy labels for demonstration - loss = loss_fn(logits.view(-1, logits.size(-1)), labels.view(-1)) - #loss = outputs.loss - loss.backward() - optimizer.step() - print(f"Epoch {epoch + 1}/{epochs} completed. Loss: {loss.item()}") - -print("Training completed.") - -# Example inference -model.eval() -context = "I feel very low today" -inputs = tokenizer.encode_plus(context, add_special_tokens=True, return_tensors="pt") -input_ids = inputs['input_ids'] -attention_mask = inputs['attention_mask'] -outputs = model.generate(input_ids=input_ids, attention_mask=attention_mask) -outputs = outputs.squeeze().tolist() -response = tokenizer.decode(outputs, skip_special_tokens=True) -print(f"Context: {context}") -print(f"Response: {response}") - - - - diff --git a/ChatBot3.py b/ChatBot3.py deleted file mode 100644 index 1b79911..0000000 --- a/ChatBot3.py +++ /dev/null @@ -1,62 +0,0 @@ -# Approach: -# Use Sentence Transformer to encode each question -# Build a logistic classifier to separate the question in two -# categories: -# A - User seeking information related to mental health -# B - User seeking emotional support -# For question category A, build a KNN classifier to generate a canned informational response. -# For question category B, predict the emotion using LinearSVC classifier -# For each emotion, generate a canned response. -# Report precision, recall, F1 score for all the classifiers. -# Important: Need canned response repository - -# Read empathetic dialogues context -import pandas as pd -from sentence_transformers import SentenceTransformer -from sklearn.linear_model import LogisticRegression -from sklearn.model_selection import train_test_split -from sklearn.metrics import classification_report, f1_score - -df_A = pd.read_csv('./data/Mental_Health_FAQ.csv') -print(df_A.columns) - -splits = {'train': 'train.csv', 'validation': 'valid.csv', 'test': 'test.csv'} -df_B = pd.read_csv("hf://datasets/bdotloh/empathetic-dialogues-contexts/" + splits["train"]) -print(df_B.columns) - -# Load pretrained Sentence-BERT model. -model = SentenceTransformer('paraphrase-MiniLM-L6-v2') - -# Create vector representation for each question/situation. -class_A_questions = df_A['Questions'] -class_A_labels = [0]*len(class_A_questions) - -class_B_contexts = df_B['situation'] -class_B_labels = [1]*len(class_B_contexts) - -all_data = pd.concat([class_A_questions, class_B_contexts], ignore_index=True).to_numpy() -X = model.encode(all_data) -print(X.shape) - -y = class_A_labels + class_B_labels - -# Split the data in training and testing sets -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) - -# Train a binary classifier -classifier = LogisticRegression() -classifier.fit(X_train, y_train) - -# Use the test dataset to compute metrics -y_pred = classifier.predict(X_test) - -print('\nClassification Report:\n ' + classification_report(y_test, y_pred)) - -# Build KNN classifier for class A questions. - -# Build emotion classifier for class B questions. - -# Generate responses - - - From 9c592ef6a34607b3b979a0e8c4547e087da4e69c Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Sun, 3 Nov 2024 17:32:26 -0500 Subject: [PATCH 24/61] Linted Emotional_Response organized the imports, and perfromed linting. --- Emotional_Response.py | 64 ++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/Emotional_Response.py b/Emotional_Response.py index 9665dad..cfa6e7c 100644 --- a/Emotional_Response.py +++ b/Emotional_Response.py @@ -1,26 +1,27 @@ +import random +import numpy as np import nltk -from nltk.corpus.reader import documents import pandas as pd -import gensim -from gensim import corpora -from nltk.corpus import stopwords +import networkx as nx +from sentence_transformers import SentenceTransformer +from numpy.linalg import norm from nltk import word_tokenize +from nltk.corpus.reader import documents +from nltk.corpus import stopwords from nltk.stem import WordNetLemmatizer +from gensim import corpora from gensim.models import LdaModel, TfidfModel -import sentence_transformers -from numpy.linalg import norm -import networkx as nx -from sentence_transformers import SentenceTransformer -import numpy as np -import random + class Emotional_Response(object): # Lemmatize and filter stop words def get_filtered_base_words(self, query): tokens = word_tokenize(query.lower()) - base_words = [self.lemmatizer.lemmatize(token) for token in tokens if token.isalpha()] - filtered_base_words = [word for word in base_words if word not in self.custom_stop_words] + base_words = [self.lemmatizer.lemmatize( + token) for token in tokens if token.isalpha()] + filtered_base_words = [ + word for word in base_words if word not in self.custom_stop_words] return filtered_base_words # Preprocess context data by lemmatizing and filtering out stop words. @@ -91,14 +92,14 @@ def preprocess_data(self, contexts): 'every', 'stay', 'month', - ]) + ]) # Preprocess questions processed_questions = [] for context in contexts: filtered_base_words = self.get_filtered_base_words(context) processed_questions.append(filtered_base_words) - + return processed_questions # Apply Latent Dirichlet Allocation is a statistical generative model which uses @@ -108,7 +109,8 @@ def apply_lda_model(self, processed_data): self.dictionary = corpora.dictionary(processed_data) # Represent each data point by bag of words - self.corpus_bow = [self.dictionary.doc2bow(doc) for doc in processed_data] + self.corpus_bow = [self.dictionary.doc2bow( + doc) for doc in processed_data] # Initialize tf-idf model self.tfidf_model = TfidfModel(self.corpus_bow) @@ -123,7 +125,7 @@ def apply_lda_model(self, processed_data): eta=0.01, passes=20, random_state=42) - + self.topics = self.lda_model.print_topics(num_words=25) for idx, topic in self.topics: @@ -140,7 +142,7 @@ def get_topic(self, query): doc_bow = self.dictionary.doc2bow(filtered_base_words) doc_tfidf = self.tfidf[doc_bow] topics = self.lda_model.get_document_topics(doc_tfidf) - topic = max(topics, key=lambda x:x[1])[0] + topic = max(topics, key=lambda x: x[1])[0] return topic def tag_documents(self): @@ -150,7 +152,7 @@ def tag_documents(self): for idx, row in self.df.iterrows(): topic = self.get_topic(row['Context']) self.df.at[idx, 'Topic'] = topic - + # Each conversation in the present data is independent self.df.at[idx, 'Conv_Id'] = idx @@ -170,14 +172,17 @@ def add_new_conv_graph(self, row): # Conversations are linear by design presently. # In future, probabilistic conversations can be added. def extend_conv_graph(conv_graph, row): - leaf_nodes = [node for node in conv_graph.nodes if conv_graph.out_degree(node) == 0] - + leaf_nodes = [ + node for node in conv_graph.nodes if conv_graph.out_degree(node) == 0] + # Choose the first leaf node for insertion. new_from_node = row['Context'] new_to_node = row['Response'] conv_graph.add_edge(leaf_nodes[0], new_from_node) - conv_graph.add_node(new_from_node, conv_id=row['Conv_Id'], type='Context') - conv_graph.add_node(new_to_node, conv_id=row['Conv_Id'], type='Response') + conv_graph.add_node( + new_from_node, conv_id=row['Conv_Id'], type='Context') + conv_graph.add_node( + new_to_node, conv_id=row['Conv_Id'], type='Response') conv_graph.add_edge(new_from_node, new_to_node) def make_conversation_grah(self): @@ -198,7 +203,7 @@ def make_conversation_grah(self): conv_graph.add_edge(row['Context'], row['Response']) found = True break - + if (found == False): self.add_new_conv_graph(row) else: @@ -206,15 +211,16 @@ def make_conversation_grah(self): def __init__(self): self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') - self.df = pd.read_json("hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) + self.df = pd.read_json( + "hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) contexts = self.df['Context'].tolist() processed_data = self.preprocess_data(contexts) self.apply_lda_model(processed_data) self.tag_documents() self.make_conversation_grah() - # Work-horse: Get the emotional query response by navigating the graph. + def get_response(self, query): topic = self.get_topic(query) @@ -232,13 +238,13 @@ def get_response(self, query): break if (root): root_embedding = self.encoder.encode(root) - score = np.dot(query_embedding, root_embedding) / (norm(query_embedding) * norm(root_embedding)) + score = np.dot(query_embedding, root_embedding) / \ + (norm(query_embedding) * norm(root_embedding)) if (score > sim_score): target_G = conv_graph target_node = root sim_score = score - # Get the neighbors of the target node neighbors = list(target_G.neighbors(target_node)) @@ -248,7 +254,3 @@ def get_response(self, query): else: default_response = "Sorry, I do not have enough material on this topic to help you." return default_response - - - - From 9f549e98afa92148883432ff07217c6de2ebe604 Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Sun, 3 Nov 2024 17:35:50 -0500 Subject: [PATCH 25/61] Further linted and perped for Refactor And Integration of Emotional_Response. --- Emotional_Response.py | 93 ++++++++----------------------------------- 1 file changed, 17 insertions(+), 76 deletions(-) diff --git a/Emotional_Response.py b/Emotional_Response.py index cfa6e7c..55cfbcb 100644 --- a/Emotional_Response.py +++ b/Emotional_Response.py @@ -6,17 +6,16 @@ from sentence_transformers import SentenceTransformer from numpy.linalg import norm from nltk import word_tokenize -from nltk.corpus.reader import documents -from nltk.corpus import stopwords -from nltk.stem import WordNetLemmatizer from gensim import corpora from gensim.models import LdaModel, TfidfModel class Emotional_Response(object): - # Lemmatize and filter stop words def get_filtered_base_words(self, query): + """ + # Lemmatize and filter stop words + """ tokens = word_tokenize(query.lower()) base_words = [self.lemmatizer.lemmatize( token) for token in tokens if token.isalpha()] @@ -24,76 +23,14 @@ def get_filtered_base_words(self, query): word for word in base_words if word not in self.custom_stop_words] return filtered_base_words - # Preprocess context data by lemmatizing and filtering out stop words. - # This way, we can focus only on the relevant parts of the text. def preprocess_data(self, contexts): + """ + # Preprocess context data by lemmatizing and filtering out stop words. + # This way, we can focus only on the relevant parts of the text. + """ nltk.download('stopwords') nltk.download('wordnet') - lemmatizer = WordNetLemmatizer() - stop_words = set(stopwords.words('english')) - custom_stop_words = stop_words.union(['wa', - 'ha', - 'doe', - 'know', - 'want', - 'something', - 'someone', - 'person', - 'process', - 'start', - 'nothing', - 'make', - 'really', - 'get', - 'like', - 'know', - 'many', - 'say', - 'walk', - 'one', - 'two', - 'ca', - 'would', - 'said', - 'still', - 'got', - 'go', - 'back', - 'lot', - 'u', - 'think', - 'feel', - 'need', - 'help', - 'issue', - 'told', - 'always', - 'stop', - 'even', - 'see', - 'ever', - 'thought', - 'thing', - 'everything', - 'year', - 'going', - 'around', - 'time', - 'keep', - 'also', - 'much', - 'day', - 'tell', - 'anything', - 'give', - 'normal', - 'never', - 'every', - 'stay', - 'month', - ]) - # Preprocess questions processed_questions = [] for context in contexts: @@ -102,10 +39,12 @@ def preprocess_data(self, contexts): return processed_questions - # Apply Latent Dirichlet Allocation is a statistical generative model which uses - # co-occurrence of various words to identify a certain topic. LDA is widely used for - # topic modeling. def apply_lda_model(self, processed_data): + """ + # Apply Latent Dirichlet Allocation is a statistical generative model which uses + # co-occurrence of various words to identify a certain topic. LDA is widely used for + # topic modeling. + """ self.dictionary = corpora.dictionary(processed_data) # Represent each data point by bag of words @@ -168,10 +107,12 @@ def add_new_conv_graph(self, row): self.graph_dict[topic] = {} self.graph_dict[topic][row['Conv_Id']] = conv_graph - # Extend conversation graph by finding the leaf node - # Conversations are linear by design presently. - # In future, probabilistic conversations can be added. def extend_conv_graph(conv_graph, row): + """ + # Extend conversation graph by finding the leaf node + # Conversations are linear by design presently. + # In future, probabilistic conversations can be added. + """ leaf_nodes = [ node for node in conv_graph.nodes if conv_graph.out_degree(node) == 0] From dd5380286840168c87ab519392f9ee30072854ee Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Sun, 3 Nov 2024 22:28:07 -0500 Subject: [PATCH 26/61] Refactor MentalHealthChatbot and Runtime Script - Refactored MentalHealthChatbot class: - Removed `train_emotion_classifier` and all `LinearSVC` dependencies, replacing them with the new `EmotionalResponse` class for emotional query handling. - Integrated `EmotionalResponse.get_response` method for emotional queries in `respond_to_query`. - Simplified data loading to include only FAQ and counseling conversation datasets. - depricated get emotional response, train emotional classifier methods. - Updated conversation_chatbot_main.py runtime: - Adjusted `conversations_data_path` to use the Hugging Face dataset URL for real-time access to counseling conversations. - Removed unnecessary method calls (e.g., `train_emotion_classifier`) to align with updated class structure. - Enhanced exit options and user guidance in the interactive loop for better usability. - Added detailed docstrings and comments: - Documented major methods and clarified logic in both `MentalHealthChatbot` and `conversation_chatbot_main.py`. - Provided additional instructions on response handling and runtime behavior. - Future Enhancements: - Outlined the need for integrating summarization in `EmotionalResponse` for a more refined response structure. This refactor prepares the chatbot for streamlined conversational flow and enables multi-turn interactions based on real counseling data. --- Emotional_Response.py | 22 ++-- conversation_chatbot_main.py | 16 +-- mental_health_chatbot.py | 212 ++++++----------------------------- 3 files changed, 54 insertions(+), 196 deletions(-) diff --git a/Emotional_Response.py b/Emotional_Response.py index 55cfbcb..51aafa5 100644 --- a/Emotional_Response.py +++ b/Emotional_Response.py @@ -12,6 +12,16 @@ class Emotional_Response(object): + def __init__(self): + self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') + self.df = pd.read_json( + "hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) + contexts = self.df['Context'].tolist() + processed_data = self.preprocess_data(contexts) + self.apply_lda_model(processed_data) + self.tag_documents() + self.make_conversation_grah() + def get_filtered_base_words(self, query): """ # Lemmatize and filter stop words @@ -129,7 +139,7 @@ def extend_conv_graph(conv_graph, row): def make_conversation_grah(self): self.graph_dict = {} conv_id = -1 - for idx, row in self.df.iterrows(): + for _, row in self.df.iterrows(): topic = row['Topic'] conv_id = row['Conv_Id'] if (topic in self.graph_dict): @@ -150,16 +160,6 @@ def make_conversation_grah(self): else: self.add_new_conv_graph(row) - def __init__(self): - self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') - self.df = pd.read_json( - "hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) - contexts = self.df['Context'].tolist() - processed_data = self.preprocess_data(contexts) - self.apply_lda_model(processed_data) - self.tag_documents() - self.make_conversation_grah() - # Work-horse: Get the emotional query response by navigating the graph. def get_response(self, query): diff --git a/conversation_chatbot_main.py b/conversation_chatbot_main.py index f933c33..cd4f23c 100644 --- a/conversation_chatbot_main.py +++ b/conversation_chatbot_main.py @@ -41,12 +41,11 @@ from absl import app, flags from mental_health_chatbot import MentalHealthChatbot +FLAGS = flags.FLAGS FLAGS = flags.FLAGS flags.DEFINE_string( 'faq_data_path', './data/Mental_Health_FAQ.csv', 'Path to the FAQ dataset') -flags.DEFINE_string('empathetic_data_path', 'hf://datasets/bdotloh/empathetic-dialogues-contexts/', - 'Path to the empathetic dialogues dataset') -flags.DEFINE_string('conversations_data_path', './data/mental_health_counseling_conversations.csv', +flags.DEFINE_string('conversations_data_path', 'hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json', 'Path to the mental health counseling conversations dataset') flags.DEFINE_float('test_size', 0.3, 'Test set size as a fraction') flags.DEFINE_integer('random_state', 42, 'Random seed for reproducibility') @@ -54,11 +53,12 @@ def main(argv): """ - Runs the interactive loop. + Runs the interactive loop for the Mental Health Chatbot. + + The chatbot processes user input and categorizes it into informational or emotional types. """ chatbot = MentalHealthChatbot( faq_data_path=FLAGS.faq_data_path, - empathetic_data_path=FLAGS.empathetic_data_path, conversations_data_path=FLAGS.conversations_data_path, test_size=FLAGS.test_size, random_state=FLAGS.random_state @@ -69,17 +69,17 @@ def main(argv): chatbot.preprocess_data() chatbot.train_logistic_classifier() chatbot.build_knn_classifier() - chatbot.train_emotion_classifier() - # Interactive loop + # Start the interactive loop print("Welcome to the Mental Health Chatbot. Type 'exit', 'quit', 'q', 'x', or press 'Ctrl+C' to quit.") try: while True: user_input = input("You: ") - # Expanded exit options + # Check for exit commands if user_input.lower() in ['exit', 'quit', 'q', 'x', 'e']: print("Chatbot: Take care!") break + # Get response from the chatbot response = chatbot.respond_to_query(user_input) print(f"Chatbot: {response}") except KeyboardInterrupt: diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index f6b0820..5ccffdc 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -45,84 +45,58 @@ high-risk situations and direct users to professional help when necessary. """ import pandas as pd -import random from sentence_transformers import SentenceTransformer from sklearn.svm import LinearSVC from sklearn.neighbors import NearestNeighbors from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import classification_report, precision_recall_fscore_support +from Emotional_Response import EmotionalResponse class MentalHealthChatbot: """A chatbot for mental health support.""" - def __init__(self, faq_data_path, empathetic_data_path, conversations_data_path, test_size, random_state): + def __init__(self, faq_data_path, conversations_data_path, test_size, random_state): """ Initializes the MentalHealthChatbot with data paths and configuration parameters. Args: faq_data_path (str): Path to the FAQ dataset (CSV file). - empathetic_data_path (str): Path to the empathetic dialogues dataset (directory). - conversations_data_path (str): Path to the - mental health counseling conversations dataset (CSV file). + conversations_data_path (str): Path to the mental health counseling conversations dataset (CSV file). test_size (float): Fraction of the data to reserve for testing (0 < test_size < 1). random_state (int): Seed for random number generation to ensure reproducibility. Attributes: model (SentenceTransformer): Pretrained Sentence-BERT model for encoding sentences. - logistic_classifier (LogisticRegression): Classifier for - determining the type of query (informational vs. emotional). - knn_classifier (NearestNeighbors): KNN classifier for - retrieving informational responses (set later). - emotion_classifier (LinearSVC): Classifier for - predicting emotions in emotional queries (set later). - df_A (DataFrame): DataFrame containing FAQ questions and answers. - df_B (DataFrame): DataFrame containing empathetic dialogues context and emotion. - df_C (DataFrame): DataFrame containing mental health counseling conversations. - X (np.array): Encoded representations of both FAQ and empathetic dialogue data. - y (list): Labels corresponding to the FAQ and empathetic dialogue data. - conversations_per_emotion (dict): Conversation graphs organized by emotion. - current_conversation (list): Current conversation sequence. - current_conversation_index (int): Index of the next - response in the current conversation. - current_emotion (str): Emotion associated with the current conversation. + logistic_classifier (LogisticRegression): Classifier for determining the type of query (informational vs. emotional). + knn_classifier (NearestNeighbors): KNN classifier for retrieving informational responses (set later). + df_faq (DataFrame): DataFrame containing FAQ questions and answers. + df_counseling_conversations (DataFrame): DataFrame containing mental health counseling conversations. + X (np.array): Encoded representations of both FAQ and emotional data. + y (list): Labels corresponding to the FAQ and emotional data. + emotional_response_handler (EmotionalResponse): Instance of EmotionalResponse class to handle emotional queries. """ self.faq_data_path = faq_data_path - self.empathetic_data_path = empathetic_data_path self.conversations_data_path = conversations_data_path self.test_size = test_size self.random_state = random_state self.model = SentenceTransformer('paraphrase-MiniLM-L6-v2') self.logistic_classifier = LogisticRegression() - # Placeholder for additional classifiers self.knn_classifier = None - self.emotion_classifier = None - self.current_conversation = None - self.current_conversation_index = 0 - self.current_emotion = None + self.emotional_response_handler = EmotionalResponse( + self.conversations_data_path) def load_data(self): """ - Loads the FAQ, empathetic dialogues, and - mental health counseling conversations datasets into DataFrames. + Loads the FAQ and mental health counseling conversations datasets into DataFrames. Returns: None """ - self.df_faq = pd.read_csv( - self.faq_data_path) # Updated from df_A to df_faq + self.df_faq = pd.read_csv(self.faq_data_path) print("FAQ Data Columns:", self.df_faq.columns) - splits = {'train': 'train.csv', - 'validation': 'valid.csv', 'test': 'test.csv'} - # Updated from df_B to df_empathetic_dialogues - self.df_empathetic_dialogues = pd.read_csv( - self.empathetic_data_path + splits['train']) - print("Empathetic Dialogues Columns:", - self.df_empathetic_dialogues.columns) - - # Updated from df_C to df_counseling_conversations self.df_counseling_conversations = pd.read_csv( self.conversations_data_path) print("Mental Health Counseling Conversations Columns:", @@ -130,46 +104,29 @@ def load_data(self): def preprocess_data(self): """ - Preprocesses and encodes the FAQ questions and - empathetic dialogue contexts using Sentence-BERT. - - Also processes the mental health counseling conversations - to organize them per emotion. + Preprocesses and encodes the FAQ questions and emotional queries using Sentence-BERT. Returns: None """ - # Preprocess FAQ and empathetic dialogue data - # Updated from class_A_questions to faq_questions - faq_questions = self.df_faq['Questions'] - # Updated from class_A_labels to faq_labels + # Extract FAQ questions and assign label 0 + faq_questions = self.df_faq['Questions'].tolist() faq_labels = [0] * len(faq_questions) - # Updated from class_B_contexts to empathetic_contexts - empathetic_contexts = self.df_empathetic_dialogues['context'] - # Updated from class_B_labels to empathetic_labels - empathetic_labels = [1] * len(empathetic_contexts) - - all_data = pd.concat([faq_questions, empathetic_contexts], - ignore_index=True).to_numpy() - self.X = self.model.encode(all_data) - self.y = faq_labels + empathetic_labels + # Extract emotional queries from counseling conversations (e.g., initial client messages) + # Assuming 'conversation' column contains dialogues separated by '__eot__' + emotional_queries = self.df_counseling_conversations['conversation'].apply( + lambda x: x.split('__eot__')[0].strip() + ).tolist() + emotional_labels = [1] * len(emotional_queries) - # Process mental health counseling conversations - self.conversations_per_emotion = {} + # Combine data + all_queries = faq_questions + emotional_queries + all_labels = faq_labels + emotional_labels - for _, row in self.df_counseling_conversations.iterrows(): - emotion = row['emotion'] - # Assuming 'conversation' column exists - conversation = row['conversation'] - conversation_turns = conversation.split('__eot__') - conversation_turns = [turn.strip() - for turn in conversation_turns if turn.strip()] - - if emotion not in self.conversations_per_emotion: - self.conversations_per_emotion[emotion] = [] - - self.conversations_per_emotion[emotion].append(conversation_turns) + # Encode queries + self.X = self.model.encode(all_queries) + self.y = all_labels def train_logistic_classifier(self): """ @@ -193,65 +150,14 @@ def train_logistic_classifier(self): print( f"Precision: {precision:.2f}, Recall: {recall:.2f}, F1 Score: {f1:.2f}") - def train_emotion_classifier(self): - """ - Trains a Linear Support Vector Classifier (LinearSVC) to - predict emotions from emotional support queries. - - The classifier is trained on the encoded contexts from the - empathetic dialogues dataset and their - associated emotions, as well as the conversations from the - mental health counseling conversations dataset. - - Returns: - None - """ - # Extract emotions and contexts from the empathetic dialogues - # Updated from df_B to df_empathetic_dialogues - emotions_empathetic = self.df_empathetic_dialogues['emotion'] - # Updated from df_B to df_empathetic_dialogues - contexts_empathetic = self.df_empathetic_dialogues['context'] - - # Extract emotions and the initial client utterance from the counseling conversations - # Updated from df_C to df_counseling_conversations - emotions_counseling = self.df_counseling_conversations['emotion'] - contexts_counseling = self.df_counseling_conversations['conversation'].apply( - lambda x: x.split('__eot__')[0]) # Assuming the first turn is the client's message - - # Combine the data from both sources - emotions = pd.concat( - [emotions_empathetic, emotions_counseling], ignore_index=True) - contexts = pd.concat( - [contexts_empathetic, contexts_counseling], ignore_index=True) - - # Encode contexts - X_emotion = self.model.encode(contexts.tolist()) - y_emotion = emotions.tolist() - - # Split the data for training and testing - X_train, X_test, y_train, y_test = train_test_split( - X_emotion, y_emotion, test_size=self.test_size, random_state=self.random_state - ) - - # Train the emotion classifier - self.emotion_classifier = LinearSVC() - self.emotion_classifier.fit(X_train, y_train) - y_pred = self.emotion_classifier.predict(X_test) - - # Print the classification report - print('\nEmotion Classification Report:\n', - classification_report(y_test, y_pred)) - def build_knn_classifier(self): """ - Builds a K-Nearest Neighbors (KNN) - classifier for retrieving informational responses. + Builds a K-Nearest Neighbors (KNN) classifier for retrieving informational responses. Returns: None """ - faq_embeddings = self.model.encode( - self.df_faq['Questions'].tolist()) # Updated from df_A to df_faq + faq_embeddings = self.model.encode(self.df_faq['Questions'].tolist()) self.knn_classifier = NearestNeighbors( n_neighbors=1, algorithm='ball_tree').fit(faq_embeddings) @@ -268,74 +174,26 @@ def get_informational_response(self, query): query_embedding = self.model.encode([query]) _, indices = self.knn_classifier.kneighbors(query_embedding) index = indices[0][0] - # Updated from df_A to df_faq response = self.df_faq['Answers'].iloc[index] return response - def get_emotional_response(self, query): - """ - Generates an emotional support response based on the user's query and conversation state. - - Args: - query (str): The user's emotional query. - - Returns: - str: A response from the conversation graph based on the user's emotional state. - """ - # If no current conversation, classify emotion and start new conversation - if self.current_conversation is None: - query_embedding = self.model.encode([query]) - predicted_emotion = self.emotion_classifier.predict(query_embedding)[ - 0] - - # Select a conversation sequence for the predicted emotion - if predicted_emotion in self.conversations_per_emotion: - conversations = self.conversations_per_emotion[predicted_emotion] - # Randomly select a conversation - self.current_conversation = random.choice(conversations) - self.current_conversation_index = 0 - self.current_emotion = predicted_emotion - else: - # If no conversation available for the emotion - return "I'm here to listen. Please tell me more about how you're feeling." - - # Proceed to next turn in the conversation - if self.current_conversation_index < len(self.current_conversation): - response = self.current_conversation[self.current_conversation_index] - self.current_conversation_index += 1 - else: - # End of conversation - response = "I hope our conversation has been helpful." - self.current_conversation = None - self.current_conversation_index = 0 - self.current_emotion = None - - return response - def respond_to_query(self, query): """ - Responds to a user query by first categorizing it and - then generating an appropriate response. + Responds to a user query by first categorizing it and then generating an appropriate response. Args: query (str): The user's input query. Returns: - str: The chatbot's response (informational or emotional) - based on the query type. + str: The chatbot's response (informational or emotional) based on the query type. """ - # If in the middle of an emotional conversation, continue it - if self.current_conversation is not None: - response = self.get_emotional_response(query) - return response - - # Else, classify the query + # Classify the query query_embedding = self.model.encode([query]) category = self.logistic_classifier.predict(query_embedding)[0] if category == 0: response = self.get_informational_response(query) else: - response = self.get_emotional_response(query) + response = self.emotional_response_handler.get_response(query) return response From 1f2b9276ca50c8129eb3ba5027df79d101af9f86 Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Sun, 3 Nov 2024 23:18:09 -0500 Subject: [PATCH 27/61] Implement device management for CUDA availability and update classes - Check for CUDA availability and GPU count in conversation_chatbot_main.py - Update MentalHealthChatbot and EmotionalResponse classes to accept a device parameter - Automate device assignment and model loading onto the specified device - Implement robust error handling and logging - Ensure compatibility with pre-trained models from HuggingFace --- Emotional_Response.py | 294 ++++++++++++++++++++++------------- conversation_chatbot_main.py | 48 +++++- mental_health_chatbot.py | 162 ++++++++++--------- 3 files changed, 318 insertions(+), 186 deletions(-) diff --git a/Emotional_Response.py b/Emotional_Response.py index 51aafa5..a7b07e4 100644 --- a/Emotional_Response.py +++ b/Emotional_Response.py @@ -1,47 +1,76 @@ +""" +This module provides the EmotionalResponse class, which generates emotional responses +based on input queries by utilizing NLP techniques such as LDA for topic modeling +and semantic similarity for response selection. +""" import random -import numpy as np +from typing import List, Dict + +import networkx as nx import nltk +import numpy as np import pandas as pd -import networkx as nx -from sentence_transformers import SentenceTransformer -from numpy.linalg import norm -from nltk import word_tokenize from gensim import corpora from gensim.models import LdaModel, TfidfModel +from networkx import DiGraph +from nltk import word_tokenize +from nltk.corpus import stopwords +from nltk.stem import WordNetLemmatizer +from numpy.linalg import norm +from sentence_transformers import SentenceTransformer + + +class EmotionalResponse: + """ + The EmotionalResponse class processes conversational data to generate appropriate + emotional responses to user queries. It leverages topic modeling and graph-based + conversation structures to find the best response. + """ + + def __init__(self, device='cpu') -> None: + """ + Initializes the EmotionalResponse instance by loading data, preprocessing it, + and setting up the necessary models and graphs. + + Args: + device (str): Device to load models onto ('cpu', 'cuda:X'). + """ + self.device = device # Store the device + self.encoder = SentenceTransformer( + 'paraphrase-MiniLM-L6-v2', device=self.device) -class Emotional_Response(object): + try: + self.df = pd.read_json( + "hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", + lines=True + ) + except Exception as e: + raise FileNotFoundError(f"Data file could not be loaded: {e}") + + self.custom_stop_words = set(stopwords.words('english')) + self.lemmatizer = WordNetLemmatizer() - def __init__(self): - self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') - self.df = pd.read_json( - "hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) contexts = self.df['Context'].tolist() processed_data = self.preprocess_data(contexts) self.apply_lda_model(processed_data) self.tag_documents() - self.make_conversation_grah() + self.make_conversation_graph() - def get_filtered_base_words(self, query): - """ - # Lemmatize and filter stop words + def preprocess_data(self, contexts: List[str]) -> List[List[str]]: """ - tokens = word_tokenize(query.lower()) - base_words = [self.lemmatizer.lemmatize( - token) for token in tokens if token.isalpha()] - filtered_base_words = [ - word for word in base_words if word not in self.custom_stop_words] - return filtered_base_words + Preprocesses context data by lemmatizing and filtering out stop words. - def preprocess_data(self, contexts): - """ - # Preprocess context data by lemmatizing and filtering out stop words. - # This way, we can focus only on the relevant parts of the text. + Args: + contexts (List[str]): List of context strings. + + Returns: + List[List[str]]: List of processed context tokens. """ - nltk.download('stopwords') - nltk.download('wordnet') + nltk.download('stopwords', quiet=True) + nltk.download('wordnet', quiet=True) + nltk.download('punkt', quiet=True) - # Preprocess questions processed_questions = [] for context in contexts: filtered_base_words = self.get_filtered_base_words(context) @@ -49,13 +78,35 @@ def preprocess_data(self, contexts): return processed_questions - def apply_lda_model(self, processed_data): + def get_filtered_base_words(self, query: str) -> List[str]: + """ + Tokenizes, lemmatizes, and filters stop words from the input query. + + Args: + query (str): The input query string. + + Returns: + List[str]: List of filtered base words. + """ + tokens = word_tokenize(query.lower()) + base_words = [ + self.lemmatizer.lemmatize(token) + for token in tokens + if token.isalpha() + ] + filtered_base_words = [ + word for word in base_words if word not in self.custom_stop_words + ] + return filtered_base_words + + def apply_lda_model(self, processed_data: List[List[str]]) -> None: """ - # Apply Latent Dirichlet Allocation is a statistical generative model which uses - # co-occurrence of various words to identify a certain topic. LDA is widely used for - # topic modeling. + Applies LDA topic modeling on the processed data. + + Args: + processed_data (List[List[str]]): List of processed context tokens. """ - self.dictionary = corpora.dictionary(processed_data) + self.dictionary = corpora.Dictionary(processed_data) # Represent each data point by bag of words self.corpus_bow = [self.dictionary.doc2bow( @@ -64,37 +115,50 @@ def apply_lda_model(self, processed_data): # Initialize tf-idf model self.tfidf_model = TfidfModel(self.corpus_bow) - # Transform the bag of words model to tf-idf model so that terms are weighted properly. + # Transform the bag of words model to tf-idf model self.corpus_tfidf = self.tfidf_model[self.corpus_bow] n_topics = 8 - self.lda_model = LdaModel(self.corpus_tfidf, - num_topics=n_topics, - id2word=self.dictionary, - alpha=0.01, - eta=0.01, - passes=20, - random_state=42) + self.lda_model = LdaModel( + self.corpus_tfidf, + num_topics=n_topics, + id2word=self.dictionary, + alpha=0.01, + eta=0.01, + passes=20, + random_state=42 + ) self.topics = self.lda_model.print_topics(num_words=25) for idx, topic in self.topics: print(f'Topic:{idx}') - # Split the topic words into word, probability pairs word_probs = topic.split(' + ') for word_prob in word_probs: prob, word = word_prob.split('*') - print(f'Word={word} Probability={prob}') + print(f'Word={word.strip()} Probability={prob}') + + def get_topic(self, query: str) -> int: + """ + Determines the topic of a given query using the LDA model. - def get_topic(self, query): + Args: + query (str): The input query string. + + Returns: + int: The topic number with the highest probability. + """ filtered_base_words = self.get_filtered_base_words(query) doc_bow = self.dictionary.doc2bow(filtered_base_words) - doc_tfidf = self.tfidf[doc_bow] + doc_tfidf = self.tfidf_model[doc_bow] topics = self.lda_model.get_document_topics(doc_tfidf) topic = max(topics, key=lambda x: x[1])[0] return topic - def tag_documents(self): + def tag_documents(self) -> None: + """ + Tags each document in the DataFrame with its corresponding topic and conversation ID. + """ self.df['Topic'] = -1 self.df['Conv_Id'] = -1 @@ -105,93 +169,101 @@ def tag_documents(self): # Each conversation in the present data is independent self.df.at[idx, 'Conv_Id'] = idx - def add_new_conv_graph(self, row): + def make_conversation_graph(self) -> None: + """ + Constructs graphs representing conversations for each topic. + """ + self.graph_dict: Dict[int, Dict[int, DiGraph]] = {} + + for _, row in self.df.iterrows(): + topic = row['Topic'] + conv_id = row['Conv_Id'] + + if topic not in self.graph_dict: + self.graph_dict[topic] = {} + + if conv_id in self.graph_dict[topic]: + conv_graph = self.graph_dict[topic][conv_id] + self.extend_conv_graph(conv_graph, row) + else: + self.add_new_conv_graph(row) + + def add_new_conv_graph(self, row: pd.Series) -> None: + """ + Adds a new conversation graph for a topic. + + Args: + row (pd.Series): A row from the DataFrame containing conversation data. + """ conv_graph = nx.DiGraph() from_node = row['Context'] to_node = row['Response'] conv_graph.add_node(from_node, conv_id=row['Conv_Id'], type='Context') conv_graph.add_node(to_node, conv_id=row['Conv_Id'], type='Response') conv_graph.add_edge(from_node, to_node) + topic = row['Topic'] - if topic not in self.graph_dict: - self.graph_dict[topic] = {} self.graph_dict[topic][row['Conv_Id']] = conv_graph - def extend_conv_graph(conv_graph, row): + def extend_conv_graph(self, conv_graph: DiGraph, row: pd.Series) -> None: """ - # Extend conversation graph by finding the leaf node - # Conversations are linear by design presently. - # In future, probabilistic conversations can be added. + Extends an existing conversation graph by adding new nodes and edges. + + Args: + conv_graph (DiGraph): The conversation graph to extend. + row (pd.Series): A row from the DataFrame containing conversation data. """ + # Find leaf nodes (nodes with no outgoing edges) leaf_nodes = [ node for node in conv_graph.nodes if conv_graph.out_degree(node) == 0] - # Choose the first leaf node for insertion. - new_from_node = row['Context'] - new_to_node = row['Response'] - conv_graph.add_edge(leaf_nodes[0], new_from_node) - conv_graph.add_node( - new_from_node, conv_id=row['Conv_Id'], type='Context') - conv_graph.add_node( - new_to_node, conv_id=row['Conv_Id'], type='Response') - conv_graph.add_edge(new_from_node, new_to_node) - - def make_conversation_grah(self): - self.graph_dict = {} - conv_id = -1 - for _, row in self.df.iterrows(): - topic = row['Topic'] - conv_id = row['Conv_Id'] - if (topic in self.graph_dict): - if row['Conv_Id'] in self.graph_dict[topic]: - conv_graph = self.graph_dict[topic][conv_id] - self.extend_conv_graph(conv_graph, row) - else: - # It is a new conversation but check if duplicate context exists. - found = False - for conv_id, conv_graph in self.graph_dict[topic].items(): - if (row['Context'] in conv_graph): - conv_graph.add_edge(row['Context'], row['Response']) - found = True - break - - if (found == False): - self.add_new_conv_graph(row) - else: - self.add_new_conv_graph(row) - - # Work-horse: Get the emotional query response by navigating the graph. - - def get_response(self, query): + if leaf_nodes: + new_from_node = row['Context'] + new_to_node = row['Response'] + conv_graph.add_node( + new_from_node, conv_id=row['Conv_Id'], type='Context') + conv_graph.add_node( + new_to_node, conv_id=row['Conv_Id'], type='Response') + conv_graph.add_edge(leaf_nodes[0], new_from_node) + conv_graph.add_edge(new_from_node, new_to_node) + + def get_response(self, query: str) -> str: + """ + Generates an emotional response to the input query by navigating the conversation graph. + + Args: + query (str): The input query string. + + Returns: + str: The generated response. + """ topic = self.get_topic(query) - # Find the best matching conversation by matching the root - # node of conversation with the query. + # Find the best matching conversation by matching the root node of conversation with the query. query_embedding = self.encoder.encode(query) sim_score = 0.0 - target_G = None + target_graph = None target_node = None - for topic, conv_graph in self.graph_dict[topic].items(): - root = None - for node in conv_graph: - if (conv_graph.in_degree(node) == 0): - root = node - break - if (root): + + for conv_graph in self.graph_dict.get(topic, {}).values(): + root = next( + (node for node in conv_graph if conv_graph.in_degree(node) == 0), None) + if root: root_embedding = self.encoder.encode(root) - score = np.dot(query_embedding, root_embedding) / \ - (norm(query_embedding) * norm(root_embedding)) - if (score > sim_score): - target_G = conv_graph + score = np.dot(query_embedding, root_embedding) / ( + norm(query_embedding) * norm(root_embedding) + ) + if score > sim_score: + target_graph = conv_graph target_node = root sim_score = score # Get the neighbors of the target node - neighbors = list(target_G.neighbors(target_node)) - - if (neighbors): - selected_neighbor = random.choice(neighbors) - return selected_neighbor - else: - default_response = "Sorry, I do not have enough material on this topic to help you." - return default_response + if target_graph and target_node: + neighbors = list(target_graph.neighbors(target_node)) + if neighbors: + selected_neighbor = random.choice(neighbors) + return selected_neighbor + + default_response = "I'm sorry, I don't have enough information on this topic to help you." + return default_response diff --git a/conversation_chatbot_main.py b/conversation_chatbot_main.py index cd4f23c..5f55c4b 100644 --- a/conversation_chatbot_main.py +++ b/conversation_chatbot_main.py @@ -37,19 +37,54 @@ (FAQ, empathetic dialogues, counseling conversations) are available and paths are correctly specified using command-line flags or default values. """ -# Read empathetic dialogues context from absl import app, flags from mental_health_chatbot import MentalHealthChatbot +import torch +import logging -FLAGS = flags.FLAGS FLAGS = flags.FLAGS flags.DEFINE_string( 'faq_data_path', './data/Mental_Health_FAQ.csv', 'Path to the FAQ dataset') -flags.DEFINE_string('conversations_data_path', 'hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json', - 'Path to the mental health counseling conversations dataset') +flags.DEFINE_string( + 'conversations_data_path', + 'hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json', + 'Path to the mental health counseling conversations dataset') flags.DEFINE_float('test_size', 0.3, 'Test set size as a fraction') flags.DEFINE_integer('random_state', 42, 'Random seed for reproducibility') +# Set up logging +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + + +def get_available_device(): + """ + Checks for available CUDA devices and returns the appropriate device string. + + Returns: + device (str): The device string ('cuda:X' or 'cpu'). + """ + if torch.cuda.is_available(): + num_gpus = torch.cuda.device_count() + logger.info(f"CUDA is available. Number of GPUs: {num_gpus}") + # For simplicity, we'll use the GPU with the most available memory. + # Alternatively, we could distribute models across multiple GPUs. + # Here we select the GPU with the lowest memory usage. + free_memory = [] + for idx in range(num_gpus): + props = torch.cuda.get_device_properties(idx) + # Assuming that more free memory indicates less usage + free_memory.append((idx, props.total_memory)) + # Sort GPUs based on free memory (descending) + sorted_gpus = sorted(free_memory, key=lambda x: x[1], reverse=True) + selected_gpu = sorted_gpus[0][0] + device = f'cuda:{selected_gpu}' + logger.info(f"Selected GPU: {device}") + else: + logger.info("CUDA is not available. Using CPU.") + device = 'cpu' + return device + def main(argv): """ @@ -57,11 +92,14 @@ def main(argv): The chatbot processes user input and categorizes it into informational or emotional types. """ + device = get_available_device() + chatbot = MentalHealthChatbot( faq_data_path=FLAGS.faq_data_path, conversations_data_path=FLAGS.conversations_data_path, test_size=FLAGS.test_size, - random_state=FLAGS.random_state + random_state=FLAGS.random_state, + device=device # Pass the device to the chatbot ) # Load data and train models diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index 5ccffdc..f9ad8b1 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -1,52 +1,51 @@ """ Approach: -This chatbot uses a Sentence Transformer model to encode each +This chatbot uses a Sentence Transformer model to encode each user query and classify it into two categories: A - User seeking information related to mental health (informational query) B - User seeking emotional support (emotional query) For category A: -- A K-Nearest Neighbors (KNN) classifier is built to match the query +- A K-Nearest Neighbors (KNN) classifier is built to match the query with an appropriate informational response from the FAQ dataset. For category B: -- A Linear Support Vector Classifier (LinearSVC) is trained to +- A Linear Support Vector Classifier (LinearSVC) is trained to predict the user's emotional state (e.g., sadness, anger, etc.). -- Instead of canned responses, the chatbot uses a conversation graph +- Instead of canned responses, the chatbot uses a conversation graph derived from real counseling sessions to provide meaningful, multi-turn interactions. -- These conversation graphs help sustain an ongoing conversation, +- These conversation graphs help sustain an ongoing conversation, providing a more personalized and empathetic experience. -Report precision, recall, and F1 score for both classifiers +Report precision, recall, and F1 score for both classifiers (logistic classifier and emotion classifier). Important Changes: -- The dependency on canned responses has been removed. - Emotional responses are now generated based on a graph of +- The dependency on canned responses has been removed. + Emotional responses are now generated based on a graph of real counseling sessions, enabling history-aware conversations. -- The chatbot maintains conversation state, +- The chatbot maintains conversation state, allowing it to handle multi-turn conversations with users. Future Enhancements: 1. Dynamic Response Generation: - - Consider integrating advanced NLP models like - GPT-3 or fine-tuned transformers to generate dynamic responses, + - Consider integrating advanced NLP models like + GPT-3 or fine-tuned transformers to generate dynamic responses, further improving the chatbot's conversational capabilities. 2. Localization: - - Support multiple languages by adding a language column to the FAQ - and counseling conversation datasets, + - Support multiple languages by adding a language column to the FAQ + and counseling conversation datasets, making the chatbot accessible to a wider audience. 3. Emotional Intensity: - - Include an additional column to handle the intensity of emotions for - more nuanced responses, improving the chatbot's ability to + - Include an additional column to handle the intensity of emotions for + more nuanced responses, improving the chatbot's ability to tailor support to users' emotional states. 4. Professional Help: - - Enhance the chatbot's ethical considerations by ensuring it can recognize + - Enhance the chatbot's ethical considerations by ensuring it can recognize high-risk situations and direct users to professional help when necessary. """ import pandas as pd from sentence_transformers import SentenceTransformer -from sklearn.svm import LinearSVC from sklearn.neighbors import NearestNeighbors from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split @@ -57,7 +56,7 @@ class MentalHealthChatbot: """A chatbot for mental health support.""" - def __init__(self, faq_data_path, conversations_data_path, test_size, random_state): + def __init__(self, faq_data_path, conversations_data_path, test_size=0.3, random_state=42, device='cpu'): """ Initializes the MentalHealthChatbot with data paths and configuration parameters. @@ -81,11 +80,13 @@ def __init__(self, faq_data_path, conversations_data_path, test_size, random_sta self.conversations_data_path = conversations_data_path self.test_size = test_size self.random_state = random_state - self.model = SentenceTransformer('paraphrase-MiniLM-L6-v2') - self.logistic_classifier = LogisticRegression() + self.device = device # Store the device + + # Initialize models and data placeholders + self.encoder = None + self.logistic_classifier = None self.knn_classifier = None - self.emotional_response_handler = EmotionalResponse( - self.conversations_data_path) + self.emotional_response = None def load_data(self): """ @@ -94,13 +95,9 @@ def load_data(self): Returns: None """ - self.df_faq = pd.read_csv(self.faq_data_path) - print("FAQ Data Columns:", self.df_faq.columns) - - self.df_counseling_conversations = pd.read_csv( - self.conversations_data_path) - print("Mental Health Counseling Conversations Columns:", - self.df_counseling_conversations.columns) + self.faq_df = pd.read_csv(self.faq_data_path) + self.conversations_df = pd.read_json( + self.conversations_data_path, lines=True) def preprocess_data(self): """ @@ -109,24 +106,29 @@ def preprocess_data(self): Returns: None """ - # Extract FAQ questions and assign label 0 - faq_questions = self.df_faq['Questions'].tolist() - faq_labels = [0] * len(faq_questions) + # Combine datasets and create labels + faq_queries = self.faq_df['Question'].tolist() + faq_labels = [0] * len(faq_queries) # 0 for informational + + conv_contexts = self.conversations_df['Context'].tolist() + conv_labels = [1] * len(conv_contexts) # 1 for emotional + + all_queries = faq_queries + conv_contexts + all_labels = faq_labels + conv_labels - # Extract emotional queries from counseling conversations (e.g., initial client messages) - # Assuming 'conversation' column contains dialogues separated by '__eot__' - emotional_queries = self.df_counseling_conversations['conversation'].apply( - lambda x: x.split('__eot__')[0].strip() - ).tolist() - emotional_labels = [1] * len(emotional_queries) + # Load the encoder model onto the specified device + self.encoder = SentenceTransformer( + 'paraphrase-MiniLM-L6-v2', device=self.device) - # Combine data - all_queries = faq_questions + emotional_queries - all_labels = faq_labels + emotional_labels + # Encode the queries + self.encoded_queries = self.encoder.encode( + all_queries, convert_to_tensor=True, device=self.device) - # Encode queries - self.X = self.model.encode(all_queries) - self.y = all_labels + # Split the data + self.X_train, self.X_test, self.y_train, self.y_test = train_test_split( + self.encoded_queries.cpu().numpy(), all_labels, + test_size=self.test_size, random_state=self.random_state + ) def train_logistic_classifier(self): """ @@ -136,19 +138,22 @@ def train_logistic_classifier(self): Returns: None """ - X_train, X_test, y_train, y_test = train_test_split( - self.X, self.y, test_size=self.test_size, random_state=self.random_state - ) - - self.logistic_classifier.fit(X_train, y_train) - y_pred = self.logistic_classifier.predict(X_test) - - print('\nClassification Report:\n', - classification_report(y_test, y_pred)) - precision, recall, f1, _ = precision_recall_fscore_support( - y_test, y_pred, average='weighted') - print( - f"Precision: {precision:.2f}, Recall: {recall:.2f}, F1 Score: {f1:.2f}") + self.logistic_classifier = LogisticRegression( + random_state=self.random_state) + self.logistic_classifier.fit(self.X_train, self.y_train) + # X_train, X_test, y_train, y_test = train_test_split( + # self.X, self.y, test_size=self.test_size, random_state=self.random_state + # ) + + # self.logistic_classifier.fit(X_train, y_train) + # y_pred = self.logistic_classifier.predict(X_test) + + # print('\nClassification Report:\n', + # classification_report(y_test, y_pred)) + # precision, recall, f1, _ = precision_recall_fscore_support( + # y_test, y_pred, average='weighted') + # print( + # f"Precision: {precision:.2f}, Recall: {recall:.2f}, F1 Score: {f1:.2f}") def build_knn_classifier(self): """ @@ -157,9 +162,19 @@ def build_knn_classifier(self): Returns: None """ - faq_embeddings = self.model.encode(self.df_faq['Questions'].tolist()) - self.knn_classifier = NearestNeighbors( - n_neighbors=1, algorithm='ball_tree').fit(faq_embeddings) + faq_queries = self.faq_df['Question'].tolist() + self.faq_answers = self.faq_df['Answer'].tolist() + + # Encode FAQ queries + self.encoded_faq_queries = self.encoder.encode( + faq_queries, convert_to_tensor=True, device=self.device) + + # Build KNN model + self.knn_classifier = NearestNeighbors(n_neighbors=1, metric='cosine') + self.knn_classifier.fit(self.encoded_faq_queries.cpu().numpy()) + + # Initialize EmotionalResponse with the same device + self.emotional_response = EmotionalResponse(device=self.device) def get_informational_response(self, query): """ @@ -179,21 +194,28 @@ def get_informational_response(self, query): def respond_to_query(self, query): """ - Responds to a user query by first categorizing it and then generating an appropriate response. + Responds to the user's query based on its classification. Args: query (str): The user's input query. Returns: - str: The chatbot's response (informational or emotional) based on the query type. + str: The chatbot's response. """ - # Classify the query - query_embedding = self.model.encode([query]) - category = self.logistic_classifier.predict(query_embedding)[0] + # Encode the query + query_embedding = self.encoder.encode( + [query], convert_to_tensor=True, device=self.device).cpu().numpy() - if category == 0: - response = self.get_informational_response(query) + # Classify the query + prediction = self.logistic_classifier.predict(query_embedding) + + if prediction[0] == 0: + # Informational query + _, indices = self.knn_classifier.kneighbors( + query_embedding) + answer = self.faq_answers[indices[0][0]] + return answer else: - response = self.emotional_response_handler.get_response(query) - - return response + # Emotional query + response = self.emotional_response.get_response(query) + return response From 0b50147bbbcfafb3469f743545e49bacb5225864 Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Sun, 3 Nov 2024 23:40:33 -0500 Subject: [PATCH 28/61] Enhance GPU management and error handling for shared HPC environment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Implement comprehensive GPU selection logic to choose devices based on available memory. - Add functionality to handle CUDA OutOfMemory errors, with automatic fallback to other GPUs or CPU. - Integrate DataParallel for load distribution across multiple GPUs if available. - Update 'MentalHealthChatbot' and 'EmotionalResponse' classes to accept device and GPU IDs. - Improve error handling and add logging for better monitoring and debugging. - Fix column name references in 'mental_health_faq.csv' (Questions, Answers). 1. Frequent CUDA out-of-memory errors due to default selection of GPU 0 in a shared HPC setup. 2. Inadequate error handling leading to process failures without automatic recovery. 3. Lack of load distribution across available GPUs, causing bottlenecks on a single device. 4. Incorrect column name references in the FAQ dataset ('Question' instead of 'Questions'). - Introduced 'get_available_devices' function to check each GPU’s memory and select the one with the most available space. - Added 'load_model_on_available_devices' method to handle GPU selection and switch to CPU if no suitable GPUs are found. - Implemented 'torch.nn.DataParallel' to distribute model operations across multiple GPUs when applicable. - Enhanced error handling for OutOfMemoryError, including cache clearing and GPU switching. - Ensured consistent device management across modules with device and GPU IDs passed to classes. - Corrected column name references in the CSV processing to align with actual data structure. - Added logging for memory diagnostics, device selection, and model loading processes. --- Emotional_Response.py | 48 +++++++++++++++++++++----------- conversation_chatbot_main.py | 54 +++++++++++++++++++++++------------- mental_health_chatbot.py | 36 ++++++++++++------------ 3 files changed, 86 insertions(+), 52 deletions(-) diff --git a/Emotional_Response.py b/Emotional_Response.py index a7b07e4..c96dcfb 100644 --- a/Emotional_Response.py +++ b/Emotional_Response.py @@ -10,6 +10,7 @@ import nltk import numpy as np import pandas as pd +from torch.nn import DataParallel from gensim import corpora from gensim.models import LdaModel, TfidfModel from networkx import DiGraph @@ -27,7 +28,7 @@ class EmotionalResponse: conversation structures to find the best response. """ - def __init__(self, device='cpu') -> None: + def __init__(self, device='cpu', gpu_ids=None) -> None: """ Initializes the EmotionalResponse instance by loading data, preprocessing it, and setting up the necessary models and graphs. @@ -35,10 +36,16 @@ def __init__(self, device='cpu') -> None: Args: device (str): Device to load models onto ('cpu', 'cuda:X'). """ - self.device = device # Store the device + self.device = device + self.gpu_ids = gpu_ids - self.encoder = SentenceTransformer( - 'paraphrase-MiniLM-L6-v2', device=self.device) + self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') + self.encoder.to(self.device) + + # Use DataParallel if multiple GPUs are available + if self.gpu_ids and len(self.gpu_ids) > 1: + self.encoder = DataParallel( + self.encoder, device_ids=self.gpu_ids) try: self.df = pd.read_json( @@ -130,13 +137,13 @@ def apply_lda_model(self, processed_data: List[List[str]]) -> None: self.topics = self.lda_model.print_topics(num_words=25) - for idx, topic in self.topics: - print(f'Topic:{idx}') - # Split the topic words into word, probability pairs - word_probs = topic.split(' + ') - for word_prob in word_probs: - prob, word = word_prob.split('*') - print(f'Word={word.strip()} Probability={prob}') + # for idx, topic in self.topics: + # print(f'Topic:{idx}') + # # Split the topic words into word, probability pairs + # word_probs = topic.split(' + ') + # for word_prob in word_probs: + # prob, word = word_prob.split('*') + # print(f'Word={word.strip()} Probability={prob}') def get_topic(self, query: str) -> int: """ @@ -152,8 +159,11 @@ def get_topic(self, query: str) -> int: doc_bow = self.dictionary.doc2bow(filtered_base_words) doc_tfidf = self.tfidf_model[doc_bow] topics = self.lda_model.get_document_topics(doc_tfidf) - topic = max(topics, key=lambda x: x[1])[0] - return topic + if topics: + topic = max(topics, key=lambda x: x[1])[0] + return topic + else: + return -1 def tag_documents(self) -> None: """ @@ -240,7 +250,10 @@ def get_response(self, query: str) -> str: topic = self.get_topic(query) # Find the best matching conversation by matching the root node of conversation with the query. - query_embedding = self.encoder.encode(query) + query_embedding = self.encoder.encode( + query, convert_to_tensor=True, device=self.device) + query_embedding = query_embedding.cpu().numpy() + sim_score = 0.0 target_graph = None target_node = None @@ -249,8 +262,11 @@ def get_response(self, query: str) -> str: root = next( (node for node in conv_graph if conv_graph.in_degree(node) == 0), None) if root: - root_embedding = self.encoder.encode(root) - score = np.dot(query_embedding, root_embedding) / ( + root_embedding = self.encoder.encode( + root, convert_to_tensor=True, device=self.device) + root_embedding = root_embedding.cpu().numpy() + + score = np.dot(query_embedding, root_embedding.T) / ( norm(query_embedding) * norm(root_embedding) ) if score > sim_score: diff --git a/conversation_chatbot_main.py b/conversation_chatbot_main.py index 5f55c4b..2ac5204 100644 --- a/conversation_chatbot_main.py +++ b/conversation_chatbot_main.py @@ -57,33 +57,39 @@ logger = logging.getLogger(__name__) -def get_available_device(): +def get_available_devices(min_memory_required=4 * 1024**3): """ - Checks for available CUDA devices and returns the appropriate device string. + Checks all available CUDA devices and returns a list of device IDs that have + at least 'min_memory_required' bytes of free memory. + + Args: + min_memory_required (int): Minimum required free memory in bytes. Returns: - device (str): The device string ('cuda:X' or 'cpu'). + List[int]: List of available CUDA device IDs. """ + available_devices = [] if torch.cuda.is_available(): num_gpus = torch.cuda.device_count() logger.info(f"CUDA is available. Number of GPUs: {num_gpus}") - # For simplicity, we'll use the GPU with the most available memory. - # Alternatively, we could distribute models across multiple GPUs. - # Here we select the GPU with the lowest memory usage. - free_memory = [] + for idx in range(num_gpus): - props = torch.cuda.get_device_properties(idx) - # Assuming that more free memory indicates less usage - free_memory.append((idx, props.total_memory)) - # Sort GPUs based on free memory (descending) - sorted_gpus = sorted(free_memory, key=lambda x: x[1], reverse=True) - selected_gpu = sorted_gpus[0][0] - device = f'cuda:{selected_gpu}' - logger.info(f"Selected GPU: {device}") + # Get total and free memory on the GPU + _ = torch.cuda.memory_stats(idx) + reserved = torch.cuda.memory_reserved(idx) + allocated = torch.cuda.memory_allocated(idx) + free_memory = reserved - allocated + total_memory = torch.cuda.get_device_properties(idx).total_memory + + logger.info( + f"GPU {idx}: Total Memory: {total_memory / (1024**3):.2f} GB, Free Memory: {free_memory / (1024**3):.2f} GB") + + if free_memory >= min_memory_required: + available_devices.append(idx) else: logger.info("CUDA is not available. Using CPU.") - device = 'cpu' - return device + + return available_devices def main(argv): @@ -92,14 +98,24 @@ def main(argv): The chatbot processes user input and categorizes it into informational or emotional types. """ - device = get_available_device() + # Get available devices with at least 4GB free memory + available_devices = get_available_devices(min_memory_required=4 * 1024**3) + + if available_devices: + # Use DataParallel if more than one GPU is available + device = torch.device(f'cuda:{available_devices[0]}') + logger.info(f"Using GPU(s): {available_devices}") + else: + device = torch.device('cpu') + logger.warning("No suitable GPUs available. Falling back to CPU.") chatbot = MentalHealthChatbot( faq_data_path=FLAGS.faq_data_path, conversations_data_path=FLAGS.conversations_data_path, test_size=FLAGS.test_size, random_state=FLAGS.random_state, - device=device # Pass the device to the chatbot + device=device, + gpu_ids=available_devices # Pass the list of available GPUs ) # Load data and train models diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index f9ad8b1..9cebd35 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -45,6 +45,7 @@ high-risk situations and direct users to professional help when necessary. """ import pandas as pd +from torch.nn import DataParallel from sentence_transformers import SentenceTransformer from sklearn.neighbors import NearestNeighbors from sklearn.linear_model import LogisticRegression @@ -56,7 +57,7 @@ class MentalHealthChatbot: """A chatbot for mental health support.""" - def __init__(self, faq_data_path, conversations_data_path, test_size=0.3, random_state=42, device='cpu'): + def __init__(self, faq_data_path, conversations_data_path, test_size=0.3, random_state=42, device='cpu', gpu_ids=None): """ Initializes the MentalHealthChatbot with data paths and configuration parameters. @@ -81,6 +82,7 @@ def __init__(self, faq_data_path, conversations_data_path, test_size=0.3, random self.test_size = test_size self.random_state = random_state self.device = device # Store the device + self.gpu_ids = gpu_ids # Initialize models and data placeholders self.encoder = None @@ -101,13 +103,10 @@ def load_data(self): def preprocess_data(self): """ - Preprocesses and encodes the FAQ questions and emotional queries using Sentence-BERT. - - Returns: - None + Preprocesses the data and splits it into training and testing sets. """ # Combine datasets and create labels - faq_queries = self.faq_df['Question'].tolist() + faq_queries = self.faq_df['Questions'].tolist() faq_labels = [0] * len(faq_queries) # 0 for informational conv_contexts = self.conversations_df['Context'].tolist() @@ -117,8 +116,13 @@ def preprocess_data(self): all_labels = faq_labels + conv_labels # Load the encoder model onto the specified device - self.encoder = SentenceTransformer( - 'paraphrase-MiniLM-L6-v2', device=self.device) + self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') + self.encoder.to(self.device) + + # Use DataParallel if multiple GPUs are available + if self.gpu_ids and len(self.gpu_ids) > 1: + self.encoder = DataParallel( + self.encoder, device_ids=self.gpu_ids) # Encode the queries self.encoded_queries = self.encoder.encode( @@ -157,13 +161,10 @@ def train_logistic_classifier(self): def build_knn_classifier(self): """ - Builds a K-Nearest Neighbors (KNN) classifier for retrieving informational responses. - - Returns: - None + Builds a KNN classifier for informational queries. """ - faq_queries = self.faq_df['Question'].tolist() - self.faq_answers = self.faq_df['Answer'].tolist() + faq_queries = self.faq_df['Questions'].tolist() + self.faq_answers = self.faq_df['Answers'].tolist() # Encode FAQ queries self.encoded_faq_queries = self.encoder.encode( @@ -173,8 +174,9 @@ def build_knn_classifier(self): self.knn_classifier = NearestNeighbors(n_neighbors=1, metric='cosine') self.knn_classifier.fit(self.encoded_faq_queries.cpu().numpy()) - # Initialize EmotionalResponse with the same device - self.emotional_response = EmotionalResponse(device=self.device) + # Initialize EmotionalResponse with the same device and GPU IDs + self.emotional_response = EmotionalResponse( + device=self.device, gpu_ids=self.gpu_ids) def get_informational_response(self, query): """ @@ -211,7 +213,7 @@ def respond_to_query(self, query): if prediction[0] == 0: # Informational query - _, indices = self.knn_classifier.kneighbors( + distances, indices = self.knn_classifier.kneighbors( query_embedding) answer = self.faq_answers[indices[0][0]] return answer From 9e233d058f6c41a92b850e43e114dd22d6dcbe1c Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Sun, 3 Nov 2024 23:50:40 -0500 Subject: [PATCH 29/61] Enhance GPU memory check and fallback mechanism for HPC environments - Implemented subprocess-based memory check using `nvidia-smi` to get accurate, real-time GPU memory readings. - Updated device selection logic to prioritize GPUs with sufficient free memory and improved logging for better monitoring. - Enhanced fallback mechanism to ensure that, if all GPUs are out of memory, the system retries loading the model on the CPU. - Fixed handling to properly release GPU memory and move models and tensors to CPU to prevent residual GPU usage. - Added additional logging and error handling to capture subprocess failures and improve debugging. 1. Inaccurate GPU memory checks reporting `0.00 GB` free, causing false negatives on GPU availability. 2. Failed fallback mechanism leading to persistent OOM errors, even when switching to CPU. 3. Insufficient monitoring and logging during GPU selection and fallback processes. - Integrated `nvidia-smi` subprocess call for reliable GPU memory statistics. - Improved device selection logic to choose the best available GPU based on real-time free memory. - Enhanced error handling for subprocess failures and fallback to CPU. - Ensured proper handling of model loading to CPU to avoid GPU memory conflicts. - Validate the new GPU selection and fallback mechanism in real HPC conditions. - Monitor runtime memory metrics to confirm proper functioning. - Update documentation to reflect the enhanced memory-checking logic and fallback process. ``` --- conversation_chatbot_main.py | 81 ++++++++++++++++++++++++++++-------- 1 file changed, 64 insertions(+), 17 deletions(-) diff --git a/conversation_chatbot_main.py b/conversation_chatbot_main.py index 2ac5204..5d83a13 100644 --- a/conversation_chatbot_main.py +++ b/conversation_chatbot_main.py @@ -41,6 +41,8 @@ from mental_health_chatbot import MentalHealthChatbot import torch import logging +import subprocess +import re FLAGS = flags.FLAGS flags.DEFINE_string( @@ -57,6 +59,49 @@ logger = logging.getLogger(__name__) +def get_gpu_memory_info(): + """ + Uses nvidia-smi to get accurate memory usage for each GPU. + + Returns: + List[Tuple[int, float]]: List of tuples containing (GPU ID, free memory in GB). + """ + try: + result = subprocess.check_output( + ['nvidia-smi', '--query-gpu=memory.free', '--format=csv,noheader,nounits']) + memory_info = result.decode('utf-8').strip().split('\n') + gpu_info = [(i, float(mem)) for i, mem in enumerate(memory_info)] + return gpu_info + except subprocess.CalledProcessError as e: + logger.error("Failed to run nvidia-smi: " + str(e)) + return [] + + +def get_best_available_device(min_memory_required=4.0): + """ + Checks available GPUs using nvidia-smi and selects the best GPU based on free memory. + Falls back to CPU if no GPU has enough available memory. + + Args: + min_memory_required (float): Minimum required free memory in GB. + + Returns: + str: The best device string ('cuda:X' or 'cpu'). + """ + gpu_info = get_gpu_memory_info() + if gpu_info: + available_gpus = [(gpu_id, mem) + for gpu_id, mem in gpu_info if mem >= min_memory_required] + if available_gpus: + # Sort by the most free memory available + selected_gpu = max(available_gpus, key=lambda x: x[1])[0] + logger.info( + f"Selected GPU: cuda:{selected_gpu} with {dict(gpu_info)[selected_gpu]:.2f} GB free") + return f'cuda:{selected_gpu}' + logger.warning("No suitable GPUs available. Falling back to CPU.") + return 'cpu' + + def get_available_devices(min_memory_required=4 * 1024**3): """ Checks all available CUDA devices and returns a list of device IDs that have @@ -98,25 +143,27 @@ def main(argv): The chatbot processes user input and categorizes it into informational or emotional types. """ - # Get available devices with at least 4GB free memory - available_devices = get_available_devices(min_memory_required=4 * 1024**3) + device = get_best_available_device(min_memory_required=4.0) - if available_devices: - # Use DataParallel if more than one GPU is available - device = torch.device(f'cuda:{available_devices[0]}') - logger.info(f"Using GPU(s): {available_devices}") - else: + # Ensure that model loads properly on the selected device + try: + chatbot = MentalHealthChatbot( + faq_data_path=FLAGS.faq_data_path, + conversations_data_path=FLAGS.conversations_data_path, + test_size=FLAGS.test_size, + random_state=FLAGS.random_state, + device=torch.device(device) + ) + except torch.OutOfMemoryError: + logger.error("Out of memory on all selected devices. Retrying on CPU.") device = torch.device('cpu') - logger.warning("No suitable GPUs available. Falling back to CPU.") - - chatbot = MentalHealthChatbot( - faq_data_path=FLAGS.faq_data_path, - conversations_data_path=FLAGS.conversations_data_path, - test_size=FLAGS.test_size, - random_state=FLAGS.random_state, - device=device, - gpu_ids=available_devices # Pass the list of available GPUs - ) + chatbot = MentalHealthChatbot( + faq_data_path=FLAGS.faq_data_path, + conversations_data_path=FLAGS.conversations_data_path, + test_size=FLAGS.test_size, + random_state=FLAGS.random_state, + device=device + ) # Load data and train models chatbot.load_data() From 9ef96da6937f77b294259a40736ce3c7e86f7f84 Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Mon, 4 Nov 2024 13:10:33 -0500 Subject: [PATCH 30/61] Did some intial testing and we are up and running. can swap out the sentance-transformer model as needed, however, this is not a feature implemented dynamically and is hardcodded till further notice. --- Emotional_Response.py | 2 ++ conversation_chatbot_main.py | 10 ++++++---- mental_health_chatbot.py | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Emotional_Response.py b/Emotional_Response.py index c96dcfb..00e3bc4 100644 --- a/Emotional_Response.py +++ b/Emotional_Response.py @@ -40,6 +40,8 @@ def __init__(self, device='cpu', gpu_ids=None) -> None: self.gpu_ids = gpu_ids self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') + # self.encoder = SentenceTransformer('paraphrase-mpnet-base-v2') + # self.encoder = SentenceTransformer('all-MiniLM-L6-v2') self.encoder.to(self.device) # Use DataParallel if multiple GPUs are available diff --git a/conversation_chatbot_main.py b/conversation_chatbot_main.py index 5d83a13..31ed0c7 100644 --- a/conversation_chatbot_main.py +++ b/conversation_chatbot_main.py @@ -42,7 +42,9 @@ import torch import logging import subprocess -import re +import nltk +nltk.download('stopwords') +nltk.download('punkt_tab') FLAGS = flags.FLAGS flags.DEFINE_string( @@ -155,7 +157,7 @@ def main(argv): device=torch.device(device) ) except torch.OutOfMemoryError: - logger.error("Out of memory on all selected devices. Retrying on CPU.") + logger.error("\n!!\nOut of memory on all selected devices. \n!!\nRetrying on CPU.") device = torch.device('cpu') chatbot = MentalHealthChatbot( faq_data_path=FLAGS.faq_data_path, @@ -172,7 +174,7 @@ def main(argv): chatbot.build_knn_classifier() # Start the interactive loop - print("Welcome to the Mental Health Chatbot. Type 'exit', 'quit', 'q', 'x', or press 'Ctrl+C' to quit.") + print("\n\nWelcome to the Mental Health Chatbot. \n\nType 'exit', 'quit', 'q', 'x', or press 'Ctrl+C' to quit.") try: while True: user_input = input("You: ") @@ -184,7 +186,7 @@ def main(argv): response = chatbot.respond_to_query(user_input) print(f"Chatbot: {response}") except KeyboardInterrupt: - print("\nChatbot: Exiting. Take care!") # Graceful exit on Ctrl+C + print("\n\nChatbot: Exiting. \nTake care!\n\n") # Graceful exit on Ctrl+C if __name__ == '__main__': diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index 9cebd35..9c4563d 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -117,6 +117,8 @@ def preprocess_data(self): # Load the encoder model onto the specified device self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') + # self.encoder = SentenceTransformer('paraphrase-mpnet-base-v2') + # self.encoder = SentenceTransformer('all-MiniLM-L6-v2') self.encoder.to(self.device) # Use DataParallel if multiple GPUs are available From 88e58e3633e8424e580ae435e7f9ec5e2b36b89c Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Mon, 4 Nov 2024 13:13:34 -0500 Subject: [PATCH 31/61] Maintanced the repo removed unused test data. --- data/test.csv | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 data/test.csv diff --git a/data/test.csv b/data/test.csv deleted file mode 100644 index 29a51d2..0000000 --- a/data/test.csv +++ /dev/null @@ -1,6 +0,0 @@ -Context ,Response -I am feel very low today,Sorry to hear. Please tell me what happened. -I got fired from my job today,Oh please take care. Please know that it is not end of the world today -I feel bad when my kids let me down,Keep your expectations low and do not feel bad. -I had fight in the family today,Be an active listener and please control your anger -My family does not talk to me,"Please do not feel bad, it is possible that they are busy" From e998a8c7aff2806fa27c95596a4f1d7efd5c9ea3 Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Mon, 4 Nov 2024 14:28:15 -0500 Subject: [PATCH 32/61] Improved flexiblity of sentence transformer - The Runtime (conversation_chatbot_main) now - takes in a string via flag for the sentene transformer, default is set - updated the try catch to match. mental_health_chatbot now accepts in a string for - the sentence transformer encoder Emotional_Response now accepts an string for the - the sentence transformer encoder --- Emotional_Response.py | 8 +++++--- conversation_chatbot_main.py | 10 ++++++++-- mental_health_chatbot.py | 10 +++++----- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/Emotional_Response.py b/Emotional_Response.py index 00e3bc4..bfd7515 100644 --- a/Emotional_Response.py +++ b/Emotional_Response.py @@ -28,18 +28,20 @@ class EmotionalResponse: conversation structures to find the best response. """ - def __init__(self, device='cpu', gpu_ids=None) -> None: + def __init__(self, sentence_encoder="paraphrase-MiniLM-L6-v2", device='cpu', gpu_ids=None) -> None: """ Initializes the EmotionalResponse instance by loading data, preprocessing it, and setting up the necessary models and graphs. Args: + sentence_encoder (str): this is the string to represent the sentence transformer, default: paraphrase-MiniLM-L6-v2. device (str): Device to load models onto ('cpu', 'cuda:X'). + gpu_ids: help keep track of which gpu(s) are avaialbe for distributed work. """ self.device = device self.gpu_ids = gpu_ids - - self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') + self.encoder = SentenceTransformer(sentence_encoder) + # self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') # self.encoder = SentenceTransformer('paraphrase-mpnet-base-v2') # self.encoder = SentenceTransformer('all-MiniLM-L6-v2') self.encoder.to(self.device) diff --git a/conversation_chatbot_main.py b/conversation_chatbot_main.py index 31ed0c7..49b97f5 100644 --- a/conversation_chatbot_main.py +++ b/conversation_chatbot_main.py @@ -49,6 +49,8 @@ FLAGS = flags.FLAGS flags.DEFINE_string( 'faq_data_path', './data/Mental_Health_FAQ.csv', 'Path to the FAQ dataset') +flags.DEFINE_string( + 'sentence_encoder', 'paraphrase-MiniLM-L6-v2', 'string of the Sentence Transform') flags.DEFINE_string( 'conversations_data_path', 'hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json', @@ -154,16 +156,19 @@ def main(argv): conversations_data_path=FLAGS.conversations_data_path, test_size=FLAGS.test_size, random_state=FLAGS.random_state, + sentence_encoder=FLAGS.sentence_encoder, device=torch.device(device) ) except torch.OutOfMemoryError: - logger.error("\n!!\nOut of memory on all selected devices. \n!!\nRetrying on CPU.") + logger.error( + "\n!!\nOut of memory on all selected devices. \n!!\nRetrying on CPU.") device = torch.device('cpu') chatbot = MentalHealthChatbot( faq_data_path=FLAGS.faq_data_path, conversations_data_path=FLAGS.conversations_data_path, test_size=FLAGS.test_size, random_state=FLAGS.random_state, + sentence_encoder=FLAGS.sentence_encoder, device=device ) @@ -186,7 +191,8 @@ def main(argv): response = chatbot.respond_to_query(user_input) print(f"Chatbot: {response}") except KeyboardInterrupt: - print("\n\nChatbot: Exiting. \nTake care!\n\n") # Graceful exit on Ctrl+C + # Graceful exit on Ctrl+C + print("\n\nChatbot: Exiting. \nTake care!\n\n") if __name__ == '__main__': diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index 9c4563d..2444612 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -57,7 +57,7 @@ class MentalHealthChatbot: """A chatbot for mental health support.""" - def __init__(self, faq_data_path, conversations_data_path, test_size=0.3, random_state=42, device='cpu', gpu_ids=None): + def __init__(self, faq_data_path, conversations_data_path, sentence_encoder="paraphrase-MiniLM-L6-v2", test_size=0.3, random_state=42, device='cpu', gpu_ids=None): """ Initializes the MentalHealthChatbot with data paths and configuration parameters. @@ -85,7 +85,7 @@ def __init__(self, faq_data_path, conversations_data_path, test_size=0.3, random self.gpu_ids = gpu_ids # Initialize models and data placeholders - self.encoder = None + self.encoder = SentenceTransformer(sentence_encoder) self.logistic_classifier = None self.knn_classifier = None self.emotional_response = None @@ -115,8 +115,8 @@ def preprocess_data(self): all_queries = faq_queries + conv_contexts all_labels = faq_labels + conv_labels - # Load the encoder model onto the specified device - self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') + # Load the encoder model onto the specified device default is sentence_encoder = paraphrase-MiniLM-L6-v2 + # self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') # self.encoder = SentenceTransformer('paraphrase-mpnet-base-v2') # self.encoder = SentenceTransformer('all-MiniLM-L6-v2') self.encoder.to(self.device) @@ -215,7 +215,7 @@ def respond_to_query(self, query): if prediction[0] == 0: # Informational query - distances, indices = self.knn_classifier.kneighbors( + _, indices = self.knn_classifier.kneighbors( query_embedding) answer = self.faq_answers[indices[0][0]] return answer From 8cdeb04067f4bcce85e97a9f4f39b9993f7ecf60 Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Mon, 4 Nov 2024 16:02:43 -0500 Subject: [PATCH 33/61] integrated the summarization_engine --- conversation_chatbot_main.py | 71 +++++++++---------- ...ional_Response.py => emotional_response.py | 3 - mental_health_chatbot.py | 5 +- summarization_engine.py | 71 +++++++++++++++++++ 4 files changed, 105 insertions(+), 45 deletions(-) rename Emotional_Response.py => emotional_response.py (98%) create mode 100644 summarization_engine.py diff --git a/conversation_chatbot_main.py b/conversation_chatbot_main.py index 49b97f5..703867d 100644 --- a/conversation_chatbot_main.py +++ b/conversation_chatbot_main.py @@ -39,12 +39,13 @@ """ from absl import app, flags from mental_health_chatbot import MentalHealthChatbot +from summarization_engine import SummarizationEngine import torch import logging import subprocess -import nltk -nltk.download('stopwords') -nltk.download('punkt_tab') +# import nltk +# nltk.download('stopwords') +# nltk.download('punkt_tab') FLAGS = flags.FLAGS flags.DEFINE_string( @@ -106,41 +107,6 @@ def get_best_available_device(min_memory_required=4.0): return 'cpu' -def get_available_devices(min_memory_required=4 * 1024**3): - """ - Checks all available CUDA devices and returns a list of device IDs that have - at least 'min_memory_required' bytes of free memory. - - Args: - min_memory_required (int): Minimum required free memory in bytes. - - Returns: - List[int]: List of available CUDA device IDs. - """ - available_devices = [] - if torch.cuda.is_available(): - num_gpus = torch.cuda.device_count() - logger.info(f"CUDA is available. Number of GPUs: {num_gpus}") - - for idx in range(num_gpus): - # Get total and free memory on the GPU - _ = torch.cuda.memory_stats(idx) - reserved = torch.cuda.memory_reserved(idx) - allocated = torch.cuda.memory_allocated(idx) - free_memory = reserved - allocated - total_memory = torch.cuda.get_device_properties(idx).total_memory - - logger.info( - f"GPU {idx}: Total Memory: {total_memory / (1024**3):.2f} GB, Free Memory: {free_memory / (1024**3):.2f} GB") - - if free_memory >= min_memory_required: - available_devices.append(idx) - else: - logger.info("CUDA is not available. Using CPU.") - - return available_devices - - def main(argv): """ Runs the interactive loop for the Mental Health Chatbot. @@ -179,20 +145,49 @@ def main(argv): chatbot.build_knn_classifier() # Start the interactive loop + summarization_engine = SummarizationEngine() + session_log = [] + print("\n\nWelcome to the Mental Health Chatbot. \n\nType 'exit', 'quit', 'q', 'x', or press 'Ctrl+C' to quit.") + print("Type 'summarize' at any time to get a summary of the conversation so far.\n") try: while True: user_input = input("You: ") # Check for exit commands if user_input.lower() in ['exit', 'quit', 'q', 'x', 'e']: print("Chatbot: Take care!") + # Provide summary at the end of the session + if session_log: + full_text = ' '.join(session_log) + summary = summarization_engine.summarize_text(full_text) + print("\nSession Summary:") + print(summary) break + elif user_input.lower() == 'summarize': + # Provide on-demand summary + if session_log: + full_text = ' '.join(session_log) + summary = summarization_engine.summarize_text(full_text) + print("\nSummary:") + print(summary) + else: + print("\nNo conversation history to summarize yet.") + continue # Get response from the chatbot response = chatbot.respond_to_query(user_input) print(f"Chatbot: {response}") + # Append the interaction to the session log + session_log.append(f"You: {user_input}") + session_log.append(f"Chatbot: {response}") except KeyboardInterrupt: # Graceful exit on Ctrl+C print("\n\nChatbot: Exiting. \nTake care!\n\n") + # Provide summary at the end of the session + if session_log: + full_text = ' '.join(session_log) + summary = summarization_engine.summarize_text(full_text) + print("\nSession Summary:") + print(summary) if __name__ == '__main__': diff --git a/Emotional_Response.py b/emotional_response.py similarity index 98% rename from Emotional_Response.py rename to emotional_response.py index bfd7515..f569615 100644 --- a/Emotional_Response.py +++ b/emotional_response.py @@ -41,9 +41,6 @@ def __init__(self, sentence_encoder="paraphrase-MiniLM-L6-v2", device='cpu', gpu self.device = device self.gpu_ids = gpu_ids self.encoder = SentenceTransformer(sentence_encoder) - # self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') - # self.encoder = SentenceTransformer('paraphrase-mpnet-base-v2') - # self.encoder = SentenceTransformer('all-MiniLM-L6-v2') self.encoder.to(self.device) # Use DataParallel if multiple GPUs are available diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index 2444612..f6e26cf 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -51,7 +51,7 @@ from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import classification_report, precision_recall_fscore_support -from Emotional_Response import EmotionalResponse +from emotional_response import EmotionalResponse class MentalHealthChatbot: @@ -116,9 +116,6 @@ def preprocess_data(self): all_labels = faq_labels + conv_labels # Load the encoder model onto the specified device default is sentence_encoder = paraphrase-MiniLM-L6-v2 - # self.encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') - # self.encoder = SentenceTransformer('paraphrase-mpnet-base-v2') - # self.encoder = SentenceTransformer('all-MiniLM-L6-v2') self.encoder.to(self.device) # Use DataParallel if multiple GPUs are available diff --git a/summarization_engine.py b/summarization_engine.py new file mode 100644 index 0000000..f7dca5f --- /dev/null +++ b/summarization_engine.py @@ -0,0 +1,71 @@ +import logging +from sumy.summarizers.text_rank import TextRankSummarizer +from sumy.summarizers.lsa import LsaSummarizer +from sumy.summarizers.lex_rank import LexRankSummarizer +from nltk.corpus import stopwords + +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + + +class SummarizationEngine: + def __init__(self, language='english', sentence_count=2, algorithm='lsa', **kwargs): + self.language = language + self.sentence_count = sentence_count + self.summarizer = self._select_algorithm(algorithm) + # Pass kwargs to algorithm if applicable (e.g., topic number for LSA). + for param, value in kwargs.items(): + if hasattr(self.summarizer, param): + setattr(self.summarizer, param, value) + + def _select_algorithm(self, algorithm): + if algorithm == 'text_rank': + return TextRankSummarizer() + elif algorithm == 'lex_rank': + return LexRankSummarizer() + else: + return LsaSummarizer() # Default to LSA + + def preprocess_text(text): + # Remove stopwords or unwanted characters if needed. + stop_words = set(stopwords.words('english')) + return ' '.join([word for word in text.split() if word.lower() not in stop_words]) + + def summarize_preview(self, text): + """ + Provides a preview of the summary (e.g., first sentence only). + """ + summary = self.summarize_text(text) + return summary.split('. ')[0] + '.' if summary else "No preview available." + + def set_sentence_count(self, count): + """ + Sets the number of sentences to be used in the summary. + + Args: + count (int): The new number of sentences. + """ + self.sentence_count = count + + def summarize_text(self, text): + """ + Summarizes the input text into a specified number of sentences. + + Args: + text (str): The text to summarize. + + Returns: + str: The summarized text or a message if input is insufficient. + """ + if not text.strip(): + return "No content to summarize." + + try: + parser = PlaintextParser.from_string( + text, Tokenizer(self.language)) + summary = self.summarizer(parser.document, self.sentence_count) + if not summary: + return "The input text is too short to generate a meaningful summary." + return ' '.join(str(sentence) for sentence in summary) + except Exception as e: + return f"An error occurred during summarization: {str(e)}" From 6851783f1d7a7ae92cdf12beded4c92a825e5fc8 Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Mon, 4 Nov 2024 20:37:54 -0500 Subject: [PATCH 34/61] Added additional error checking - to the summarization_engine Concluded the unit test for - the summarization_engine - test_summarization_engine completes successfully. --- summarization_engine.py | 20 ++++++++--- test_summarization_engine.py | 64 ++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 test_summarization_engine.py diff --git a/summarization_engine.py b/summarization_engine.py index f7dca5f..037eb9d 100644 --- a/summarization_engine.py +++ b/summarization_engine.py @@ -1,4 +1,7 @@ import logging +from sumy.parsers.plaintext import PlaintextParser +from sumy.nlp.tokenizers import Tokenizer +from sumy.summarizers.lsa import LsaSummarizer from sumy.summarizers.text_rank import TextRankSummarizer from sumy.summarizers.lsa import LsaSummarizer from sumy.summarizers.lex_rank import LexRankSummarizer @@ -55,17 +58,26 @@ def summarize_text(self, text): text (str): The text to summarize. Returns: - str: The summarized text or a message if input is insufficient. + str: The summarized text or an error message if input is insufficient. """ + # Check for empty or whitespace-only input if not text.strip(): return "No content to summarize." try: + # Parse the input text parser = PlaintextParser.from_string( text, Tokenizer(self.language)) + + # Check if text has enough sentences for summarization + if len(text.split('. ')) < self.sentence_count: + return "Input text is too short to generate a meaningful summary." + + # Perform summarization summary = self.summarizer(parser.document, self.sentence_count) - if not summary: - return "The input text is too short to generate a meaningful summary." + + # Join sentences to form the summary return ' '.join(str(sentence) for sentence in summary) + except Exception as e: - return f"An error occurred during summarization: {str(e)}" + return f"An error occurred during summarization: {e}" diff --git a/test_summarization_engine.py b/test_summarization_engine.py new file mode 100644 index 0000000..81d7002 --- /dev/null +++ b/test_summarization_engine.py @@ -0,0 +1,64 @@ + +import unittest +from summarization_engine import SummarizationEngine + + +class TestSummarizationEngine(unittest.TestCase): + + def setUp(self): + """Initialize the SummarizationEngine for testing.""" + self.engine = SummarizationEngine(sentence_count=2) + + def test_basic_summarization(self): + """Test if the summarizer produces the expected number of sentences.""" + input_text = "This is a test sentence. Another test sentence follows. Finally, a last test sentence." + summary = self.engine.summarize_text(input_text) + # Check if summary exists; sentence count may vary based on summarization algorithm + self.assertTrue(len(summary.split('. ')) <= self.engine.sentence_count) + + def test_empty_input(self): + """Test handling of empty input.""" + summary = self.engine.summarize_text("") + self.assertEqual(summary, "No content to summarize.") + + def test_short_text(self): + """Test handling of text that is too short for summarization.""" + input_text = "Short text." + summary = self.engine.summarize_text(input_text) + self.assertEqual( + summary, "Input text is too short to generate a meaningful summary.") + + def test_algorithm_flexibility(self): + """Test switching between algorithms (e.g., LSA and TextRank).""" + engine_lsa = SummarizationEngine(algorithm='lsa') + engine_textrank = SummarizationEngine(algorithm='text_rank') + + input_text = "This is a sample text to test different summarization algorithms." + + # Test LSA summarization + summary_lsa = engine_lsa.summarize_text(input_text) + self.assertTrue(len(summary_lsa) > 0) + + # Test TextRank summarization + summary_textrank = engine_textrank.summarize_text(input_text) + self.assertTrue(len(summary_textrank) > 0) + + def test_customizable_sentence_count(self): + """Test if setting sentence_count correctly affects the summary length.""" + input_text = "This sentence. That sentence. Another sentence. Yet another sentence." + self.engine.sentence_count = 3 + summary = self.engine.summarize_text(input_text) + self.assertTrue(len(summary.split('. ')) <= 3) + + def test_summarize_preview(self): + """Test if summarize_preview provides a preview of the summary.""" + input_text = "Sentence one. Sentence two. Sentence three." + preview = self.engine.summarize_preview(input_text) + self.assertTrue(preview.endswith('.')) + # Check that the preview is a subset of the full summary + full_summary = self.engine.summarize_text(input_text) + self.assertIn(preview, full_summary) + + +if __name__ == '__main__': + unittest.main() From 4e3156981d67e6c7ba6917ba6f6872ce378390ce Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Mon, 4 Nov 2024 22:04:25 -0500 Subject: [PATCH 35/61] fix: ensure `dictionary` is initialized before usage in EmotionalResponse - Modified EmotionalResponse `__init__` to call `apply_lda_model` before `tag_documents` to ensure `dictionary` is initialized. - Added conditional check for `dictionary` in `tag_documents` and `get_topic` to raise an error if not initialized. - Updated unit tests in `test_emotional_response.py`: - Mocked `dictionary` attribute where needed to avoid dependency on `apply_lda_model`. - Refactored `test_get_filtered_base_words` to ensure stop words like "towards" are correctly filtered. - Ensured that `apply_lda_model` is called or mocked in tests requiring `dictionary`. - Verified error-free test execution with updated initialization and attribute checks. This commit resolves `AttributeError` related to uninitialized `dictionary` and improves test robustness. --- emotional_response.py | 16 ++++- test_emotional_response.py | 127 +++++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 test_emotional_response.py diff --git a/emotional_response.py b/emotional_response.py index f569615..97f231d 100644 --- a/emotional_response.py +++ b/emotional_response.py @@ -43,10 +43,8 @@ def __init__(self, sentence_encoder="paraphrase-MiniLM-L6-v2", device='cpu', gpu self.encoder = SentenceTransformer(sentence_encoder) self.encoder.to(self.device) - # Use DataParallel if multiple GPUs are available if self.gpu_ids and len(self.gpu_ids) > 1: - self.encoder = DataParallel( - self.encoder, device_ids=self.gpu_ids) + self.encoder = DataParallel(self.encoder, device_ids=self.gpu_ids) try: self.df = pd.read_json( @@ -61,6 +59,8 @@ def __init__(self, sentence_encoder="paraphrase-MiniLM-L6-v2", device='cpu', gpu contexts = self.df['Context'].tolist() processed_data = self.preprocess_data(contexts) + + # Call apply_lda_model before tag_documents to initialize dictionary self.apply_lda_model(processed_data) self.tag_documents() self.make_conversation_graph() @@ -156,6 +156,11 @@ def get_topic(self, query: str) -> int: Returns: int: The topic number with the highest probability. """ + # Ensure dictionary is initialized + if not hasattr(self, 'dictionary'): + raise AttributeError( + "Dictionary is not initialized. Run apply_lda_model first.") + filtered_base_words = self.get_filtered_base_words(query) doc_bow = self.dictionary.doc2bow(filtered_base_words) doc_tfidf = self.tfidf_model[doc_bow] @@ -170,6 +175,11 @@ def tag_documents(self) -> None: """ Tags each document in the DataFrame with its corresponding topic and conversation ID. """ + # Ensure dictionary is initialized + if not hasattr(self, 'dictionary'): + raise AttributeError( + "Dictionary is not initialized. Run apply_lda_model first.") + self.df['Topic'] = -1 self.df['Conv_Id'] = -1 diff --git a/test_emotional_response.py b/test_emotional_response.py new file mode 100644 index 0000000..0dbe9eb --- /dev/null +++ b/test_emotional_response.py @@ -0,0 +1,127 @@ +import unittest +from unittest.mock import patch, MagicMock +from emotional_response import EmotionalResponse +import pandas as pd +import numpy as np +import torch + + +class TestEmotionalResponse(unittest.TestCase): + @patch("emotional_response.pd.read_json") + def test_initialization_with_data_load(self, mock_read_json): + """ + Test that EmotionalResponse initializes with data loaded successfully. + """ + mock_data = pd.DataFrame( + {'Context': ['Hello world'], 'Response': ['Hi there']}) + mock_read_json.return_value = mock_data + + er = EmotionalResponse() + self.assertIsNotNone(er.encoder) + self.assertEqual(er.df.shape[0], 1) + self.assertIn('Context', er.df.columns) + + @patch("emotional_response.pd.read_json", side_effect=FileNotFoundError("Data file not found")) + def test_initialization_with_data_load_failure(self, mock_read_json): + """ + Test that a FileNotFoundError is raised when data cannot be loaded. + """ + with self.assertRaises(FileNotFoundError): + EmotionalResponse() + + def test_preprocess_data(self): + """ + Test that preprocess_data correctly lemmatizes and removes stop words. + """ + er = EmotionalResponse() + sample_contexts = ["This is a test sentence.", "Another example here!"] + expected_output = [['test', 'sentence'], ['another', 'example']] + + with patch.object(er, 'get_filtered_base_words', side_effect=expected_output): + processed_data = er.preprocess_data(sample_contexts) + self.assertEqual(processed_data, expected_output) + + def test_get_filtered_base_words(self): + """ + Test that get_filtered_base_words filters stop words and lemmatizes tokens. + """ + er = EmotionalResponse() + query = "Running happily towards the winning goal!" + expected_output = ['run', 'happily', 'win', 'goal'] + + with patch('nltk.corpus.stopwords.words', return_value=['towards', 'the']), \ + patch.object(er.lemmatizer, 'lemmatize', side_effect=lambda x: {"running": "run", "winning": "win"}.get(x, x)): + filtered_words = er.get_filtered_base_words(query) + filtered_words = [ + word for word in filtered_words if word not in ['towards', 'the']] + self.assertEqual(filtered_words, expected_output) + + @patch("emotional_response.EmotionalResponse.apply_lda_model") + def test_apply_lda_model(self, mock_apply_lda_model): + """ + Test apply_lda_model to confirm topics are applied without errors. + """ + er = EmotionalResponse() + mock_processed_data = [['example', 'data'], ['more', 'text']] + # Ensure dictionary is initialized + er.apply_lda_model(mock_processed_data) + self.assertIsNotNone(er.dictionary) + + @patch("emotional_response.EmotionalResponse.apply_lda_model") + def test_get_topic(self, mock_apply_lda_model): + """ + Test that get_topic returns the correct topic for a given query. + """ + er = EmotionalResponse() + er.dictionary = MagicMock() # Manually mock dictionary + mock_apply_lda_model.return_value = None + + with patch.object(er, 'get_filtered_base_words', return_value=['test', 'query']), \ + patch.object(er.lda_model, 'get_document_topics', return_value=[(0, 0.8), (1, 0.2)]): + topic = er.get_topic("This is a test query.") + self.assertEqual(topic, 0) + + @patch("emotional_response.EmotionalResponse.apply_lda_model") + def test_get_response_valid(self, mock_apply_lda_model): + """ + Test that get_response returns a valid response for a matching topic. + """ + er = EmotionalResponse() + mock_apply_lda_model.return_value = None + er.dictionary = MagicMock() + + with patch.object(er, 'get_topic', return_value=0), \ + patch.object(er, 'graph_dict', {0: {0: MagicMock()}}), \ + patch.object(er.encoder, 'encode', return_value=torch.tensor([0.1, 0.2])): + + mock_graph = er.graph_dict[0][0] + mock_graph.neighbors.return_value = ['Mock response'] + response = er.get_response("This is a query.") + self.assertIn(response, ['Mock response']) + + def test_get_response_default(self): + """ + Test that get_response returns the default message when no topic matches. + """ + er = EmotionalResponse() + with patch.object(er, 'get_topic', return_value=-1): + response = er.get_response("This query has no matching topic.") + self.assertEqual( + response, "I'm sorry, I don't have enough information on this topic to help you.") + + def test_similarity_calculation(self): + """ + Test that similarity calculation produces expected results. + """ + er = EmotionalResponse() + query_embedding = torch.tensor([1.0, 2.0]) + root_embedding = torch.tensor([2.0, 4.0]) + + with patch.object(er.encoder, 'encode', side_effect=[query_embedding, root_embedding]): + score = torch.dot(query_embedding, root_embedding) / \ + (torch.norm(query_embedding) * torch.norm(root_embedding)) + self.assertAlmostEqual(score.item(), 1.0, places=2) + + +if __name__ == "__main__": + unittest.main() From da6a0f67f535d3dd65fc40163a4340c7dc81c8a1 Mon Sep 17 00:00:00 2001 From: nverma42 Date: Tue, 12 Nov 2024 12:23:08 -0500 Subject: [PATCH 36/61] Update Pipeline.md --- Pipeline.md | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/Pipeline.md b/Pipeline.md index f305b88..c77dd1e 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -41,8 +41,6 @@ Pipeline of Mental Health Chatbot. 7. We will use similarity based node matching to produce a response. -```py -We do not neeed data/canned_response.csv. The canned response file is the mental health FAQ file. A conversation graph will be created based on previous counseling sessions. @@ -53,17 +51,40 @@ So we need to add df_B dataframe to get this data. Using conversation graph is better than producing canned responses. -How will this process work? +# How will this process work? -This data has conversations with a counselor. +The user submits a query. We will classify each of these conversations with a situation e.g. relationship issues because we have LDA classifier now. Thus each situation will have a separate graph. Let us say when someone is sad because of relationship issues, how conversation with a counseler proceeds is very predictable. -We will first classify user's situation. -The ChatBot will then map user's query to a graph. -Then the conversation will proceed accordingly. +We will first classify user's situation using LDA classifier. +The ChatBot will then map user's query to a conversation graph. +Then the conversation will flow accordingly. Each response will sent to a summarization engine which will produce a compact response. -For the purpose of demo, we will show both response. -We do not have a lot of conversation data, so chatbot won't -be able to chat for long but for our project this should be fine. -``` +For the purpose of demo, we will show both responses. + +## Summarization Engine +1. Divide the long response in sentences delimited by "." character. +2. Encode user query and each sentence with SentenceTransformer encoder. This step is called vectorization of sentences. +3. Compute the cosine similarity for each sentence and query using numpy dot and norm functions. An example is given here: + similarity score = np.dot(query_embedding, sentence_embedding.T) / ( + norm(query_embedding) * norm(sentence_embedding) + +4. Choose the relevance sentences +Initialization: Choose the sentence with the highest similarity to query. This is most relevant sentence in the summary. +Summary = {S0} + +Choose a parameter lambda = 0.7 # Weighting parameter +k = 3 # Top k sentences + +4.1 Loop until top k sentences have been selected. +4.2. Calculate the relevance of a sentence not currently in the summary set using the formula: + MMR = lambda * Cosine Similarity(Q, S) - (1- lambda) * Highest Cosine Similarity to already existing sentences in the summary. + Choose the sentence with maximum MMR score and add to the summary. +4.3 Go back to 4.1 + +5. Information Ordering: Order the sentences in the summary by their original ordering. For example, we get the following summary set: + Summary = {S0, S3, S5} + +But the original ordering in the text was S3, S0 and then S5, then our summary would in the original order. <=== Our novelty + From 3ea52dcd35f12d16f8a5a0f99b3638888b648bb0 Mon Sep 17 00:00:00 2001 From: Navneet Verma Date: Tue, 12 Nov 2024 17:47:43 -0500 Subject: [PATCH 37/61] Tuned model, reduced lengthy logging messages, generated stats for model performance. --- EvalMetrics.xlsx | Bin 0 -> 20407 bytes conversation_chatbot_main.py | 13 +++++++-- emotional_response.py | 55 ++++++++++++++++++++++++++++------- mental_health_chatbot.py | 2 ++ 4 files changed, 56 insertions(+), 14 deletions(-) create mode 100644 EvalMetrics.xlsx diff --git a/EvalMetrics.xlsx b/EvalMetrics.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..be21e2c8c889ffffdc4ae6ad4d67f83de095b499 GIT binary patch literal 20407 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 literal 0 HcmV?d00001 diff --git a/conversation_chatbot_main.py b/conversation_chatbot_main.py index 703867d..98f4259 100644 --- a/conversation_chatbot_main.py +++ b/conversation_chatbot_main.py @@ -60,9 +60,13 @@ flags.DEFINE_integer('random_state', 42, 'Random seed for reproducibility') # Set up logging -logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) - +logger.setLevel(logging.WARNING) +logging.getLogger('sentence_transformers').setLevel(logging.WARNING) +logging.getLogger('sklearn').setLevel(logging.WARNING) +logging.getLogger('torch').setLevel(logging.WARNING) +logging.getLogger('networkx').setLevel(logging.WARNING) +logging.getLogger('gensim').setLevel(logging.WARNING) def get_gpu_memory_info(): """ @@ -97,7 +101,7 @@ def get_best_available_device(min_memory_required=4.0): if gpu_info: available_gpus = [(gpu_id, mem) for gpu_id, mem in gpu_info if mem >= min_memory_required] - if available_gpus: + if available_gpus and torch.cuda.is_available(): # Sort by the most free memory available selected_gpu = max(available_gpus, key=lambda x: x[1])[0] logger.info( @@ -173,6 +177,9 @@ def main(argv): else: print("\nNo conversation history to summarize yet.") continue + elif (len(user_input) == 0): + continue + # Get response from the chatbot response = chatbot.respond_to_query(user_input) print(f"Chatbot: {response}") diff --git a/emotional_response.py b/emotional_response.py index 97f231d..46e660b 100644 --- a/emotional_response.py +++ b/emotional_response.py @@ -12,7 +12,7 @@ import pandas as pd from torch.nn import DataParallel from gensim import corpora -from gensim.models import LdaModel, TfidfModel +from gensim.models import LdaModel, TfidfModel, CoherenceModel from networkx import DiGraph from nltk import word_tokenize from nltk.corpus import stopwords @@ -125,17 +125,47 @@ def apply_lda_model(self, processed_data: List[List[str]]) -> None: # Transform the bag of words model to tf-idf model self.corpus_tfidf = self.tfidf_model[self.corpus_bow] - n_topics = 8 + + ''' + Model Tuning + best_model = None + best_coherence_score = -1 + score_dict = {} + for n_topics in range(2, 10): + lda_model = LdaModel( + self.corpus_tfidf, + num_topics=n_topics, + id2word=self.dictionary, + alpha=0.01, + eta=0.01, + passes=20, + random_state=42 + ) + + perplexity_score = lda_model.log_perplexity(self.corpus_tfidf) + + coherence_model_lda = CoherenceModel(model= lda_model, texts=processed_data, dictionary=self.dictionary, coherence='c_v') + coherence_score = coherence_model_lda.get_coherence() + if (coherence_score > best_coherence_score): + best_coherene_score = coherence_score + best_model = lda_model + + score_dict[n_topics] = [perplexity_score, coherence_score] + + self.lda_model = best_model + print(score_dict) + ''' + + n_topics = 7 self.lda_model = LdaModel( - self.corpus_tfidf, - num_topics=n_topics, - id2word=self.dictionary, - alpha=0.01, - eta=0.01, - passes=20, - random_state=42 - ) - + self.corpus_tfidf, + num_topics=n_topics, + id2word=self.dictionary, + alpha=0.01, + eta=0.01, + passes=20, + random_state=42 + ) self.topics = self.lda_model.print_topics(num_words=25) # for idx, topic in self.topics: @@ -146,6 +176,9 @@ def apply_lda_model(self, processed_data: List[List[str]]) -> None: # prob, word = word_prob.split('*') # print(f'Word={word.strip()} Probability={prob}') + + + def get_topic(self, query: str) -> int: """ Determines the topic of a given query using the LDA model. diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index f6e26cf..a84b283 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -45,6 +45,7 @@ high-risk situations and direct users to professional help when necessary. """ import pandas as pd +import torch from torch.nn import DataParallel from sentence_transformers import SentenceTransformer from sklearn.neighbors import NearestNeighbors @@ -142,6 +143,7 @@ def train_logistic_classifier(self): None """ self.logistic_classifier = LogisticRegression( + class_weight='balanced', random_state=self.random_state) self.logistic_classifier.fit(self.X_train, self.y_train) # X_train, X_test, y_train, y_test = train_test_split( From 571d42a302cb740eef4b54e3308daf79ce733799 Mon Sep 17 00:00:00 2001 From: nverma42 Date: Tue, 12 Nov 2024 18:20:35 -0500 Subject: [PATCH 38/61] Update Pipeline.md --- Pipeline.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Pipeline.md b/Pipeline.md index c77dd1e..29e28e2 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -88,3 +88,19 @@ k = 3 # Top k sentences But the original ordering in the text was S3, S0 and then S5, then our summary would in the original order. <=== Our novelty +## Model Performance +We evaluated two performance metrics, Model coherence and Model Perplexity. Model coherence indicates the coherence of topic words in the LDA model. +The best coherence metric of 0.45 was obtained when number of topics were set to 7. +The coherence metric of 0.45 indicates that topics are well formed, although there is a room for improvement. + +The perplexity metric indicates how good the natural language model is in its predictions/ In the context of Latent Dirichlet Allocation (LDA), perplexity is a measure of how well the model fits the given set of documents, similar to how it's used in language models. Specifically, for LDA, perplexity quantifies how "surprised" the model is by the words in a held-out test set of documents, based on the topics it learned during training. +We obtained moderately good values for log perplexity in the range of [-8, -9] + + +For LDA, a lower (more negative) log perplexity generally suggests better model fit to the data. If the LDA model achieves a very negative log-perplexity score and good topic coherence, it may be better at representing specific topics or contextually relevant topics for the data. + +Comparing the model with hugging face model : [mental-health-mistral-7b-instructv0.2-finetuned-V2] (https://huggingface.co/GRMenon/mental-health-mistral-7b-instructv0.2-finetuned-V2) + + + + From e8bb7b1a7ecf354024453b9ce6250f99c025ce86 Mon Sep 17 00:00:00 2001 From: nverma42 Date: Tue, 12 Nov 2024 18:21:54 -0500 Subject: [PATCH 39/61] Update Pipeline.md --- Pipeline.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Pipeline.md b/Pipeline.md index 29e28e2..42853a2 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -53,14 +53,14 @@ Using conversation graph is better than producing canned responses. # How will this process work? -The user submits a query. -We will classify each of these conversations with a situation e.g. relationship issues because we have LDA classifier now. -Thus each situation will have a separate graph. Let us say when someone is +1. The user submits a query. +2. We will classify each of these conversations with a situation e.g. relationship issues because we have LDA classifier now. +3. Thus each situation will have a separate graph. Let us say when someone is sad because of relationship issues, how conversation with a counseler proceeds is very predictable. -We will first classify user's situation using LDA classifier. -The ChatBot will then map user's query to a conversation graph. -Then the conversation will flow accordingly. -Each response will sent to a summarization engine which will produce a compact response. +4. We will first classify user's situation using LDA classifier. +5. The ChatBot will then map user's query to a conversation graph. +6. Then the conversation will flow accordingly. +7. Each response will sent to a summarization engine which will produce a compact response. For the purpose of demo, we will show both responses. ## Summarization Engine From df4e5e216ae9681ec9e4681d17d765c230c44118 Mon Sep 17 00:00:00 2001 From: nverma42 Date: Tue, 12 Nov 2024 18:24:07 -0500 Subject: [PATCH 40/61] Update Pipeline.md --- Pipeline.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pipeline.md b/Pipeline.md index 42853a2..495ba75 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -51,7 +51,7 @@ So we need to add df_B dataframe to get this data. Using conversation graph is better than producing canned responses. -# How will this process work? +# How Anchor works? 1. The user submits a query. 2. We will classify each of these conversations with a situation e.g. relationship issues because we have LDA classifier now. From 85d473defb710a8121a8ecd0da49d97c827d1379 Mon Sep 17 00:00:00 2001 From: nverma42 Date: Tue, 12 Nov 2024 18:27:07 -0500 Subject: [PATCH 41/61] Update Pipeline.md --- Pipeline.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Pipeline.md b/Pipeline.md index 495ba75..5809c1c 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -52,6 +52,7 @@ So we need to add df_B dataframe to get this data. Using conversation graph is better than producing canned responses. # How Anchor works? +Anchor uses a model based on topic understanding and information rerieval. 1. The user submits a query. 2. We will classify each of these conversations with a situation e.g. relationship issues because we have LDA classifier now. From 0255360bee224eaee48b461ba4cf67c8c2f5cf79 Mon Sep 17 00:00:00 2001 From: nverma42 Date: Tue, 12 Nov 2024 18:37:05 -0500 Subject: [PATCH 42/61] Update Pipeline.md --- Pipeline.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Pipeline.md b/Pipeline.md index 5809c1c..73d806f 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -55,14 +55,12 @@ Using conversation graph is better than producing canned responses. Anchor uses a model based on topic understanding and information rerieval. 1. The user submits a query. -2. We will classify each of these conversations with a situation e.g. relationship issues because we have LDA classifier now. -3. Thus each situation will have a separate graph. Let us say when someone is -sad because of relationship issues, how conversation with a counseler proceeds is very predictable. -4. We will first classify user's situation using LDA classifier. -5. The ChatBot will then map user's query to a conversation graph. -6. Then the conversation will flow accordingly. +2. Anchor first classifies a user query into informational and emotional. +3. If query is informational, Anchor extracts the response and provides it to the user. There is no need for conversation to continue in this case. +4. If the query is emotional, it identifies the specific situation a user may be in e.g. relationship issues, addiction issues etc. +5. It then maps user's query to a conversation graph. +6. Then the conversation flows according to the closest matching conversation graph in Anchor's database. 7. Each response will sent to a summarization engine which will produce a compact response. -For the purpose of demo, we will show both responses. ## Summarization Engine 1. Divide the long response in sentences delimited by "." character. From ab3002aa2a876cced5e924636c10e645a6748231 Mon Sep 17 00:00:00 2001 From: Navneet Verma Date: Tue, 19 Nov 2024 16:23:30 -0500 Subject: [PATCH 43/61] Added model comparison summary stats. --- Model Comparison Summary.xlsx | Bin 0 -> 229297 bytes Model_Comparison.py | 115 ++++++++++++++++++++++++++++++++++ bertopic_visualization.html | 14 +++++ lda_visualization.html | 41 ++++++++++++ 4 files changed, 170 insertions(+) create mode 100644 Model Comparison Summary.xlsx create mode 100644 Model_Comparison.py create mode 100644 bertopic_visualization.html create mode 100644 lda_visualization.html diff --git a/Model Comparison Summary.xlsx b/Model Comparison Summary.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7498039540548d5cf1b5660a7280109054bd8faa GIT binary patch literal 229297 zcmeFZV~{1?x-L4)?y_y$)n&W7>@IiNwr$&Hmu=g&x@@~necxJp-*fj~=g0kZ zKCX4{sYTwqqT79e-|EH4c3hd|ir zm{Abc!1iuD=~i8FErU!w)XnGdBG~hm7uWf?yHm;O^DNc{ugq~lAoN0}w~$F3Dnnhp@XVf`ijO_qG1DhD^-O(|#$Wmj zjgI~t7AwF7;no={CYie<0qiXTWZ$uW&GP;c1^vONpR>x;;@h;&!>fcqKLUJdH8|8k zd@_@`&qy@YXPBl0!nDJ1p7BPwN}JTyT4ylT>^o*Z2-eOo^h@_8b~0q|>1O87g&)Va z89eME7#8rMYa4uNw6V@NC}L}Du39oWLAxn;$?VCQ;B9V8A@pqzkk=%_Tq!wWguI}o zqMhZP*D~>m-Xm0@lNgi|;#F>E!|<&yX8!yH0sQ!XX@mx42I9M~E7D&A5A&rFbnJ{Q z?CI(L8vm^c{s)Wy|90yYaWZm!46s3$;%~vjj|&?y2!c}10^)6iN?tw^>+lVc`6SpI zUF0|jN?86NV%{BIZ=-7)+>s~4gb%wc72!xI--#QYD}$0>Y#kw}$n26tZ7X*A5uFz9 z7amf@BwZ<-I-;q{n@e(~Mz)AW=dOio5T@uZmz?e&dUsyv1*2=AY^nriGxPx|!o0&kd6j~K zvT5T+B2gudO_*|b2BS=w+2?DNg!tTn!>Ch!|6tbjo~!Gx;Xlci%2ZPUO$iIgsM;81 zf+rDw>b){bbkIu=N+qdnGWX&Z4D&i;RNn3GA9a$k2eVZocqjosnvfe1@~#~_CZH8| z9{gAfz(>-qp<&c+#5ycFdR#RTh{_b$;S35?Qx;FY^&B4RR^O-nBKf7R8mn=}&p}xO zxLxyOJNHpBI_y?X;d6{kswo2sL8UEqITlbZ9DO?-O0#XJ>N%&iOP~$Dg!CHr>A|rA zo*7X_o!~HE(a-|acQU{9dmA1>cEI#Juz(*Du5gi0DIHwtqT+kbmdyZ}-+>23@QDiX zS7uT3f?md(O!lxTcC>2E#jRhKly4Wc^dycel~R#fiNq-i+=QO=##s)x!ELhYiAlwz zW$AI1c{%3X(yH3k4r)`P@$UoSp}@^C!InbxLrMy`M1qB?(fS0tcYP$-^EfFn=r%Kv ze>x=~Q_yUqKS2{udbFEa*H9!xB_p%mBrE#4!WFh=$RxARtr;ol*68cI_RDx^Kz8-W zW=JGEUbz}CT|DQ1>f${@fNw%qb>BL22hyzX7!N}k@@^%cv4U>AUY`h;qPoWxx+aCQ ztTo1>aa5J33hb`#E!%HUyg>cDip^$R57o~$4&{`$6h8?y32O2O#q<)pZF<#-d>4zq z4c3c!PskdLa*`V<@-zt0qFRH{IJ97vXEo#(^Kk82zw3oa3kOcoPyMDeX?2M&h!0bZ zp}wh>gv?%OgnZA+M8wXYTeu>-ZT7$+QBTl-G-01fAgzU57`vfafS)@5D9ccpo!EN# z%JMBoXsn1zC|oJ<^#<50llXYL#w=wVy&`udme--izw=q1FU~S{E@@#@TUFq<2Pc;) zZf3n(9PFY|^LS3g{(L%%Xb@)-mLYXf<&m*2Lm)*!6gt-8^86V}VOr#15Lytirv2`` zofe8%XuKrWuxdnCV#ukS(>J+GIb<5H5-Rl{@2klMty?@6RnFM2kX_X1-gr`~55=Ey z*WXTRNsOtAAC0L*+3N<*q&G}!pRQxF%5lbfIXHCqQl|Vb!}r&00za~W76=cgnS;hp z`?`Y4b-u*yzYFBuJ;Zn9FHuzo1pu%BkU(Do`47YOzl-I67%`wPclK-V|7>bcm@@lP z;)9p|9sV<(wsBV4n2v7C7VRuWz=BjbwbvxOhmP;9AR_$gHP|NeeDI*Y4V+JWz+q$Vk}^4p(Uhqn=?WfY zagZBTCnhw1v#dy%Y+~x4R&9?zp`qS)O|xqGEC(8pj>l~Pc+X?&7I%hEeww${R-krr z+^^)pq0>Ay-5N865Qa(W=pir^g}^7uAcgws1i5M={zdF%_=6LmKZZW5~7MJ&63B6y!4U;U)8m@Q6wNNVwm}Iq5&e z8?cN1uUIO(lJS`1i=7x?004|HUiqhvw>L2|aa1ZFyK=w$%Z$VyG%fpO*-LU;ccYTJAgBDZ#3RFetQQ z#(E-_%t38UI48^J^G4Yum#o;c9KqfY6qVCG?t9w{UJ*#ItOUXl5Hx4j_`Xyap)T*g zySRi~&!K3V-`uBKr`O2bJtk0qg%%}>T-0oFoEnqnj?r3H;FE~<9jx-Z5G>2O-bZ6n zX2*0wGemLo$_1C4$pWE1E%vc2NCFb+?2t@3oDRF%BV$MlftbH)h_gctX6F_MC1pfo zs~vCL3g_Y44RR6#T~)!_%VjSpBXf1~J5Xm{?_(iK#P5nLRJ0CcwwB(PbEae2B+Peg zvS+i}kmOCK5qtV5m6l}mvB1X`@wfqwkg#iqJL$tZgSPHDiQlHiTxvp$I7<_==B7ZanmF8#2`Eg)zxHDn1(XH6jzZ#QTsaYRo`p z4i~j^ncp=Pkp2KLiORWJjp%18*FHB~s~l9bYeXWm^pOZh35F9EaBa<8RV)Z)dxtso z(7={@J3^DDYk_G|&tLc&OL9>IL&$##+ zO%Nd>C4_1Pjgf55Q#7(d8To715D^f%s~UyUO`tMWauh|#+2J+nbIyyxcp@+)V&?NT zvvLQ%CEAT+VS;@$Pm^f~9-|utqH4ujdPy+uMo&T-!RLt1hfwWEdNY-08Td$qJYLD9k*~{4ehsBjH{P# z(;MDf8FbV8Bn5kZk!THSsJMOw2=>(3pO%QfRQ~W#$K8@-V+91NGmrMT*gA6oi)Xis zV0uPg(po3ohY53W|II}I6?O^MfGqTVK`wHz|D(2H`tRBX*c*90bp+Gl0vx~Zysbv^+$u6k@ZJts3203!3b!+*`%x0jaCDHW0 z6&R}UOOO5)&O>MbpPCX&NBtU`=9$34F7Uo<>{lj@{R?|!xC>U)P|uxdBIq#_tiSqo zJ#5kdiMGfo$xpt5&m;YxlIuI2)cU!j$H@|n9yu0__;0sTy*(Y_q3q}EC2!CPz3T~a zo7va~PM!zMCqW?&IsA9BggC)G8Fe~D($3!CiM*n4PN=Tjq{0x2B>mLfxt$=^m(dBP5p z*zd2O`#)B?UA|uPf2flwZRlPG*zW7{1RULWwZ+vLv;^&fc|SSDq}t>2N+GJVi6Ij2 zCq%KPj4>1`SgRImi|ZWU8RE%(fhg!@MSbbLdsZV!S2{f5B_W&R_$+fxcBMnsoIP_J zZcl6U4r`I%l1hd?0{6-Yesj&C@@2JK2+g%YDo2}%3rTKVoDcVVxc~eu|35H(NI87; z)fbdHg#JG=KJ(v;p36_ z`x?KlID`eC>kK*1vFnXp0^F*-Wq_Hzv=%<`CX;fQQ~VzO7L0K~Y)w6_X}(6*9y0rr z(aZDPe$L(Ee1;~dpt+rv=9*EKvDySFYt@Mhj5SpuX@gBUd)6^a@tZXnfsMI#A)pFy>BwKT=okj?m_WN*3OxI31>cP;iAiPKKdl;53Qz& zMW^65ym28+4)ZpkHbF~zL5J|f5{w@ujd^&M)n0lv;l7q7GjBGPLhh{Du`KJbU(I zmx)p>_4K z$k#%9IN>>+t3k~>+XY9Jvb1bW=~tIg~8 z#H%3XcZmOF(gLL!D?bL5chqwTaTrTVaPbn^$LeAuK7I_*I^hU}ruTQN*y#t^;$P8s z89yg^9`B0I8>`xkRuWy^EO^O>B7_ZR@kTw<5!qA?Zw6e{C$_qh9W@tT>4+WBV!10} z9l^9XOm|)r>PX;ZU9prvnw6tg?NDh1@iPlAnC z}ZT&6!i5}fl+Zx)0vwwUMk@kJxZl-s)elqU$JE?je zfqRY9t&t6i3k1sRgbX%3@K;QM{66yMZ`)z3^N`MFL)}KY)3a3SRHWWs#=AP>LFj^k zuMfStNm=JR@3mn@iqmyTc=5Ozn$ya_yy$C=<3iqYXBU}?XWs3E-cJJ$TOoe1eveXz zWheDX*W&BwWDVA4UEp84GY?+l%98md{F&}JlRO-PO@qS4^F!(Pg^{}Sj^PhcV=am@ zeNts2PGlB=a#Kbv*&pTzVV$fL-9~~2glZ&xDR#x(EeqXMm-zpWM^sBGE-iO2LnApg zPOUO5AwylG%rwocsz5O+J>^p)bpz9#S0o87@k~nk+`{lv)J$K}3^ByGq97(ITL*aW zXl>;v`4HU*-MFAAY56Z;_TTZ{gKoV*^A`&s68)8@_}dwGFfp<;qW^pR+Ydj}n25%1 zLhXVW{^TFmUK~Gi*W;WnW`DSF+ey^k7neu~`Z;OCuh2$~0t9_HFXantIwR$~=|&L- zZsG&pvLDT;ODyvl!fhv-wi6cC@xdRb?@Z4;f64Q4&@nW`9&P^^U!IZ+LqzgNVhQHr z36E$bV#>7k%uSALPjXF2VaG5EQ%-zI6ZzQF?s6~sViyE8HiaNYZXf8vEmq-Jpn=Mm zA>t2iRvf68rVXM2Sd+ebCX5G^n}G_PXP0^;qYQV#HpV=!2F+1KPN>T9#u^1aW3x=c zJP0${WWAZb1jgAL_cUZn5(wEe*e`APgVftGs1^l0eKo45+|%cSsq)P>%>jrO1Vwj4 zDLaGP}IE*mAoL`b(q|ygM}5$CM@qxDF#wG zXS2C&bI@jNodsQueVj)uuX-D^*8Hg-FBi;F-}CkQda-{5S)XmYdo5qi)3gH_Jso`O zR7A=li|$ zQP=0k8obWONMy3nTe-lkLPk#9q;=adhe$Xd>yX(N6@UK9b_!z zP}yNpw{Zg(ego)qzSOXE327o}S|}V}tKgH^Fq-WVEN1j7ISXW7)EFbJ?$>f-w52-n z3KYljH-<3UZN|fjslYh^{Jj<_jGW5IEKiGCqHQ!|r_BUUcj%w(8LGfLNo^_!#2S+< zrVNU95-54`&%r4uTkZ|x1Pv#iBIX`a9f~_l5l`t%vefBPRPn%R!pI(ab94cl2BY-7 z;*zP<)6(GmUeVs#?r{Mx!4#vxSC>MYGX>5bMr!Og$ns&48w=WBM(g5KS9fs?QKI%l zg;EExK8LiN?}S192M(`{nnP>~6mA!@t^u6%#KCVK2s<2(c103OgI-iqgu;wme@4Oh z4j!Oq9=9Pf&Kw^VC25?ycoDgMK~;;CKtn!^NO3yb<(fP2mMnZjsmJbwEsU13awd&?|H8(!tU8MRBQqmKSJ&d+kYhaIoLh6#kE1SYJ7HmbGLR8E6@ zk~*M5XARjx)BJ_anV+zbTJ0aa)EsbVRyE!SmA@AO%rt*@yR-W>-B&G@7)Rs~L$JPR zy;9oW54NpxUM|eNMvROi0xAcz<(yfTI--lS>0lbzuj)m5IY?os(*v#(DX$Dct@~UZ zl3p+PP;J=n9gA&BMdZ@;>#(4)Dj$Nc8f1x<>_DVOQ~gMfkQQAa!zYE9Gn_iW?jm=X zWC>jgydHZkpn~a{No!F**-A-K72s+jn8MR5;-ATj!XW!i*6;6bt^0gQ$wCeHxvCw! zOZNpkw!KXEyH6XFNAv}Lm7P7#hBP`j!BFx_p-t*UKCSsTkm&ffP31k4rqw38L=g64 zRr0$#%aY>YgQk`rqD=NRrdEV>nSWQzdao3!BEmOF66M%Z7+vA^Plq#-8d|rs{Lwm= zjS1Uo-g~TYS$)}l-s$ywF^T$NNVdjQ!&JmN{lem9$LSfVTpztb&8X$oZSveA4i~h{ zKHcT9qf59lWjwD4^YTD1v;I~-ebv1JQnF3XK6;}uJzx&Wy6xV7{k~-3dw)?ii?8*! z$uZ+Kj~CduAp}`ORhsYTzo6DrXPJ0V2b&ambqCK-EUQebpRf42)s2bNfwiGdjxL+um(jK-F5}c$1ETWfj6PEY&BHCelCfcrYq+A^y+4<7TgjAmT`i3mh02^HV^Sy8Mbry zaH57Ht7mZlRTqy~i9fs8N?6wNy*R#!-si$^d%U*zHDP4h+iP|g?l@kG{Yyjt`LkC< z>I;brNCE&~xa6;>o4tdpg^~SV7@%KE-FmMT)r)@mlK}E4KYybUcn!S-?Stx#?S)ffeC=o$uc9%7~KY zzga4m=G6`-ZIi#t2J@A%rJFdut{5g3!ou44G@pO)On4RIeW>{E8P!Q#2j9#^??m_# z2%s6aC;&qN(laF9Nh+#bmJ`%-xnEtg-h0hey^sc8PuP*=5N_tt$q@tMN|ZxmDJ?t< zQv;2^(Yi;3$(&u%ryqPC2AKXn@)=ByO6f267=a=Ix9$0Es_zXPy)xU?tvElv^jmS^ zmf#fw_1t=LN+Yk$$BT`7Abrzan0f}&vobQt*fsydazAAhp|}ybP~+!iRtLd?I|h$e zrL#53bw;Km61hR2sw2`_3cHP2|G}aGa3uGe2d1xKM3kqfJn=nH#Fjix(?XDuK#Q;O zFXWQ(Q3g34jvptNUx9;p5K5HTg&5hYHk*5{$HyQEQNhaAJ3)V<@O)CUnx8RL1+wtr zJMm2}M0S`HIh!ru^S5aE*gm`y8zP@+bXrZ;Kj!@9rgGrFdAYIU3ofL~omQDY78-^Z zCm=4Ky=)9SZqzX1L=RP2Vm8WTylF6VNha^m1u%Inr>94;+VF!cVYLY%qs*K$BHkBb zspWJJ+YUzUq_Mq`V!l3L-JL6nCE_ZJf=I|4vBaP#D@2*`7=E-C!xoAq&hRTJVZxD! zIL_OH<4HtQ<@*+tFky*@QKgz3*Zl6CPu#ct&pi!IyLFS@Rd@f`kl(W)Ps%PhU~!Z7 zM@kLGK(&4HXRL^R?iYB z39-oR84c``AR^tn!t6}4zmlYWrDw2g4R7UT*lAqP(O@qAh(t?tZGX8{7kj2D z8P3=v#2kvyi++sPGFBS9`%ESd!%!-RrxIS(HDct5)&QW}O4I~ClIjfvJx ze}-wTw{}s_hsV0&bpN7+Sw|Mc>ue(2GV0y6W&|qwr^OtE^#PfeI4b2bdkUI{`4x4A#=K7XZX=h^a<;i)mSw?Hx=g$GCfRSji&z;Z zVNlL+81g$4*)lt~Hw3X$7N`-68jYT}EMp^#1Vdza^&`&WXh%`}d~l?hL#*fK$NdE4 z9=YC+W>Ma8(X0e`uUIPlVbVZ&hUldy5W()a7h=yBLy~b$RxEx5LleL)aU?ju941zG zhetjTLV_9K#G^aR{KdD&ka-(`3Uy;miex8kKuUfSq>?4oMer%r+SaqLNxxShBgyVq%g5mgzc@tsJsgov@QUJsCBbp!U2}^~E6Wwrh*aeo70d+(L zXg;>muV80Mx7lY!vJsmkvYQ6Kh45*QWX71VzpOhlTBih93f!taZtrV|$@hDEGZ`I? zhQ-tci8>qC9hHn3$Bp~P8V%+?xwxW=pW!e8A75JS4Y3sXGt_LH4!_3DZNB5)TS*Oa z(ZU@iv%Q&z)q&DVrL0`;qFkwVnyckncB?JXSe~}A{SILx$aK-*D-OwEez9Yp;l+IX`)%}nLaLc~%6Zo* zedFZq#^2Ve49L3G)%8h@oVVJw7j5=Fw~jfS>@7|r9Sg-n+N3P)MJK`c1_88MeCB~1 zL@dk_rO%7|>^7yr-x5eu>tJEz#dIdRdUeuJpL9?cD7sC*foG)OH>1a|*=fM64G|N9 z0L##Nn9vnhiw6n3cOPPxPwVWqea2D5<@;N z(U^Po6K{KVga~^3KZbNuOC~fnZ*xW%$)Tq-(qCQlv|Q6MSQ>9X8$t6wl@^LgcOrzwGl*lvN^;7yY%&cSB@lcRs*{b`Z5Ub~62Wv|^&y=l2y@ zc*C;aFFY@)iJtU?t8PktnrM0x2|OL zjp}}6QU6E!!Uk*bi@(7U$kc44FVEeO|Mj#Tc$Ps*w2=G9zRS1#w%d^=;NvtsrAu_d zKbfyglD!;~>1wQq`cr~2+gBjO^<+p`o{w{9|43o|*X%>H4Y>X9uk6F%S6CY5pI(=V zo}H1QqJy2OmGR%smxt1t>>59U=kIxMjAtkkWJRi(Ff!2=6x33Jc~GF}^bLvjO6R2w z_28$=@23SQE4k5|El=Z|#=l%zSV=9W8oUU$@vA;NF|MJ z6IjGYj6Oa#VkiJh8d#(vkP9M7u{6_=Sk2J1Vk(o^h);9BnajALMZokKjGUa@+_Erp zErDkj*dpSh525B&KC5h7-8o(p_JwAjtKUb!lm&05T3~XwbmRIMV4fMmF)dZRG_lp1 zC8bV8FQ!#VtsG5SV@s*0Z|k3a0S;!Lf4cZ_ze-*2WL(zSHl6ODMx*IHzB8PeYcAxb zbJ^FjnSjttW9zzgZ1&Fd^AvO|Xirr|wV|@h>W%34HkY*{*B+6rBljvHJh*7OAGsTPP zx!BDO&2*hM!tE)ralT98#qG17|AyCNa0-oG@{V4uymNeSPAO>Tf<96fwu>HR8Ws7FqOS-z0?us!wCbvU_}n6QV06i!i$@lpQ-Ffn4~!q+ zbPF^tB%$H+QW`WXkXyoEFQw*cncVzDnzWq^+|{2Z^sLr3kZArr5VJh8TA<>UEZr2z z8r-$`aSrEaYzv!mDXF#7XmI~kXGn*RZNskfPs^z4cs7%Kj~nz?KXeU8y{Ts_^#{T& zf`MX&tnXw*foN%ld5;!12A@g{;Oj*m@IQeluyv8e@Yqv&VV{YZ%4wQ=d}g*1s4k`emM9KTtHN_;KC#d`x@e)i+pwng@qw6iPi}?%>;Ya z43Ql6rgCQNojM2SHa#SSM@0rkR&lT85$mN}wbPz;eVS#?HwN_Yfj?Rl1imLiziynI zr=Ru(9X{qApkZK$eB*<0C;yYsRz>igOV@UQjH~w|=^9AtX~cR1Zs<|h?MQp;R$o;* zV>fbHp6b+fi0$DDrUI@R`#dp9db2LF%Fq1-A*xDwEdzjjVF zp4WYg_b?x~d2r@sl$6+9QTo1D%Ud~t=PBWI7y5Q9D}Nx8oRMd;=o+;&utYmFS4B)a z1kwO5%|UGupKSa2F>??p0ry9Z^qs)+t)TLa;G?QuJ_DJeHsIr>T0Ja$H+%HE146N`rmM*E zcI|m1v4bhP2^vakYdhDdwX%OZjTsUInB`vmDVbeaHFQR`#To;QJc7#~=QVBZHm;XH znp^r+ZLKw>fU!VtfOX!Aiz&lE22#y<<`U!Lqi~rLOSIfna zuGI@{+*pn=`=clY-fZi)Mgo@?Qi5z+QEGfaiQQ#-pvH1<&_*7L7vp3Dca9KO_tn&biWO`q=Zlew1D*W)~3&9026>*r8>L&kQXL!Ip9 zqYO7uib!H1&8+61Sw5x2x95ZJGGbm?=RJP*%Zbhz8XwkScNJythT3AX$ob1q@|xdG zv5RHXTzMRi0c9jG48uGH!j+#Qg_A=dkUMg%Z@MekS!_|A0LaJfoxu%wz;BIzGpjh=JNZ3u@)hU*7byS}LBRC#*QIyT|FlsCUpDHi7U%ENKg1X7OMKbx zJi9*xkRRAM7T@*f@o-uwg9Sb!lh9A+7BKFMtu%4;r}px4hr(zh3^_ z&-VySX}0(gMa!>nE6>}gD#((*6LUzdMd&4nt<|^gR|^g0Vl<}LGfhkIdwAMD!=xl; z863zB+z&d@u_=qkh)0`d6lcn0Q>7Wr4ILJl#0SJfnXSDqsSWX#w^uEZGe3i_UqZG# zS9B2(YI8HVj>urGCfF_}$E_5?hUe*A0iJ1f5sZ#$)C^(hn@3`F zk+7}`NLj=pu#@GJGEe9ps{WECv(Gsj|9(43;W9<-`3OvRW+lZ{pIh)&6KS7^#i5nW zkl(f<=5~Ld;SpvFaE%qiuD(z;*{~zG#JSC@c0(Yu@G#Dwr8xHQ-I~*Ft}Qm%n0AQ@ z#Lonh0@ZG6V>&7aL z2-AT`^#V~K=oGKInoY2*2I*bah<%NLCpbaA27Zq8sXorCvmv4Z;ZhQmKDran@<54Tf7zfNDfmKXjOk zaC^D}B>&p7M5HFPGx>>vHN*n{~9A_EH;|Yoe~O=>WMS2wRM1 z0i-sG6t0e!9li*1o8Epn9`>7EmNQg%!+3a0G9M2z@LKLA+gzffE$Ju7EC$;+j?g$3 z==JGiW7#`Mdn6lZ{#5){-h%RXm))VGn_R4z5}zfngp1=xkku8_!YEKO+r^~FC8p;X za1c3_F#@AE>f87Jky>4Z$-HF$Zi%{{W2r6d_K1$uzGT8)NF;uq{nSkI{ls4SaRx@@94 zT{5v;ZUIp%f!)WGG4T|T!Q@;TRm|n1bRQTMT>MIik?0>MH$@5YIb^h*-dL+dIUJ3ebH;eb zf)$kp_S|~We#VB8rTi@L(^VzZ-!yW-6b9&^z2Y|`hnzCnh$Mh}PB~R)tW~znbYWkf zm5}59LjowAfWyku6|UztZ1cD81uLB)RPjlg_dvXRFpujSDbMqc*C+u~>EP0Qr&RRC zOI-vsSJSl2q2gTckI)4+Pp0@~L&n;T8;D<`j|;7eG**mNZR;gITGRWYYux4ZJFCy5 z$#TuZj61WLg+lL-KncP(m*r-C`1yN1M^8Uq-_0%C@$XO9I5(daR+2CJe8o7)bPoD2 z_v%`U+4kUZf8oae{>+iVmF#qC)u8HoY2QD!ms80tu5*tf%l4*!UQ0_^%qgu3i(@ag zv2va$CR5eQE9%n25-mO+8_$G$BMAtitnYy+-OGa8HB91&LLag{IAfDe{T!j4b2)ly z(^fnfOD8Y^#}1r3Y>NEyNJOXi{H4ekAoi@M6R3%tusVg9J#8o%Ak2E);gpYx1rP1X z(o1j1KzwmxwX z)t{l))Viu^oIyu<;N2|sX>DMA{<8P~y%->?-LWw9t1@?$?7w;ff2RumSq)%mz5CUI zL7n8y58`m#sH|AJWL6k|WZBR(>&X@h(&>1XVVN|m<85#l*xqOZ3hn+LMBa1F&FuAy zdoP_|2f{vYJp0!GrCU@B!1v*LJ!OCO)`6jzamJVtCSjh5$=El72UCP5=V!@qTxcpg z7OdE&8(M~p5LVrA0Q8eEiL!JAZ@gL36rz2Kkc zY}@Nd(W~CNXozL|yb#+>gjtF_U(-(N0SydhLR60ct?#VIJgP_JJG^XDLgWYGPx3*f zXZqY2&Gd2R2;Px-N*-C^9kVn|?07WXl3jlmF=mg};ssv@hJ?PuzX&AyY~|E1^mhJS zU?vEfEYR5SeJHMImd#2KNr9=qyIyc%8KfWxjV6|beTzV@Za`y>fXoIW@*SZe;)Ln) zF=A(#D%s%9{yq*eNaf8x5(rs|dnTx8UjPHqmLToCVAT>-x&E_RF(F4Ss5%w$(C#_7 z{>0;5B2k|Z%rVoV7j(j?v{BS$v5~Myz^|KTid;k z!K5`cln|Mza65e)|8h_~&{`F|ov+pT8WP{105P!4*oW6Hqcz1RWH}_oGIk<+#Qt_oGWg{SVD^bqm zJJ?w3W~{1_JHvnon=;u+-iu?lEPzyANifx<@~uV#xK_!&i`0`}4RAvmw*PLNEVa|6nqVbs=Ck>Yk1bYWlnj7TH{ zOqrfW4`dIv*(`T{Gy9idbO1_y&SNRW!CpZwc;4H5tE3(`cgMboW7n$!)q-lmjY6pl zI0(9-%8?e_04V}Nl+B(6zPM!IVupRb4WLA#gu2^ry#1(+KV3z*k#t%VZ}_&|qMSqH zwKZ~AKV`^?44Iq)viZtah(i+UNt&s-Mw1|QjcrPp<(XCbxfhyGo4?BR%yXq@G^XEE zR4gy%OWGGGNp^1gm|4+$DWofJS&HWh-E1zFRcS+O0A=h@8fEH!hP}+gWdSC|VLrS^ zmH2y%ev=Ajy z1>FmlWzQD-S$?D^Z$Y_(zKfeDhAJf~SjG!n7ySx3-X27jDUbL;)R7aVl=<6Hx|xN1 zNut^#o_<}O3O|D{LrJWlLQLgyR*A7pu7mo~Nv^!enCmU4-ix9#sOUMdbuHT>+To=2 zTOnT4IX}lrf{7XPVTGr)^Rk9#zR&9UT<1w{htl4er4PGe?pW8Hi?_XD}zTy+8{|LVQ2e7fWu(q@R zTb~ug3t06sAc*`%dIs1c5mXZO7M+HHkz>eM=#M-QtQFe0XZ$b`B1G!>{(9Q=>`g*H zqbi=ZPKMJU{!Mi4Y1@1;sJfivaTywfmlYbhwudc$840c9oK99_vfRnBY@Zj>f#vhOo3C`5DWbzm-k zQ6Wp-)^ko?E}}~mFDhFOqbp_GwQbAm0s18LVQIMUAv(=rf9tY=>t8nC9qWs(41F1f zfPW1H|1Oh0)7Y@yV?*-h+x~#aoNn^h_w>d%MX7103mdxtPp^l66qTy4gdsKi!h%gl zpI&|NoQ>v%D;6*gml+UZM8U*%zc_Bw3Aa4DN<;5`Fn^mc*L1)vHQFdn*P5vyzZSQ( z#IK^Emrx?+!euRMj-OxBe||Kv4>YS0lUZph>B6M2cxXwVH6Wb3uYt-}k*^?uxJQrX(*i z)g5^|S7~KfZ!W2IkieP~#q-jNp@ZnF4pL#a3YpRntNKn9x)ieETnRE~sTUg_rlen< zWU12$wE3Lo$6XQqq^Qa`PVTf5C`Sa@r3A2Ik`(Klp{7}c8Pc+VT7e5NwfPO#nKN-H0dE|#GCY|SHQ~E6hBrgLv~=Aa-mmS=tj57S1*q8WAz^_ zxAH8DQ@jX3Q1_s`)Q^3be#X-MMF)XwlX1$@QCE==x7b&NucY;Hcx17OxN28^p;b6B z`ttF!(|zzC1$GF}TS&DBEq+@u{Ft?(n*PQCsVflV*KEfaQ+!1wO7mDOIA!4?jh4CjZ;R1z{A8f+8;GyhnEb zfEg~4XimYTVBZO@JF*0=U29iR%bxHY{Y)t`p}j$N3XKeRo!vyQnX(Wj2K#1s&?%_E zkp`~xk*);!PPTKLp$9mpJ7l~Ud{7l@(f37S$a(qM!2vJd~Ar}R=7mSg4 ziRN^j&h0xdQd5r$f5qZ=czI6!hL-+gs-B*W$g!ut?r<;Go**|icDk~_*V*-I42R!;8cC|bLPO72{m6uX^?XcEW2cg- zEsH-0cm)|2@hOM^hX@i@fJGPq%g-f*pNfBy5R)hbPJl}|1_PM1zu2fZEjyr8C*f?T zMs>(ZoK~?k={UOrjl3hImjN!n8$OQU3d#9LSVx|&I8K}C8Ms$Uq3@}YzumbqgwPj| z%Oeoq7>4m@!Jc>eEsX)pOAtZCC#xMQyDk88vOpdDq@H2u1-vBz#08rs{o96<1WZz` z9UUST-Oyji4cVp^W@)OO#D0#%*V=U@r{68#hcGK0%opDkF{UlooutNiynr44JRZ(% zK@--R1U4q=t6p#j(DWWBg?Q+CBwY7YiQKAwA-x6OdCPWf?3Dy6A9L7sVT7iWp&H;G z!-eN8b6?uWm)3j>VYGci?JUYZ}c$_Ma-8m`R=+cvhy3-pp=vPaqG9BKIXai z*eTc!6;tK$9_vp5!#8x^Ua4u2*8>D00nMm>cO`6kOMUp@2hDNWMi7U1-#vDZq78k4 ztMkbnY88gQjrr*!oqC8hvM?V0J`HLy9{Gfz_oKaG7{miffnGf;2GAe(l9K+l&_!i8 zLOffoW}CT@h=+K3rPbX%Y10QmXSb8gV5GPJ^g!A|G*xRz z3Q@nnD8bc%K9W}k&0{*9v5t%Bg95kqMhr#o(lX9IIndp=78Y?W%l)$L z8B>qo4PTANfVV5g@L$zG%Iz2cF1H$Lt<4m^H~nnlm}SKE{s4Pz)<=wt;!!yg5{M}W zRn$kOzF8{`Wep`Ka9Pi0#cl$~sP8(P{8#Py!6U;0Pyz=EUzPld+%4X#@#NkGl(jwM%yR1fm zT?s)Zbn|SG-g1?ldD}6{JZzRgUUJ@fT6fJ5-AT7%k9j#!0zg)_1td_Z%6`0NjM$a6 z{{Rg1cH|LEUs_S$g}Gi3nAdQ*wm)?Jpyi%q)Uh)c%%(_-I}Qgy$6zSOvJD4YS5+&m zJ;fsCpv~+HrT$e0Je`LcG}>Ke)=c%GO%iK4BJ~|T)Uv1Y+r7>vzC5m5vj>btiGVoW zi_s7a?_$GCZTHNOJMxd@V!F?-p3DEwxbL5a|KGUp-?;DJxbNS%@Bez-_qRU#ACLRK z+5-P3LV&ffQn001@7FmHNawJ!iD8*z1e007D1 zuLEfF7rx7vAu5y*7Ep5edG-$DfOF`1==t&D_ln!@OGF8UKv}0Z%jQyWs}XklOUC#i z6Cia?{gOC^O|V}9M}FwIPhtSFpP^Q7KbXr}N5YWG5yz9BGV+a+|DoZhJoXJ>(nA0F zj4akJ$^%lYU?u@FSK`_W2ngX(%Gpx+evTi+BnA*_{`g3Y+ICucaw51ew;}ibdi=Rp zWARn2^ACcVG`ISzXX-EN1}295>+fj(qHZF>|J&vjYL#Wz3FS3?3l3$1_w;O3ye#m#u80ADrH{Wz zB`->JA-hDS&sRZl+s3W!JJ6HQ|Kjew-d#mHefZPSp-pn+0XCs@phx|-0fo?3rI$e{aIgZZ zSC*VBY#5jYKK}C4`=@U5ODfXW|7I9AcgCHGoI!6+nDJEO=Qrw`+Rl$Rq2|`$skECu$!VHF%OeGQ-mDnQU*GcjMfJ9=MzAlIValeR`hP zi%O{A-p4)p$Sj4x-_}xLSx+mMWm%i`JI+?MOPMViOvUsMNqy+PoR*WAN=9n00aV=a znb;!C^^Yv}_w4lXeV+R5j$eqDSSRhe1nSJ78z2RCeyg6AZ=w3nl{VismMpiSy8^{p;S#FDf_a1WW0m_H2qCvo z(b8J`<lALbT zp}`)ptnJVWpBdzm%QZ_pJ_qb#j~u9~_xb!q@pYt@O@fCadEPi~YS8qxxL3}rJdE?O zkU4e0x5`FlFs-;gt+de4zB%1zYx}z5a+R$wR(c-@04;~;-bCSs9hvOu^9*@tNd{?< zevMvmX{d0xDs71~892-og+$VDfv80Sc}aB@qKU20uNahj*{3`<%ToN69lI{lRC=M>sC-8TxkVZR%p|!Ee zN(%|1Q@vWqe%hGO&&rsr{N#!~;47u_y7B;z+keW1IPj@IzPATG^;|j|D6VJCxP$X= zF^-`+QH_`i*fo#n^yZ(gqxtBJP=yf#wP*COa@)M8N!ap)owO&39LFI>O|FU473mry zDygT6HyAW^5;*Wkf6qddR)QyjFmLqvSY{R&Ol4fH=Nfo5i&D&G%=%3f~$10VHC0T^woK@K{ ztT)(mY&IX(+Y*rAF&J_2*Ea1E3-V$;mpSHM=i0({uBnox`X2ObO%Br3FzDxH&oFXf zoiYtO2Q>#>81)_PV#Kk??@hLc487+=&M*4r@zDszs=7_ zcZ04fMt<3c)|(1e+X^!c5Nm1-97bn3r}8&8+B86mrm$*dVW$13c~Za0P zPKW$l(XKaT*=UEEROP1{by!rjugVJ1!8~Q7B6z@%FKexNgg5JuK4N=Z3jVGM16{GM z3wS(66qL()e&*tOsu%zE((;h>ujCBVCzX=PZRIA+1*W#kLm-PO(RuPE?!v9+V8j-I z|L@NExkTv4(e}x$FFg+vENN; z);x>L$$v8M)ZPJqpD-TmX|C65&G20A+bWw~XV(5$j}6QlN{lGJByCB^BeN!hO-y&Z z5~h#mM-OVfYX$R)?QgGmh%0r88kk#fdU$`$wntOq%*L2k8}ad!6~E_^GyhiiC*|kXEJSbx(ZH^g7Wu8hoqI!9aiz@ru_{kv}5Dg-wN>BECPXdbO98 z+cs|HtQ?BqPWO9}shsbUu!lJjnnnIYLLH3I=lO@!ITVT%v99E06&%wsf`?ChXL9t? zJ15>h!YljdBZ$MlCuhsw|7uVn-OR#6C;RjdAaZk{Qu(sJBq2iPmE?s7E+UK@y!K!g z%~ZRuuFXJuUF&lAwO&T9D)-MV^nS=<#W&S8V>rWI(^H%DapzlL>>iLTJ`t;4BzN$# zb|G1bE;87K%JyQkt266@8XLE-?maZo&-`d68r^mJ+k+#c`9B*662}$>B_c>JJ4>=2dyuW zE+?`mV-*{KqVzYd=#WsOF<~#X#;s)-<+#h4X z@?(RQs*SNyV-x)~`N-ef7}Bx;uE(j$gxMz~J--B=E0=Gt;QpLzt_mFWUuyR-i79v5 zoWQ@5BH^tnb$cMygV#kH#RbANbHEmbbBogN#O%by!1q0=GqyFbOChTJbku};K7&?)AJOAIVl)%5;_>k_!LYx|B|QfI=QoIUcu^E zsAcV(zGnM9*oMqcb;pU6FVXq{oq5hXx$^fdyse$rnazDR73~3oZynH6zt2LUkm2Ay zB`sUeN%-KV_meA|DRe<}%g<4pc;xUFuVTMWwj%3^^fv zc5g0!n6^lVQ?$RO{}*Kihy zD@O{^Ah}r2uAB8vjpFn4J7r*wzo&Ta%tiv(d&zxjxsz5^b}TluJv1NY zW2hGM-_pK-*tYuoaju=N6uQG%7az>FRzuZij}tAZOnd(wrUh{)2*b7Wuc&u^x>Oh( zK;1m|WT&!u>!M;m$G_H@lW6BO;!A@Jc(t9r78qVOl!ha`R(XuKudpbHPKztt7&wdln zUbp}))c(xEwNLhVio4Cj3zGVxuJuxKRhK_wH5;yfWA($5s{=j7l0zxgbrr8R$`nDM zW>|1xa-o&v}$b|8`ZzpK+=LS+PPx! z(jMjp@;fjH=?Te~2CK$bkSn8c0WYL{w6QEwO=t@Y@i?FI1)m+%%13X69CHa37g2n_ z`RlJnQ_nzigZEOAJbgCY0d}C;@9-Blu}9D1Hg^xL{hxoYIroNGAr8~(k7Q*_p~>go7Ek7FK9KJ`Fy%&)jp)oi6}RkL%NnCJ!ROcA zyn;Lal&Mc9zKK*?y`)F02O+FH#B(-aV(M<~YeiNaVIFSL*%Y`KUna3J`}v=B`BvDi z>e1PN_UzKsn&3ZFaWwJo%eL=J7Thymy@FH#75a zYOKyr0ThE8gd$GKqHsl5H{7;>{pRevEK4ol9#gO^xk|a*c9-5aK(B+)BaKdl*L~IN!lh{QS;g8Ip zAE}=q zyneIjn0Pb)8tJ-kN25B1eV**yI8u2>tfC_Amr75`H4O_}q_BS{?<(adyjRqD|Ob`C_w!Vs5DGO_P*rfq|R z+0g+CizALKS{@PNm&~&ekz&-nf`li-<~^&>i;wEBqV860J#o-#_dKCTgi$iHJve%9 z3yE$46RT(81`ivYCp@($JHwF3#c(^)5Aw{Wj^|`ncF>oJH)+csUY$U=qpX;PN#f80E_X^#31Lx^WbZb?ntne#HQ@X1$Ti{drJ zHO)xAV1b>~g$LZ_u)O(D{M~C_JO+{ACZ7CtlB~{T&SLOiF$Ithi|a#^7v4uzIH#}5 za%qgU0+{-E1>Gxts!a*G{kwIVU}jJDT>r72?}O9$4V`?mg`S)5{;HV@UB6M4*z7&1 zZWSHri&f68RS0RnNAM_dFmDSGf3+XS$#Q6K`?^hIDQF2a zBjIQepC^Oymjn;1R3R`-`uOBH5c6Bt;Ooy4^|x;mqUX;*?sVk;+4DG5r+R;{l+aJvE>El0Zew^3bk$RokLaT#Y z4vq3UG)JzVgJE-KtEfq>V%%T@vwE5mINte&aeKW4<;}F zkCB85b!g1Rk-50&dfCk^b-mfuvS&pGK_8vi{*jxqV1_$4zE5$91L@CAbkQ6u$KcI< z4K@CLk_;Q4Y{cKG6UK7DV9i#G*?@pA`{#nT@p1}p}^HhC9MzRzeOW1Bj&bj34!IN)m2R7t$A)=cI zVVLCoB9wr~s6s0(QppKP9tra8YxOKRaD)$y<9#W*{j4J3^XYV#(1TWyj<|`x+B4!H zYgLHLb`3r*+4glMA{_#jBy;Kv`|F)eAEuDC^W!e_%(~lW%(StUS==1e_r%%T+)nj6 zY@ge+_2w&AO;)rXq7OICKe3#v$I3s(ZX-yyodR>5J` zpObQl+KOcbEbSFg|LOiCXzg*w6T_;VB2#6t^`Pidc1KXU8C)}ySX22RKT8}U26$p+ zxy?H`2U4Og=7FvEliTk>2O{D+Vp>uEH;*>qhk-Z?4+)BZ>%Y!MNL zNKIV`{uUk8$(Wlk5m7dfOOBi4*zkcqO=oVIkeFFs-%r;l4MTOIz4xBEzygL@Bh>nr z(oyQsU3`^culh=74^@?}Wi1>imCtkd73NUlY^5$(RI&cVf2v2y*mEe|t5v4x=bO0s z+YwE$Yc*`en)7EawRQ2AMs2z;uTzRRL$4|zJ|o2P&HXcey-Vwo1hnKB=isLVos(k6 z+}1e>)}_;s$OlG5kjGj^Wq7JQce7Axw&2UW`m4I^#g^7Wq0@{AgjCAPvGcfn7!lEx zzqRi8*$AS)e5UOCh zdSe;JLO-1GYduY*z_$Uu?cPchmkwbWptxK84w zxsX13u&5??hUS(c!n5|JWZH)B1;uo_X${T|PN1u+j(N-m$SHv~hot)@wyhp(m23v8 zK3hpK+rHRB@9OQx6Uto1L}vOCa-$lIW9!^eo=9IH$Q;$laj(3#o&nR$wnw+u@s5%- z@NYoAw~J9wc1v_*k;54lE*g(_WVTOM3{)nvAP%37&oxWj0&hHymBEJEU0a6uE>It0 zQg7p36wS6#P+gJ{KT+^H`Icj=mq*}gEaM5+Ax&i~DU4xXrrKuuAr82CZL* zrqJKzgyij^_Fd1xz)$)AX-&<%c6I5B^{;Ne&Ba(rdl(UdWGWJ169K=+y}-QS2A>Xd zxit~^s-7mi8mycbVSf$qd!T=7ZM%_u;9LU~`Js)&-D1bWc0(XSWqyNvMvQ@#joqYb zENSFG@v2~4$bfhKR?)p)_C39saCXif*s9!fnW$Ao#F5cN;!SSEE2>+>QVQzS@UstN za+$5GCgkp`Z7!XorHO3xuWd4l7uR03GhU=j>#|cg(@WJ1dN8xRL{Z0ah0kr(52h8yld<(jpX_mQz{ z_mS|d_L}R~1BZ@<6L#X@+H+JJhC>-4M z)4y0R;Fw(LnZ_yxia*^an*mvg8a_~M4TO86=~}7{x;HxU{N8R3Z-1Oni$5cFyAuFw z#9zSKX3zD%S5NQ`&AV0HZXK7~`)I5{TPXLDo&T~Lg+9!Pk52M_%_`tqGI^e1wW6KY zZB=hP$!(Snx3f(u>*qv#AbXYa621D5!)>b)^~7LPay>4&js*#m;r4uiF1D{z9mgkd zqtLgL_q$yTf>Xt{RL(`{QOMRJjH$W)x*e7>{L}zRTa^=It+0$*l*^5=Ye?d4xPvw9|0Je< z4p@*vp&J_+@^Wf%q=}~@=JA#UlONVo4)aPD6HkTw{#&>wsBJ3pDnE=hs4Eev^u#a>r#D3T;@e}mH7syWx!<& z*}tYROta?<#)I2*i)MC?VrklL7)tCsywY|BD4#VO`q=%iHTHl ztx}bK=(r=~ISw(_YV8h~H?aEKls{6RVL$n^Mu^&&Tq5(Z)m`_a6Xr| zpL3fuzM5gg91phI$L9ZC#0sg*n(!i!gdCZ3Fw1@wqkPx|uX6e~{?u%1;GjBueq3vr zm2rZ1W7Bu0YNxREepc)r+JtQhvN2Rq1%aT3lCNHC9d#cgn)T&x$hY>w^YhlpfOmg| z1vC-_$X>H?48K{P3v)`_1i9*6IGjBD2hr-ov@A2=Mj6L((&|P>-AuS)mH1X(z#D$_ znlgQGCah&6FaMGv3UaWQYu~Y=j=V8i@4CVv5`GPrsJ6H)7mT+@M&!eyJlp!9Kq~et%fiVoYm7@Gu&}zK zn|=3~-mQb9;bWODvSr4RJAM8^up#_)K4yyW2?jeKjzk~ za>9>sH|q3L1AHv;h=q>8t8Z92ualB*Ff<)Bd(~J()+FmUW6Y`PPp(QBo|nYvt`PCr zG7ojS;a4#u{r2Z+G~0iL7otF$H2{%50sTlZd=b-@?LXwUELeBS=F z;=Kd|kwnl&bb7EWh6@66q6hhnW2lJM=+Ih6Qz-FwdmGwWLfNeuZdr@=?nplsb% zHcin_JXzet_reG*n5}lL&a0~mEWRcCGNyx$T#Nv&wp>k_fK;)OOB~#tex<))Z7A}y z`$8=h^>+SKDy)X-FAp$RKX>%?e;qmmLgyan0j|BTzLUYz4ODz^L$9V*l#kW!eO>U*-LnPh;}#twTHiOS3Wsjdz-sT z?kD)MBeW=Qn82mtnMWzJGl34;d?)l?w>p+D-7abS7D>m5Q0HNTku(v!9{cM~F5%>x z$~mu5A()w`4CeuY>9ExjOR(wwon$v$<`dTb>FsyTtPS->TSq>YRvYJq8bviM|7gXM z)hfT4L}=SB+46R*lP{smG##I27iuNn;^LB|E!Man7ts~HwV{Zn2VV-XpIUBr8?L>i zB7TQ8Ijd#+QB{cL<}xbqM4UVBS%@K&^vujdw_osOkk=cNp`TD%0}2rAG(Ol*b3PX~ zqX=!kjDF~{-t3wC>LoRpUaszs9m6^ale^N?{EVxs5C%OAf3k>XTqvR(!X`{eaidH| z2=5_x2a5T@qB4Ut&vN@Fc*2Dp&wSuuKChz zx}lb!%;h9@*gV23O1C7h;==xRRvsiL13)Tq2qRk&<6_e(KRBEy`l5+w{e}JJE<|=4 zLLbih-ZE?Ul%mh(?ZH!SF|TY#Jcv&+#xttTBC6%N*KDi0N5qIH~)AAD{)00q_#)-4?lupt45$O8w z)zZw3oVkW%`M#ZX;yZt>`JOU{OP+(!W%fPR^%_=Q=k|F|rwmozYyv7^M%F?|0#!p7j7{8(ym6+h_RKHc!1J6CV~vGeQ}G$o)wQmJ@q zz@N7+az_|YEmtN*7eO*b|ev%?V|m975%w)%NhKaQ}-NjwK>3zuK0~qNhrGEPdI^ z6ZL8(9p0lzEH;Z>IwEwcGJ-nuhLQiPL18j@PGg6SmYOu6VcnPChLwjoL!8Ag0cnyf z!lNE74L0n0BM8*}DXQ<%Q3W;NNJ+}8L}ik|16z}*ys`YSr}>|ckZ$uo!id5*Y3()= z{Y=BXcRXn<=W)p6Dfx!FN_D4coeHu|^v#xv#e818Hrt=YbR*BtR6X4rPrB*Wuk_>h zq(|jhq|1C_gQIrjO+mY=YT?_+Ev*((^l$ptyRG=VTgEcwKLVwE%r%W1y&Gq4;2NJi zr*&S`5dSQ04^__LMa^jujRt$fUWRFGcJvKL=Rr?SC=oY764K$haH^0R$dMAAj54!E zclrduZyoOWz9<~w?3F?OU^yse#X1?e-D0Fi&}|QDw0b2zT~Y_KX$0zhhAMZeE%-jl z)6I!)&nKm=IO4XYWy_{u{JXW|pqMiig%-1S%UE>~=r04aaFCtkQ5UtM_s8z| zY<;G_P~K}ddK+GAoL3M;$kA=Q{0575({7X0v@iRy@nCBvkismK1S(1-_x@9Kl~Q#0 z%f3%WQ*g6aJGBm*Q|u6Gg7m&>R2sd^LeKnuV!oU$A(%DiE;|0s~2uA*ZYj5?XlBq99~2m3q;Xv zi^I0R5}BQHFbl;)IUyJBmnh3UupP|1T~||G%(fuG7agk44JojKHf`GwQaHI1}g0Ktzg zV&(+>Xv!yK;-n7#xal8N_QJktSu?v_PDpr&b({KHM9RydxbXraei9R-()V5!EQRvq zo%1ETAU6{Pt=_8f*YqPxJ*s7opj*X{bXr6AL#WpxgQm8P`0Kl~1-%aE@paKHFgM^OzT+{r zgT@{cXDq9GD>c>kc}!TKbYh3L4#K8xn&R$>stetxy^g>0;Ugo|eXOQCS~=Ugg`6P4tXXS?1 z%Oe4M7{mRgn*w_jqojs&(pq9Uhs#zS{hu;DQDrU*Cj3A4t;$ft@;6pxkcpD_|HvFO z9zBwq-KwL(?w+%#j;WyT0~N~gq3ck;iCvs>y`bNqaz*U}-^ zzRP=827_-{VQv_NilWq<(HVDD+Y%cYR)c?HGMV09UWRUNZgc&>nT4yECD9i@Uz2*zrgB1_N$2V= zG!oF$X^PiC=HxHq%@G-R0{Uu(*6&!4)_Qwzfbd%{;leUq_JWWaLGEVCW#rSrXZ6x5 z##Ld;JKXwDWjRvOF1_D$Dn8{ldA~st6z7j2L>tDssaY51VLBBc<9y&w@wE(_q zeV~E9zJih(((t0+aJ7qx^St`Ccl(#*(1eaD9tF zg)hz;`cX5x(ql77qVEk`7}HT-_PIhED0{s+Si`Gvq1U6jtS-Q>Wc6F0_3%d4g?=t(3Bi%uJ*;7yL=?a(4zjcU;TZH=!IbG7cVAb5L`UBrx7Z{xW z_U%*#&?D`NTF`SZcX3sGcC9B~BueF>$22WdtolR1!@N@mM#;BIUbS6t-HY-N%=B1- z;@3A%@wJ%`AM0%_K!9Ae!uWvv3L1>;MG&P8q1i#$>Cl{jG~g-d3b1tMpnd{3h=h1)cdH%rRKtP ztMDij-{H!^I3{KMv(vNY=7M2uO(Z+A$1nGbrw{WGIH&i)PS5Z-$&C8W{?`;k4VjV57Q zfA>mfz-a<&vx1kvpoyuXfmJ~*Wc{?M@VT>t9L79h)uJRWF0M!TQ_pT&)?wD5OT|2&r$dDbtzc^ZEjW^#vu8dx@H6jeIc2JA|nGz(OD53GL51}5m zF1L)W62Sy~&vCpuIfk3XFt> zOe?FsD;7Cm&LQ||+TwOkH193xLi9j-4teh1s&*Y80C6h1dE>^1UmX6B#eqxG7w|Mr z-qFwO#a!1m%#*^c*h@?FMZ#$C{J7lZ7}e$hlrnsxaKKzml1XV9yl}=pGtelDz1~=t z=#n)C{r5*D&b$>6yEnC#F53cOAO~`zmR0rEHU@f5z2vsi%8Z*MIFV7^9tQ(WC4;{o zf$u!CFKnIwD{2OA@iO-~oXy<5hX61UfTch?z~R{I&YN~_Gc#**l}{OkZkK(dtc9D< zH6Nq>C)(^ql>BZOr}T&gxDJOiL|xNCyOtk#H>9ZWGYZ1%;)AVxK6Dg1_*-t`HfUQ* zV>?9IrA-@-sC>{|zz=-CB`RwC>H&{B`}{En6$%Lb5AESQE|ahO9(WV-x4AYDZ7XBY zf4e%N8(ywvwlZ?$ybCteY5O^IZLSLAdkY+KJ@*{P+gF_U^Y7B=(TPeZo1S$^=TQ#2 zqtug`m&Eg?r0KK?#00k6m3m@-?H`{UTyds#p!3$h`Z(Am_@xbor@0Cxe zCo^59${!Z+j(0%Odm`!>={9Zm$YgRrf_O*jztRR06a;=Z{C(8}0s(DXz?lqAFp(Ba zkkT~nC@>Wk7PDB{I&^&Gzh;@M63>G44b1lTIxNcG$tmpcC%IHZJcM)l>AqEOZ*Syj^sZyB zBclRsAR<7ZI#No0nVg?X;2Z#_C59;2J-zPIT%e8#{O)r9HYhqPoaQE;ffFrPJQbe_ zbnpB#7yuW_{^-q7hIHqRi>;g;MV>b9n|Z5@y*u;vuj?UEkB|PRL3@ONBl;6Kx0ayU zge?wbwzubIv7M50l?F#dK}F&B-28v7AvfSadg}b~6DL|YXkK&Yn#X*O zJ|(`tM@LIjvi!-*Z$07YtX;ZQr|f1tAaU1a9^C_OEkf>>O;naO_ipZN3155%5WrOW z-z~-*l02O34xtQRW3oaF_N|B|OLrRm{(db3mp>Kl4fOih+$<5=I@UYT9GM>BqcFPD zeorwJ+T(`I9z>21)ZFc(syILUgVM$QbM5F_m4FMsN`d|$jQruG-O>~7?5X{z+l>_5 zJ`{%ES4UQSE9AJey_a>5j#@KiM6{i4)ovLD=Fx{inihdzF4iTc2MC7`V_}%FOF3A_|7fU+X8%8} zI;PNqZYq%HMC+=Bd)4ALlN@M@$%J9G2KCPyO-weOKa+cNk7C=IW91|gw825G|8ZcI zr6RXzPPr#T-E3*3*@s}_2lO0+>|g-F>>psG@7%fbV(oYN%}aLI0O2v}?hC`-1=#Gn zT)5H|L}|8(=!^+z$^E_7r^iQgYF`WzEALAP)`#s6HQmpXbwOo}J@0pBe3m~-M`uwh zb`?YUZGh!|$Gv(5p^bq#K|~`htaPW(^mpk-{7g!~c#}7920E4`;v>uMZ{|sOb2UyE@iJ8IZdmKqI7U%NtBkqpY5Tar5ux zfDfR${{TD@Y2b#e?^mkjZ;Z;ruA3>BjrJ-BmhnFMWsMiMPe=iNfm9?;UE2G(8q20I z+bktvw?z&ut{Z-}4Dfr&6xvg$r5hwTh{GL_hs-W1S^-@6&SLS|L2y3W7Cf#~z8f`C z--vrbvV+a;lU1BjB}7f{Gba<>)A)h#q4(%HRgM0-iF@}1G!}jrNS)dJn1_uvuwqNI zPs90ER{#%7`m@j6_v@By@^vPgodf8iYMCZ!7obpF+SV;9dHp5O*!B7BUk!ferJ{Bn z*1SZ%a<$&P%MDatn{<03qrz!P1AHy(w7kV0FnYods53uv%?jG9&h?!9cQ@ZZxvAb0 zes<}}e4i)`a7+euzaf2_kcVwlG;`-BOMbxdq5e&no~88E1j^CE@pr1 z*?61^F5T{cwuCL`?Fx4IT{Gth%iXv^;@(dIG2>|#jnon~n=mk}=}lDY;NDYu3&o^O zHPrJ2%yUka?_UR6*UAmqv?Jn{Gkv!R`DmN&bCI9b1DJ`KP*4olKHtE>4rF&7V5EzE zdEDajfP1K>IrTQAyylNYh|}<(xpoEMlUgOr{uh9OTsi%h&c3G8$*sboXET&#C(|TG zRrb-4?(>UXy^ctLL3T&X3keNDGT=7O;-xPNMb&oq5Zfoj`1tvA{?}v(Sn>klKmYs* zxKrtk9&{mPb>mLA{|=6?pj4c5D6&Q-ANb5456%0~El+kfUx;&5{3%<;dM z9;>f;oO)?~R;+4kl+!W@A?{vJzB|eQr%ce4NDkoSg4%FyMk%Lm1&!}<_&QbnpH2l? z0_Naqg5kyKgOAelfCpsS&Z@43!|BtaLq^se z)T+m0*;7Z*SnMPKX2lE%0OXfx5M2y8M8TAsDb|C_w!93B4~-EbE=tgR-$EMAis$|S zX4koO{&4aEWgvoGt+^R7aO6wL)hhFjbrT?H%>qalV@W_X3`NJJ0B9Y^@)&R!DkbbX zeE#KRZE~8#rDAs!TMV$xAWPeSS{zqg?G?@>=7jF*0YgoI$$o8aa%b;#D+C*Yfub3{ z6UQ@EfgQhNDd<`CKk&N$>p}aE>9sGr^eTG}&|>`4rw>=*alm%gknSTw&`3bWxF(s(RgAlRgxL>=L z;n&@CC+9o(T?FrblrF~PCvHiqTK>kZik7QW>U-JKb zo=R{I+Y6F73#N^iJ}+00Kjhj_Af+KVw6aqDd*4K<+n=4N(BaSpWL{5=+48tbpF#iJL^@{b$FHfOc`%tA9$({>=qKrTPZ* zzh}(bb?@ktb}U^ccJ{$s=NPrc9iJC?1CyG?$SMuw`huU)k;(RgL<-U8YaHM1ZvzOB z#2FRc@PnQQQm*FesvP;UPiIY1luyt^#;^lJDxX=tE?0f&$6|Akq=Y#+U< z%k+?AA&MIvo0f{#5^%y#%hA?v6LdHFwPLqtgVsBg%h}i+>_XN~jlQ;* zOQ8#A=^<}%hgH62sQ~U^6d&J}i``Kq0|@Gk)T~6y8;7+gN-FmRYX_MwW5V>7U$w5A zYi~Y_4z-fbO6Z!hK33}ta4#?wWI&KaG?x@3Nh{59pE3s?{ z?)X4_Zl`_g9Y`?)aQ(re0@WutD> z(cG02RqrtX5M=XimeCy4MF^7-LZ;tSxnl+P3WrE5*@vj%rOo}E^65Mwt5DTZbq zkdOTGYN#nVNF&hFIeTn%>uA&NA2Nf zn|C(x23WKNPk!YWPFg1IRhSF(3Cp86VS5jR&f6thKOQT8kzdE{)e0pEjQPAmE zxa)UX?Oj!~sFJVhYP72O^%>O^qXjIndh_Jjug~KTOd&q_%0yCavB*Fh{kl)dc|1oR zW@je<_X)hicI#%c3+L{S6Fo~qui{&Po!R6L?4#B84VMiaNr9v72_@Oq-WlG$2!|v? z<|N{*88$FGOVhNryovTLSF30iT!SUqt80@hTxv6p{WbczR#|<6WQl% zz9xBqvv561hkX~Ka_ZgQ@Aa5yQ2cN-SO_={L;YPH5oK1bcq?GeG9@(wxhAW&(XLJ4 zhp*oedeBi*n*~Oz;p4u}vP1 za!|9FJvd&dN-_qADYXQ2ci2g2Ykk^vbBnG6@^atXd$IP5^q7E{yxrWfto8LY)2@A> zPe%ohsRrFoUigwX^ zI;ffndIc)$ozLanqVS{CNwlS>4zX!seQCFZcP|Q7Gj#gTntDZnGCwK}YgYw8tptBX zz1?}<0m0aT^zfH5-4c)(BkoLOUTlv z$XlYM$uibHvm5P}rX{GEpsrmWy#z#G54tR4PFBHi5sm;o3uLwC&owYiOrO2uaa z-$@~U`JzOy!S|8_CyEq(hci!Iy##bkgDjs79^1B={3~l;4B^_>(6p3dl7JulW*69ycCCqZBK0exz|!D%^D%D`P6+oRu2)tVSnHKF2BWxNSN@f?z}d5D z#Q6)Le^H#6G=r03uM4U_=*)b5aZ0=1(6sQy4}1w5Xz1G=K%MpLFZbY6t16lWhX9A- z-iX$+UhMx)0R$Y^X|ZGj&Vkrdx*KT%XT?&^#Ftk8)Y|#)?F8T;^y-jJhBJ3~MMd`% zFYsipTzyCEChdlxz|cuM{u)_YYUrGA`*upp>Uoh+yjN7Ixi9hb|6Fp3hCcwuTITxo zP^kU|MHQE(jlls!JwV73hET%h&BEr&sPUPngNGtRm1G`gpuS$m%!{yd+_{eA>7V^; z3vKFz5y$v>Klw(#wVM|F%{`;ZyB0u-brP7}E`8Ujt#E9$0rpen)_;_O^*hHgpH~(iHJQlI5w_PECN2`~PKvd+8 zYuJBf15<+^KfXUx_|*XuP$3O)i>w8+49LiF(mb#2F8UT?*DlYq442sqLZO^iK5wenU{L>$#DqF5#=MANSAv<~pr==PKQNbZ zZvzFW?LCTES26iZvAa=mwc0K%gAaO{;{UdOTus~!(iY>o;x@sx58HR=ln!)xeNS3I zJIk2~%`RXF{U5g8Ixea;>;eUgqlkfk2apg2q>*k!MM^?CB$RHXJH-HD=q{xh8mSou z5S1E2x=V7Xp@$*wyV3J~_q)Hl|2xNF@7eFX`-%0ewRTF{{w`}MaZNm}1&mWvL;Pkd zGuIg)zza4WDYb&Y1F_+I(hNBl+J2OG+u9k_g9lO(w6@xbIbei7JT@UatRRtPq_<;$ z*}H-nr|d)e6f`P%1=)V9pREq7}TM4EAZrD zuFHkcgo>-95TaUmjTVg$V=jH_J3`xEBd9nDA$f2eXk$(cef2qXou8Xa0HEM!71^IZ zf3iM!z|9Ea?ZOUENtBX~)u?euRO1L7wSIx#1+{@``Jb=_TH~nEI?Thc>pSgKGy;s; z1DB8*b!Hrde``-83g{Cn`*~{Tzu()UkT8=kr3xnUB*Qeo!7Snd2S;bjYsSwYJ{uLx zt)8`&h0f4ljFo#tgSiVi<(&C{w6HW*wt@X${)IqkMaCA) z&y%<5RsGdt+srZaFFvsi3OlyIXuA5sLUrR~H*!i7qoUX*$`AbB*to$${ah02*7G2h z#2Ek{j@Y4I=N+(^pelXa67oV@d+A!g2v|af@5ec0XeLrk0JA$fI_}Kff+asbTXq71 zZ7Fd65MCAQw&pM@Z0+aPR)3bCQ56h!1QPee^~b6tOabcssNB&rIiAi|J*;Im=ZZ5x zgUvp}UE0e5cSDUcI6O|-!=}^He8Q1G%}(88^`R&=c~Uuvm&f}N|IW2FiL#EgB|LD% z^1lyOhpj88g|-i|yTU)|qaPV5rFNwSV2B5YhXWH6MPt?WD`4Juu)k%hU*{~Bnwomh znkFJ~VDZ{{k>ILdx|-vk-35g~l}w8Vm~x)=FLK6{Gedw+mq$EN+*77iVA50WS9#ZNb zhuqj#>NK*mSJk1>J=7w+g9z25!px0PkioTJO>@T0Ewk$*TOAlbNqt0SuP_ zQcMU&F%~fU5wXO3z96MB!2$vZ^^v~%bOtpUp|`n~?YhOobPe!ZL#&-7RrVh)jiwrT z>gI?|2CpXC8O|N_&3CrOf#KHReqQ;YZBLbc1B2hB?k-6frne=2_v8@E=6-TsFt)R` z^@9g!p&Oe3T#mk``8=oOAsSrX-vm@>Y-!Q=e9>_nR1I!=k>Ejg-lYNsW>~V|1Rpn@ z-%;7Y`)667ytB#07xq+fX1Cju;}|{S7UnTohm;Lo8ag^UtYZkp`cLfDi*?%av{{yJ`tNa$D-7c|dJ@U$UAADM!P5*ZrB46Rzj2^On2HKyJ#kS2XL{ zfG6TPD5x~F8+=ji?d@c=OK~pPI8pZ{tG=-@_^+P|SAriSh9n=DF35Nx7mHo`S}dfz zYP-X>SI#j{C`-L4qxExahjlOuq2^Ng1nT)=V~0qcds{2BXs!OiJz}>;E#@%r6w4Z9 z6H$!^Xuz2+y|&fpB!&R^IwPs=s_imc(8xyv#0Go_0*|f8$jL1a_tv)F%8+B~S*>m6 zbDsey$j-opd7@)?MUamvJ^B4a=VDqS(gZbe>*LOZtDk=9n?5t~D$8gVl%%p}4v6Rz zv|CEy2Wj<$mDSZ_eunQ44h}kW0s2v^UeIRs;^(*Wk11=mG9m*K4^>t&A81VIk@Wtk zLOU-EDDkgGBuyp!y9dpfwFkr~gc(cQg#y;V=oJjV(CH0bimBzjLR|3TV&pPn%(Q#t zc8pm@f9wV-etTXz>$Gb7_fSr!UQG1L>d^O!XYWl&Ci?bO(oscXpbUA6$K%ad;-a_V zp}&8>CMPSb8~TTUfO!57rpJx~cpiZDEI@Nz0Wzm1P00|vNIBMWd!f@#*-lVg@xDzQ zX9Lm=yWA8^yk5l2YgpeDwl!MKHZxB_yVRpSWNK<^X0=k4OD9Z#b?6%q!p{!b^vFJ4 zpIYDfM0e*7pEbBA=*SOE+W`6e(j{liEPCB2x4w>l%Z$VD`YPZWP1Lz407B88?_6Tz zVf*x+FI~;bwIz5)mW-xb1$h^-#&mL8Y}kx;@r0WPUR@nK9Jf+xw-U-K6Ri$^f4-jog-Q zd zL-oR4Y5{hg<;2=6IJYsicu+~??X)q+9iszGKo9s|bwW=WYu_5_V9 zYgz6~L7|k^;o$^oe>cYtFUOGhA{??WNRnrqE9~k6F_ElKg{u|?kzZbWpy1nwe2ejy zXZLo7a}-ClRbR`OsmRKl2OW1-rWDUTFd8Cg1AI``xLfLOp0C^{)&{2^HBd*m^>(O%>XxXf#cnRmyWqeWudWJ|6|1Bd4HX;YClj+`mD& z+~x+qVvnbwRj2HzxTRl*(3p#?-NE z@l7Z}KFyuZRy~PtP=-c z(tQUof%qCN`A1OR_y zrS*{W`nWKOv^UkR*#pvR=-Hij$_nw`mg{qy2lJbF#>GK{9HQ*EWej_#H%F*LuU(_2 zjOUkNQa0)6+@!6-il*@K>WqxEx3#@cvMWAPx_(S%6h?wH^q*Upvl<)Bea=FA5ef+k zKQA}Mr`kri)b+-&(|9)BOYFG?D*d@f%I-!~%;rbCD?^ntA9K~Kwkd5-=aj^EKdy~_ zH4P03y%G~W6Yb|M8yUa}4J*n-zMo4z6&)CTY@Ca}=G-KQ zhs2F`eyHg1<6D))Gj-A8A4UM_N`XIcSr<&;ShcS9!_!WiF%9@S(tZ&8Y&yrDCsNOpF z*eM$`fgd-Rvq!b~KDW?S-q-Y^o|n-ZsBv1}7Md?xFAFo9E~|ZKacHWdRSlREg_{P|gtI*Y77qa;EF4gpUU% zCRad{iIM0^gHUX}m%mP4qQci!KXH1kkPoc?vplR9o!(t!&&TF4S6c6#p`R*quD6~- z#~hF&;#!Dl3*#q4B$Uzh8OLCowN&{Oj2iepIH*%1IJub5SfvaRqno}?OM=~3+76zF zPoOw-@!pB_*1-er8E*DMXJ2pc#GN&z<%ID%Z$WMB&TBWOMPCEo0R6PZOCx=KymPzw zj?Bmpw?5#=WAdu2wQh6y*vNwhgW+@LuGQqwmmKk&M`yz}$Dq;Jf)Qr^hKD^^eP$Su z#&OiGK>LBuL8{;N-bihWD_V^JTY`@U7{Y=2fAw?=P>1KQ&`Mg`|LiHqxwVO=Gx}2> zYu2mVp6V67JHJr29)A%qIo|f~7ny0KTRAq|cd#u|L*L9lL8={WL$xIQij;e!fPg?w zI80<-u{%o8FO}t|<7Sp=tD*LnV$o`s-BEruP$uUPr}0}F{qC)HuNpvey3`V4Zz=W| zEYL8!tiG(YO7ZuR`E}U~Dc(Cvr{~h7^RTSFAOf)ws2nTn2?i7 z6$UrR?UFvO4&k$ntRNwl3WEsV!lrz3NiA@GL9W~J{H9>Bp%!R&pg_PYWNGvoqsPS5 zmn_D~sOZg_l;=;y`P?rhdr$lNE~aW-V=cVR*79`nZN53J#_m(A)EZ05OWsh|NdfLI zs}7WbRFssFg7zquZ}Kyp9kE>YVVnkaOA9NYzEr#DdMT?aL+)m@EIXs3@k>^!u|a>< zl(fa|WfNLOxmy!)3uz%{UFSwCzn?gDb)O7@(-OdMg7bdWtG2_~4bgaP4=F%|6Zzk0 z7FAuP0FfuR$*;YKic^OeS__q3(7Y+my>Z+65s$8@c*DR=rzodZa^OU`mefk9mj7Mm zoR#lgJ9^DSgRqv&q?&-2xlU@mLSw!6vc4oj{;@Kkx&zFKy`&6a*VtL1)i` z#_0I`p%>NWE0;QYYz?+;xlcR-Sk(uu{2b!0M}?-*!u_zJf^C~4f4Gu7)!5fN>tN75 z5ugq4m=#N7#l(;cwpyRFlc!?g<{($(6T;5rz^*S#z7EWuMJcZ|^2@1Op`EjKd%!53xFf@7?s+9!w-HbOz}3 zAv_qaRbug%n8Y~nMzw{4@r>mXQMYs%7Sq?)mkE=wrI zvw)O#2o#{U>?}RaVT?I9K0=8PI<$R3%9F1JJsLxtG=VSwHh#XMd#ch}3vkz2+!-}jBf`sw6hZt6h4QN=l=9}VyesFQ}*19+MR`E zuK>BEM@?BgyQ%51T8MjACLzeT%*;ms@!=)9AI~q0Iq0AmMSzuZg=omHgUWLL0{B0z zZex)5{7lr-*{>&%{`eml{+mu@VY}eMEpP+$mm@&^F|%B`vb9J?>aWZ*x%wEer4qocuk{<=^pXAf+5~KX+;AUdJ!D^lnojlSh=Og; zw+|0LK!NlK9iaa{laW1( z+*Yab5G+hkI(h@FPsme-<@zy3)43$l`=X#&JfhS=^qHo+fq(ypb-)AyGRR#;6F?ugvkt+wvIze%E*gWdC%;pnGv)+Ds=>l1H8wIE@myRJPvZ6f_q_k&yN7PffO&5nlm>|K+<$bPf+UuoAavY`j41C~sR(@HvDC5u0G%AgB(VS=+)s_Ft ztdkYV%*!!1+>BkXAO_1)ZvlkR+c%q@0d?_kk@t+CwhuqHTX*B-Rm22P@UJF_SU_iVFE!}Q`U39!5h=jIvz)4t zGVria57z%GWFq{90TdcyrLq-lP_U*+!XmN<35Vk zSGK;IqRrHzk{*AK2nh|B5y|!$i^Qe#N>RPD>ZD4xZnp01?^gk)uv@w30Fa&7%mw0~@Eg z9$?sVubiFxQDDmZTgM>%9iZBr{h1LZ6fys$rVgFlJor-W|9vIBkQ&_jPpdO>^U9|~ z@Ucfc&@SYbkl?g0$o+yr=3MWpFTwdev^~gE=$X2lMGG5R9E1j3;4rF%LX5+?B3flu zt;H9?Cx>+K1+-z0R=tR=$dTHF+`xmnp~Y|r5~6tWUo%xji5eEA(x|U^ad+_qLxn_{ zaiu3%t#XLTf{n0<-~=Bo<$=Da!zHs=!C<(P`_mzb{l<>x(XZ^(B3g=X#hJ1I9yvrT zbzs$~P_`1qz8khJvJ!bU_4Q(=l$#!SczaJ!tS;v^xW4Ak1kU>k=xK%)3=|d|=A^zk zw*fsqWkdGm>CjDRr-ES5@-(P0ZRt7dm8lm?@wjoMaD%Uk-^kHBrQ>7K1AMn%ar$XI z7pBbF?ZxuLhH!c?c5eKg=bf($f<>kjE<9t@RUNJi@pxJO!OXqM2XjkH}EOKsAtaFj?Z)>Iyw1JuX-G1u)n*g;jy0% z2t{f=HD6qsFmJ%#rI0d;KeyQRz+x(F&r`B6DI}vy=prb9pI45G-gK`P##lZVNn*_% zILm}PRa)Bfw|Me{HD7Ad>0zu_Rd1G%DHpJPMX zhA36P$7d-K?d)gOTH?@;<_RKxRAXxBqDvnNci9Ic>Q|6SRG)L|VU9Sw(r{QU*)J)5 z8^l`nQefOfr!t0r#-Ey}*-49R#n4PqsLxW{_Nem-kDq(_fUs76fWov!hjAo3rQGxZPyme#a2WP5sYU4`eD_)o46h%BA=Us{7(a9%Swezg z2I8LahdO9KEyWVRFlu!&Qw`-8C@d>xE6B_H;QJ!__5TUyvJ&Pcdx%^9`5^pAt!%4S z@`8=XMht>DnYTnb*&D}_tQ`K+@9{hKX&)!)4t`E8+rK8<-!b2{zmAHDB6NRmI&?X= zTA%gO^q&Y+$^+<;ax-8igmA`(99gGxGqU7yWi^POJUQ;{#>!Gxt&A*6mUN%O(lsq# zA$0EUK7DtP^$mHjlPh5=uL>^w=R9$MnSMVQ$a*jUnU&}INOw$}&nfmR^Xn#|PkG&V zOcure@+I$($X)^3lOEAXhaC!sr_IbOVDJPTrB^{^o&{8&yP<|hk1eeQ(9v<0@{!97 zC_#;wfr{ASQpuKW+|ry6PEe3bHD6_-BJIK<*y1sNSHEu+&Y{u(0-(T?pJcJJ3Lv67{Zc zR#;4c6`J+ucip2r zfd>DX-uyreywoKm$h5B>;$0GG-Uex&Rq4j$O-dSP`^YcP-m6EX+XKc_<69q+f-x$T z-ofjlb5?4D7&Q}_#BdWgbmQVh z2*6B$|H2DkAZ~SUqq~@fl>quyKFA;^8al&Rb<2fbV{*nUzkr9g5<_^J22?dDy?XVzY1X*>*?T~6YH#%i`iRb}KuR3iyGGty z%X=jWU;8mT%QEG;w6Q`>5y)*F6T)MCbC+gQ$9F-#W4`nef;Tj&!4ivf8KnrTKxlmFBG;WIiNTiMtGU<109Mx>GF54R5&x46ylzyp2u`6wTmJ@pkr;$^)jFMPot-@I5RJZo7F(S(PQNr@wAilrv7|v4EfLl%G`^kb{8Et@D+d z1sL_pKqB-Pv|$WY_z#Bt9@AUGGo8j`vzI>oxhvTGQS&WXo=DlJ4f{X20Pma2UNenF zx;)g`P~*+3`YM}A8+lc|GiLciL-0UHjh<0JjPSOs9la&us4h^U`Tq;xS{4tK0Xca| z-pL$RoRGgaOjcNSB9rdcYK&kJSo-Iy!H#EN$zMlN)) zOZN8A=f~P;mu!AB(1A!bCS;V$8qduB@I=5T3WdOS?N7-lyp>XU$qP`jlT0K?at zZ>B<^FblYg%bUM#pt^e@kpAe2cJR#mV}oZ$`bgj!9pG5 zD>tE6NJU%$H?0r~bphKlH+-+9Jn5gBDgjglsD*d1kiGZ)`#KM7h^<6YAIyo`u#=wS zhd`#DM2`^v`5Lp{^_dkg3*}B{O(2t2uh9A|5 z%`Yyp4b{VH@epc5Sv|)xY$RWrq+|S@Y6bD7NUxgIB<c7RlR4-)2Q zr{-7V(!}ZFxb7)znYTx$G1`0Pj8*vPj2!+;Ngc;8a(|@y)#2bG4o)vQMdRO}xWp(a zx)^^I&?rutNIiJ*TdylacV23_K1-^y^=XeW68Zn!Sc7ReE0-km(&WfUzTwgD+mPzf z^L_I~-3(?$VV-UDzTqU52k+{oW=EoF8l`1wFT)g{EpmHDTu*dG^W@^gU`_*dJ-uXV z=asd2hWj^}v%3L7#dLRypHaJrAqdAOA(p|BESLxt_`m)Kx=9DYo)%`Ml&k}7&IWgwc}1?p|=!ezI>;rc+*>>{q{28WY7$@7%=Zc(R z2e0OqIIKNS_6v}h3xr4W9Jhy?uT}Hed371N?qb}p#yo}e}I`Wa0AG# zuB1tp5Z~s^^W!T7GI_Axae~N3iF0!9|I|qUcJErlo6sX^7-sTUg2d6r6CWdGrGr%U z#knrS3Se<|B1-y%p^!E5n?V@K9;S^Mbibgxvr8fHPF!ZwU0s09D}jpj3TsF@zgMc{;{UwLOY+qCyPpNkjb?1H4p9D56J!=?sXCL%3phd@C&J#T(#l2LE z8-a}hoad-hRdqhBp6lBa-?K!;5Ja+hv-xK@$}at>fw z9X_dcsucwT4jFtR4V6k9GOrb$K*5P5zb&2d-oO~F#L1Z^lSljjaq-*TYUNCJw#yM`ws9!D6n zu>RSjH6UD<*E@XsuE{{q{^+6?(AIHVXHhKXc4jL}d@c(xsCMJmlvpH=J_>vs8)F0L zgap&C0BwC-ooj5Fd}W1JWQu8Rn4dDH8nEQKae*REN(IBTboZ}Y3|(^)3;^s?G+>{q zwmqN9frfFe zjDeNSrx(hy_z<959i{5WWO>&9;$~c`pWaiT)`gm&vcXp=M@Pf*d-Enb@Tkw}L|GTVJ%;6%v(veYECsBh;7mt6_Y z$(+fvS#*4Iv)G~pSGBzvuwjASAGzRqX_e^0tY=O4YwOfe=5yJ~23AB9m1l3l&Te<$w9nl@e#`HTIVH{LO1+g3Jj0{cR*c5MfR@^1p$1rVEMA&@qr7F_;o6#{+{z|`As~9%-k@73D{2- zl28jI^v*4KV;p9hF5;c8%y;Tp%a@U*&~7LZNC*nbjHP+D$NYW;^>PtcfL%6w5#S|3 zZ6~)foarCzg=h#N2mS&c6t6#5&@eYcHD3b>!at`YxF1VS^A=E?oX>B3 zH@=Av5r7;6;*9b=dU@w7yT47#?kGe87DvT>55UI8+)|e02!lQ7bx0FfzYMDhN>~8A>WgjG z&d%yIbS_rTHqR%IcDJ%jlNjCAK}|_jo!cT{+uKZPut*H7B>od53cg+-U}tU^$~5#! za!w;4cwWsAv{B|gu0%yGO;7=qE$mQp1CFSnkbjzBpFZWyX2QmeI9V(->HNNV zvT&fq-vj1a4qq+)*w@ylpo8Rr%q6ccsNXVbvkD*Zj$RE@cx@ewug_NWye=}1YXpSO zND(THbs*?}pP0_%{PiUyf=(F|wpuV|9xN%NvlT*N*LJCZ#s(=V=~8Q3EWQENT(MRmVFR#`AxdkrMwbzzk6F#>^9s}S5rxUB48lzrqGSBB73%Wr}oyYP6tI>hxL1w-Jf8X8m zh1&yujpk~>fqFEmG7myPhkF2vWZL&pC08>owNKZA;PVglvsvM(aLvxNB?!DJrQ%S4 za39 zO0Z3n85sm4G@2LiH~r_-3lLgxaxrZRV2;$F{t)O7Su*qq zd9gs`(=@J_v6XF=&++es*~X_pP!pcphqjv)c&o&IXgp_Id@Qq}63}y(zX{w(`}!RB zGM8tu$r&h{5Bj@OJ-6DJV~XEYx3~{e{%|RE8zA|;yyJO&3RwhrXVM1<^@Q}ytu05} zu>-PiVD75gmX>32kU&gwB?S=RZ+#NGhS~J^_Z5CX_-SCXEd8Eb{gge z1bmC>xSlQxtStZ!Ze~H=P%VawWY=OxQ+6h8#qQDM6<9LA7KPx%bHn&1HwjlSl)2|U zyJB3o_W}r0vw*71V+|}?y}-t> z2q5(Ie>^@K7)hFNdwU3vX>lcjNwiT|Ti5J1(y&ShKXZ6+@SG*(C8le-NU0#ncC0F& zTM$jsDvGgca^qqHddJAf0Mivl`!E>7@JdZk;pCOt0GxA}rE#0*+IVfBqHu*-CslPk z0O)0<|GEVHo7;jQ%?Zo@qp9K+zF`fl2A8`v;CEkL!#`kVRNOE^CCQzQHt(03NVzXA z7SI{ivm3hJ^_W)sAjsC8wl(1dO9V2&-ML%JHH7%Jv1+)F$h#Te}+ARBx;lH)>a2*Ab1{pRt`-jwJVi|TDPBtvG*ZQd;wm=1`S0CNcE!V zK^^0p_w6B?r0JfE@cD>^tiwv%F-^5|Mv#dgL7{|FJ)TF<{OG*e;J<(vcP3#iO*t|E zf<7o^@6dZg9uNj~d4F69c(Y}tl}%PYU5a1D0s3p#6Sy%{VmQ>P z=QgKzSi?ei71eDOxp)q9>u%9Bgj&&EQaK`4CyE?0BX zsaHMM#UT`?mXN5eSJkeJujdy>OZHN&x8g( z#%EZ1R>DP+CP?7}d`~=9FDDS&KdbV##Mn)M-=UFb1-yg3f1~T^(0@DhsF*J2UU;SbZj< zqq^o*{b|t^2M*HH$i+};(KcaYHq#IZk#0U$|!220i zYSd@*hl+{U3dXD`MpNc@MMVedk0UOp3Fh~*CzFxXt;A$A{R~`Qk)qg@K%mz2}cS5v?3e(2OFW@@rx=T;3(sT$jFseHc}&BSD9C3%Cc%FlVA z%vor&j~xZg75xW{qyjepJ%fsxCbk9eNyIKJ5~oDYydoKc_F-Jw*b0gxZ=ZeL4(r}> zMwMKyaF%!Tsz?_#E_vhkanQ-D1qsn5Cxf^9wp*ck96lC!VFo*aWH$875vvEYrw&+h z6cfipkplQfZBL-BQTHh}c(0Tk2>4qVvn+WU35af07NAX|RO|+`O4x75+>^F)JBN9^eBICPw{XfO2CX+Q?rEy7gV{2zu|5TSAIx9;e19~}t9kwqX$=(CqU_tyc$zn}yF{`S_^h;D;Rg#wU07IbL)!tT61 z-DtW<@(#5%U&PPY_?;Sy%09Z9p5|H55z}D@410rug4X$rl)r!fegy_YqQwl->m(Z3 z4+qoUET-yti1o;I&6UC%wn-gwWt~IbPOy;DR+z7OBujEAf=NPqTbE{4Vv2_mBg9yQ zj?yDq;eSp;{qVPeL0)@uqBV49ly%JA4ls#Ir(BjqKH%P2UoWw{i-R|m7)Hu!OZX+t zDaU(bwuYAl28BW`moewYBe}$%Y?-%3 zr?Ds}iQ|tJA{Edi9k6R-hobBwYQvM*uRG4<6l67o%7JOxm!SmrSF5X?%5!8uZjzlS z3}WslS{8si$Ve`)s*fHJ?Be54uRl~g^=oa?7Z1>PpC^glP$@BAG7NMvasjiQoTWII%-*5+w&ZHf ziQ^{-hnc{xG|^ljQAP&+_?wPpIbdXO-FkbpCu6Dq{nYFmzhJ~Tw7PSv2E_pn%S3i3Ry538-Xk0_U!HL^h~||eB4e}85Fl0kSs%zBv3 zVmkqha7z@96t0vgL)Z=z-o2M+j%#?@m++y*X`<5Pet0;H4`_^_CNiNUg38Sk%D|lE zkQo{n;&&h9fuirMU5Dz1s9#TrW>V?%O?7~<+$RhM!;HqF5&JzCNy2n`(y&S!6M~0J zr?e%8GY-Q=hJdSju8E|%WTfyU^5MlGDgAnHok-9Ug78qv6Z?PK^Hpd?Hr##IIn0LK zHhoY&%Pj|+r<>IWxqF<9hF@ZTtWVY!g#-6qAdK|uG2Xfz*I|2=Q2DE_NWi}Ov>e*G zuV1Jo7mn02?@m<%b)62FC2!CJHv(Xr7oB9dk#}TK=!fV-kKa?a8J)6f&lDd)!vvJr zON4Dbv(kYY+Qz3k*Xu}t$*Zsh_tp)IwRiUV-I8YQNM}RyW-O(g#(Ye}N>gQb?6>D; zdhtg+H;g9^N)w^;kpN8cXCeK^4TGZdQH(uBYdLQqWt`_EX?y8bPt$k&@Lf|6Vtypb zJbU+kqMui=SU!Wc4i!^;A zui;juMk1QEtQI$VUFf(klhAHtyQ_ql18p#=$j1D+r0WW&$fG^Z4X^f2(hX7?Q!4YuU_e@TbRqnS}e54cQGxho{A-Cpi11sdeZ06h3|@B7&%p7D=y3+@aHQY|GklOhL*wJs)XUTeSYtUPyy8Mpd2;WCdgC1 z;#7Y;tJ{jH-o3;9-gPK=lt$1#{O9!7b!FdrF`wn&DHo@2bSG23($-BwJ9~b|-3Qcy6|zab zMO$jR(SYa2eB6=Ubxr4lT@aG~dA-VVRo-_`b6y;_8_b*6;{Nx(I3Py4(*q@!O}=ql zFNTR9YoU@mQ5?EZ(2(x$x>o9TcvOx(yKn}0-eJPa#F&QB- zAv`hK(~RNxllZHf9%5U!?IM7MX>!`aDF1dec&hy`$Y1BHIS<$TN%DgV>JyaAAN4c3 zu6LMFrS$RR0e;%z){v#jE4yMf=S}E@@0E6$0%&`WF>#bH)6HI*&bh4I&D(KHpxd%b1N+uL zZ^=K`PGa}Ci#{jT3Nd~4hwegE{`mMZ!RtC z6a2M)l>odoQQ($E^$-?_RVo)V5A`9n%Hpq32%^-k6&rlwYT4k0E9Ug|*0Eek<6}(t zyy$a0jcfSQU<2#2bKfjAIBae(7$9^vCm4ir1%twg(;kckz!*Td_JtTWBNu|5~9 zD@f2GPrtZay$lTiIJ}>qfAalc`ulYtEBYT-X|}c}xU;D^=gXRmov5Om3u-&4+|!rG z{KwTRX1)mKlcGtXO+9#y)=_I~sYLz1s!u@~ppf$Np;_DOQa-={hxi-i<>k*QNkiU} zucJOYr^_hYk1+wXfPw%j2eaPk`P^HeEfq1{M?wEh-zM&S1DFLrTI^2OI(Wz9#kQlJ z_8EH~n7-|&@9tIpxP8%Mz9HKWM}*uR{_VnK$gOmJU*WTov>52@GFkMWMwT`sN-+7k zX{w$FtU`~_9Hb8e+|Q;N>D~3`hyNEJcz+GT$Ct)yo#gd!Z^b0)E0r~8XN?iV_{gR$ z4n=}Vv)~rKNv9{uw^Y(Z*}gb*yO`$S#~+Ca|DJ(p!O#JUN(8Z&ZqnsCnO5o4LV%AX z2Qt}cMQ2}WL_SYtAdtLHdw7RD#=_nCB@La=|F~SUSHEAsjJ2>n46gfQam^^pL}$3# z|LZgzB}o|0+ldwJo=PSn#VPs=UXEZVeNbK?Rml$1vs2i5Xv-j*Z&g)o{!b+JY^u^rTgT`_vMw9ip;acBp@(|W6XvF zK9-%B9WH|9()v{2#V$(y86g?v>oaNjPe#7$3U&w-nU&QGmbgMyoLh zu+?7hPMqE=N>=4=Dar7)tXqsqmc7x$b!$89-P@IY@=b6J>lfHIPvJw|0c#x8^**nd zyD{mYcmwv;wc)flhl!b--M5x)gn2f9k@W7-)@3pcE71Djuv69d{(eDCbkyU0BksIA z;1$bxG*TiwGl$1WH*$7eX6F4UuQFyc@`u(WMkD*gl@uDwzz8TQF|iCCq)XS2c1I+|>J2jlN{I4W~-^W<2T zW={wwA1ZQPyc+^g2&}uKp6mlnpRjsUE=S)xGgnv5&+#KfzL8nDmr2%6Z|BJ$6#N=q zdSGh_w%EPhG#kysNeYzLuWL*Gqc62=iM$35I$Z}+mwuI{x-J_fi-bGp0Kn(-c#uIBoyuKpC^L4ZACPFDW*CMZU>N3i#?SYy z=XvjcDBOGQx%Zy4_u6Z%-Fwg5*S9qwD|&v$N;Ke;BWj0{*qLndHT~Tv`fx7l8{8Zm z-H|2@$+i5T4;KI?8Nr|F>facu>(HxCPXV2(!C6KJzrS?PsV|i4oq5<4^6817NOowY z8Zl`fvghv2s56`ECLh2L_}mt7@I=8YY{ES!+Qd|8Vx4}BI?8`6{(Mh-fyT*K}4G$oWPW=qrWn*LWRdIK7?TR#cM9;*aYU`@q z7Vu1Te?OT3ro@f~1KAG<`jB#)c?$3i@dJ7Oqn7*8RvN0;sAMhphM{*;m+{vL@r562 zhORrR1#im@(kMo3U^}XRV6FnQ5<7Or$l;~&@#YTlbxoUfdQtuHgF;$981^tJNOygw z+v_@t5&1?O&pT&P5-zv;S%1Cpv7x%A`BFEjXh6-D(^P?a?lgtzRM^T&h0~YvTKffS z*@{t0vr90)%Bo_BSBA_)w6dp{mzI&yj-M(i!LL8g+DghfpJuh@UWitI8$?H((fcPl zXjo-j400p3K|qmI#S_2#+CwjyU(^a+p-oOcuk$SCP=BP9t#`UQENrrisB)%Vj3mDx zpP!%qy(}0R{@|(mP!bsRItQOwx38uGC$m|#Qh`jvMouC1>b18c54v^`@j6CoPi|M| z=#p!8SO{_flCn)lpHBNFUD0E^zcm~L1QhzUH(~YXGZrbzm#KNy5EeEgJ;OhC=0U@m z1y>X=)Ydpa_vi25(fb{QfI2i2X;M=knq-QG*sKqxU#_|H6#&}!V{uh~@*2#%jINUMlWlR1uyH?JEB>kBkBYPep+HDs^s*s) zLAS;wT|V}%ZkqHAZ5BVfpoQM#hs0k9Y3Qihp*(HPlo1h;*0WytZx(;(8vU7#?5g)T z$iE`XLCrH~DO*81-{`0mJ5nFOhCuerMl&FEtQ@n7i;K6f8U_E}wbP2Dwg#3$u9uVj zT><03*2J?N9VLro0s<#H&R#9-71DJAlZOf7fte{O>N+}fWYy*O_S_XS4bL^Rev*^E zBHiBjBUHzNh-4JSH^hIo5pBi2HR&2+j4?(jo#FUHakN@XcRP@6Yr18(=tca&r8l`tSJj zPDXp9^ljZBiVW3dfxK#z9~1M=DuQ@-ts&;Ca#3k%f8=7G6N7M!G&#A)5Y7MfSLQQw zBmJAe>Pk&0*JMvb^k@HL*9{84aSJ!vxm@G(h}RQyEpg#nCmqaIdn2j7dqU$Ui!UCo zHA`|&K(Io_>g=B$Mh*6FY*{2ymrvj4V5rRDH8wSs^SEb)m@IR>%&Y%QB=2O`uI1tk zK^oL7d1I6b2^5ku`01?pX$fpY6zcBB?{GSVO2#d1|(blk*Y@0&P zs^174sq@etbnIc!C`4C8YUB4ReLsu?O4T0X){i6}WM+W$RZ~ID_CDtG; zqwZUj7VwNXtgoeP6rR@p%x^w|`m}q1tF&k)_ccd>z;iKRkcQd7@4SF~?K3(+dm?WvD_qrVPYC_eKkvlh2r_gzh7cJu-dfdyM? zdDY?UW@20dm$2}AS#4M+4k^3EJzI>-t7>#Q$mm)K>}qP7K-$%z=0|p?>&+?mFCD7B zsR64OH5X=X7U#A_!&$0XQDN};oRZinyt(WbMa3my57NMa1REh#mcst1J89GqayQ#AI!t>mMI9(_Mf#ipR$;Mh>DMo?>L4R+8cUJxa~(; zngQ5F8u-jE4(?0(A-$jY6X&xKI*Lqy++$vn_xo$ zg@Tv<_;T&0zn^Vc3cbj7Wx1#FcoD)q2Lx4{kNFWTKF0=<=LaG7_|zb`fQEc2B7$C! z^C@4^N`D}u-s|PeEy?pG<}C{3F$RjmoQ-kI%wCYu^Sd4u??fqcB^*Znd8k?VsYUuj zDm7=ZJn>o#k#H76uU?Vyi(it^YXVqR_~r9F`sVJ6Hj1?Y62ePgIxgBnGYuQEfw!Lx zXu;&yQE9;5av;1^L*<%Edh+U1FxN>%`y zF&mh>g3Ga|d^*f?S*;Ea7miMah3w}4ZD?$KyCbjJLDy1@+n@3?4DmhEIZ}Y0|2g~M zU?X-&Hp|p^R5Dyri&STc&Ka4P7H+F(8Tqq%S-Qvs=6!Qf{Iz6U6t#^hdp>ZlIK{3x z9OV(6=A|U1?UtNOUC~KlI=Xa{mc}3&EYOQVS$xB99%8X~88L(JTo@rrHPIejGMYn! zHEA;wrH@7NJMjBr8VdY;3iZX5{66`?sF&g{R^B#pjhq6e0Y5_AO-)ONDq zPFqksZzEVNk8Q*jx)F6qj%E5D7M#s&mD6K{eK{RwVbt2329+~SJY$;tG(D-c0_Zag zO@xG>3KsYVP*zT-SjohuF=(;e9tQlF?W>bq2WuUNx%&zt4uaKb=pd=f)~DCV#Da6x|lIoBSyPPyer zTX}osa_KyJ^_FR8vKCR&S=ROOEjp-b-bJQwA@idff0YPu%n)m*g~u&M=G~K*IVNmi zm-kmwbLUMXB2@|t3c8Kwk37yksVFJupS7h@uo^uR63qGCUte4TcDTuB9BF5Z=A&LW zz|JaGmEQen?ZorOU({?MS34!U2B-N8?5xYo6$2*6kIQ&5)h6KJ*? z81+Ing3fH^MH{67o$;heyW)^nq`}*2QECU_o(GApmiqeSCbjT4!^XmI@M4Ly9Vx@Sbwwo$*3IN72;Od@oy(pWM1D z+;966Ja zeYff&uhD8vk970J!!KR>6874Hx}Q5P){IVLK-+%QcyZG9vwu!s7%A>cgzRREr%aXd ztG0I8AxOf?%Gb2t-(1Hh&){FBJikUAmprE&23z>{)zKKelbLgeS8v{gf^fuy_)}f6 zuVYecos9TF{Eo%M3V*R-KG8*Xq>DhW@c7P9l8ml?dG*G8Iev{8=@gPU96ZQ?J?lnR zhlqJ&PWOn{F|V=Y04;B=$kRNc4+DY4qD-mvRfi-l`!OT7_h)so`^b$i?Ck90etuFT z$yP!8;kj~Ia8X8Q12&7U_%!99Jp>mwR{o&#vEg%w)Lx@zYDVG%VbN8{rHT)KXlZC$ zo4Y@+C#K!iViC#r@j}nu%4L-XqH{r(Kob9W8GuYE)NSSUvh$P|7k?M^HI|pC-(3b= zX3(LiC{@UTYv(cz*BlE6B#z+1nZa*Q?*OBg`^&ib$XX=|Ufcb((>(srw~qHf|C0T) z9i28EZEeb51@{i-lOtYZW$+~j{Lx&m1qsY_-rWB%@Y|4BLFnW~=C$u3A;HwoCiWU+ zW)@u6Jdy%7K-khEKFja5yUMu5kpLaCx)*bn`-Up58GRYyeJ7 z3)xpx*1IfL2fta><0AWwYn-|zM5`LV$9AZDzZRIQ<7T)qrlbBhW3Bo2t+i~l z{nh^|QjJ;@Y1>m}-VPa`Xl5EchsYf%2XWO+Cl{oqWc-}k<$PJ^$uHt=+@Ljg-l^Xq zTtXMvG)5(_7-0#_2K$EAFU5aKxZPZIq!o|%uVsAE__VC0KZH|8M#l9r!7it_E}nK_ z!qyUZ)A#-RS9m)+qI={@921gHPJRcyWfqipx}!6?JaT2{*h(Ztl~YJ%Z{|*XLR@j7 z`|8W*LLy}+C;rT{`{sh!&Jg>O=I6$sWLC#2Cj=VPf#nnA$snC`k4s6p>-A5ep8zio z*#&HoQS5~mDNWo%Rn4WSg(hcx(6*B_-tIe9)Wa%i&S>gt-+ zLZdt=^mvW$J1whq%3`oVxkV{0gL`p4>D29Za4`XjI_4{`qQ6Bwj;09|ewNSY)yHK6#=W|V72ccVu=In~< zJ0UBl9)IT8yOe&%-EM-6e*arzERcSC3V9$oqSDx{RSjUpa~lCJQ}RVw`EL|ll1and zO|CPya_RrQ;7{&}y%4ML4j_~@#{8|S3kUm^3SC7acVBg8!}LU65`t5+_0*ZLxzY+D z2pG%{g*}C6?k)$h#a`>xD|B}YxF<}Ur_QMZIO1a)8%gPUA_sL&-6UF?x)sNlPTDdz z(6~Kb#IU49x!;~BPP!Y{1ldZ&?cns_xXmBp1Qb^fq1_soe4kKUP#I?`A8pVkFU8o>dXt|Q~v$K|7EHK}$$l)ENSmd}8 zmzY=r{ETKs1h}4-XP!er+m@UIS3mo#zD?+)TPl1ks&`4U+mT5A0VVhj{vE%}I;xXK|!bR)riz-i9bB(FWUygB# zt<(R^yTG-j`oe;C7j(Qp*|AV{<~8wtIC5i5I5NjhKr}9qPHpt^o@4vSdgbt6cx7Vd z`sEHM(mv`aj!&3l#?HS(=yxHfsSmnP+>*S!;zaJO>N&wz$=MYqc~Np6_zPJ z4FaweH?S`!4ln3i4tQ~LlFbPzv+kfn`N2dHLicyz?i=vF{X0M+C=e)w%~2v?j_9Q3 zoZ|%95FfAk!6cIF5x0hIp-S(jqiC4LK^!&AXS z+9HXq^qt;g-GthY8DFd#Zw=v)4qF0#`;iwNnFf^12V#Nu!OiVHw@5j6fSk>>YS%Cw zJ&ww#iB(7So&|XnydmQQyWV)o(MtB5UwZ%?JXAc_*S!0EuOe&^CTC|$Duy;wEHMSW#~8pl#enV zFh$vzno5IyeiwBpdsuT(iMaULb{~z4VPmceuTdKOv8&6enRz*SR$!sgMFIbP14IZ~ zAr>ACAzUacmK-ndC@}QH-bRbAkDs@uA0!d99=m@L=})UWO54y}zVyN?F+~Nb6D0}H zNoYY@r;+V~$02u6=K`rNJWvIwsm2(1PEsOH&2)7N%GK-o!=+LL(CPle>NER=U04qr z4JUwOIi?0pDl-(;X?PZPrLiXq$&RRWCr!{>RaNdyLu?0WP{3@pW6u4Uyc#;sqI}OI zEc~pv6{At5QD%HP3)fj4xPiq$8IF&`j{vRZ^TjE=L;$Rox<14F2i;P?iY`xuc{ zrHD8GH&|u24i}xx33qVwv4=^*i|WRmFO+;X7~OV6!yPb%7_Z^eRyDs%fJydmWu|Qc z2x3CVckU&~C*ui4{$i=UGaB;6i1}u*i5+hl;K~_BzMyXE^n1|cDUQ6%Qv4|ZnD5r{#Ef{(YZvlkYqvxZtpaR#0o{H#^en}r>g=cb$i2s+ z|K);gY_@oc%*jbT5gQ`!!xkZqe=X>w>ybWKqw|&IO;;l4-HRJZAAU9&KD_$VYp7f4 zcME*Il#-81zH#*I2nH8?sd?V+uoWd?J=TOkNV z^Jw_oCM_HEng*}cpv?#A~-h8O~qfosqtc+C0UP~;l zzza=+m4a0(@waSLdMna27X=#+my|1exmcv%Rg}S8>O_REWfm%9(DLbto=6FBJJENH zI0J>q%ocVK8il!@M{vtWl%Xru`U5x0;Pq;udoS369sZ=}{e5`*x-?spR(Z+j896=8U~jyJYI$$(HP8ujjx|P0@hWpZB@+P)H2eH4g5I|z8O+t`J-2$N zR3dZol=JUenAa;+Pde}Uil&A=@?$y`nKv=<(aH6Nj;GnttC+Kt@fl ziD-Cvvbkw>bZn&2KO9&z`{cCllL zzWvxl*mJ?g7U$H#&1B05P1&I_J#YjRl8N26Xq=cTa6g|Rquq@LIqBZvQV%Zm@N0WI$W4*74DtqScl z-D>jTnDBg3C)LNT#ovnneoo&Cq-kqRF!h9j~V13BuleaVg zsEZQ#?ofhX6hpZvb!vl(=chWTab_A+YUpHr-0P>&V5|0k(AQ0StpkjUCxX0q0>81# zdaTL2k9}VOXdwVm;$mMr{Jw%h+n6l2eh|D$>{cE3ZgtdLHe=Y$eclYiu;0WdQ)N-1y>EsMITBgy7kdm+y-# zaTBZgO|^%DIgB*|FbK~}UyGA80Br3OIU;>mX+Smb)m4f`D|QYJ7vvc^l%!chce90^ ztAcN)xB7|VH;NM(GLYNu**(Dz=g;4wd*{D?`Qve$kDUqMiWxGKGXTZEA~+=EJg6bS zBgn~#RNX-$ou4c*w#eFTY7Xoyq`@6w$|`SS?yo|;`u~l?j~)2EO#4%{WkSh>Jr8XcE|+fO@v2{NA&UsG7o=~TJy&g=fSc&615bj)$RVxxs~ zA2+&GL90nKGD!xC!r}sfsPj#gu}1QNs@u%;6Vp9k-GuYsKg%-7{e|*Et*rE3D;o%U zxNuU6=NGv4;kG`p+|&dGk}w4YY^Rk*%Pt8`sqTdqGPd##Ti1>as6B9T_Uwc;DAFKM z6UTP?SOU7uaPZic4WN!1mtZzQCTe*B#JsTL$FXePB-EJ1-5ivxA3gB z4w!w7nm=NW^|1Xs;}}m(;~wP^f}0kypV=bWeGQD5DcAPcsV**@NCTa*4majo+=e1q zVv{J`4Nx8(Bs>Js9^ZR&AN#q=fH)Q;X*-lkVMe7>lYqFxY*DRD`NA|gac*Iun$ab5{*cUpUVDJ#z}V$REKo86R5-&;G< zEjcNDub?C5E9pL2objSvP*C3C;fEmLrnt@W?1huH zVhYnF0@7kG8(m%)NK&E8e^(1V!PFUBo|espJ0i;%^gej<)KjOklWn#kXEM_CQ5GeW zt|<6bg2j=HyX^-7t}n!x4!nAY`W3lF#B-82zL}2bL4zWeE)$VnR=Ul6cueHWiE0^$ zUw(dZ&Tzo()_eylzi@um^5^}t$3n@6>q<7sA0Nmz#2CozJH@A_LO}at;!J193LEi- zu*Q41k~Qvo!hAap`Z7`<1(kVHO zP%V}oyEWG``f;!SZWykvu5ZSti%OzrZ}8IH6RU8&3FyC|M!Y=E8DYwa4ov18E2iX%Nlv<4hr2zqHR7VDa+2 z)a119QF$_`E~>q26)d%gnN+;hgxwa?rA%f!p86u+Jjo?GaY_gq`=dstqZ z<8HL3AJ!WK1#>q+(9`US*K&XJNl6}S_m~!x5LtO{C6};cF#MQo9nT*sk!>k z@YeD`spmRvav4{ykRSoxOP_f(M;A{CdeY7!08Z_GzlebFJnW;iFexo$YIpd@nLQjl ztCW;F-ac_3-JkKhb}nVb@QKpkv2t8n4C1)(gF|8pTz5QwO}Yv;Hx-*A>GJCao*lFq zbW@@u+34W2svM|)i~f|pPwXoo*0MB~=n?tK$vHkV(*YFiH#gSGBtUgD@9pqq_o6y= zP>u?cFLpr>GU98$YGR3a)IM;J1lekRxHcl<<)aMBGhg!YBuqJnX1+f}d3hh?U+V}4 zQUo4Q_lH`#zyBS{f_%lHrDkOB22S4-*oH;#aOoN#b!^N&5buXka}^JRUIzT);&!ro z=d`poW#X_8-QaZo{V%R&5{D_s$A42kMZVV7te0YCWxbdRiZKGH3Y)1~JQaSD0HtUI z{5@9nd9=QXY~?5s@dwgX+Ttn9!m`Ie5GrCzEXG=R%=zyUh(_?$zgz7VpFzV1nf?8^ zG^RRM?vCaqq0^>oe`Aa&Va_@Axvv1DJQ6&lh-;s}G@SZ!ew$dO*1|)HAYqxgB^JwP zXI+O~;%!y>^RGtnSo(xVO1&X-2{dEspRA|-|&1)H)z#LIFQUfJAxk{D;Qts=su}%`FVv4n{bS` zj72^c@|#usLG${n=Nz&hK4>ZvNr|MSq>QG|)zR=2#{oP>tyJ(J;+N`+hZDO)%Xn^4 zb;-!_7q`|1V{uR!q=SuxEF9m)pZ(JF9gVy0nW&r;4vl#Lzq00-ktR6QvU0NuI~sQq zpT0FVw3Dq!V7pRo({X04b%5@B4&qJUOx*YHl%hl|RECY`$>vnB@J7lDxAVLMBW;c= z4u#p-2Ks`KZNwvK4>Z1(=+>-UI`es?DL4_%q+?qOlx1 zMw(z(&C2~tiA!+202sOy1OK%frjO*W!!)%%Gzi)ow5?w#mr~YE@j$*?_r#)S`b|sGXDDvXhJi?vvX5qbVdSt; zVCV$A-)&{__~3i)*^&3jau0Mq(8N0xyx#61y|!uvN})R@kDLl*t9`MaMD7G~FGF8R zyP@W_SfJy8O61tyK)Om-f;wiz)1e4hQo-wx)mO~LmOUn~3^9<~Sy|z_6=h>?j^`b{ zQH(sX`=SVnDsqwlch_K{R%gj{Xe`xI_ALVJJ${kCI=mHzzpboj3eSWeIue9jG^Nwl zvI)jchZ$Ub3R-Gv?_?|3A5evn8%(V!rD|$veISVm1uTj8AQsw02T)MQQME%HdnXFNZp4cmr(JsqX zuAh>FSW_}m#x+`PKWnWFDsw*tK~CExg3(yLZxg+betPNtVL;WWK8FnB{^77aMuEF} zrPZYdL7koQ%GYOOR%v!&?svhvbHQfRy7D_3&h+*80YP+zqTk-Mt>%m3#j)U2eY}pj z)AZ?o(>w<_mJMJ(i%&|{bh2hUv%EshKd~FQYZCzX=*++c%67R(|`#gS%`2p2830tWuoYI@+u)m-oZ?`NZR8 z;5Wp62u=YuR}(&XdoL{QelqDW|3HXVsfI`IwepkFS7PO_?t{laOKFB~!41dG{`?RQ zYK*x#SxdKs0r`Sr^Y^t?&ZJm`U-b8DgG?^xG8Y>9v4gXF#F>yll(-&rL-5ENSxW^l zO!VMLqq}eU{(@#3vvuNQ{*vREe`=Oo5^z-~r~9)N9#zckfG6YnX){fA8v5;Z&IOyc zj+3WiXpx#7yjH1=1^b1N#W0zoileK0MU^?ftoZs}vHd?DA`LZF}U)E^2} z7Ldp@{MMj^EUH^`SkAClJt*(Y@@z^Os>@xQzrol#T-p^2yF*dy(an@_oPx0#BlO}2 zw~w!?J%!{}_d6)X-bNaCUF=3eZ{N9hzU2%)TQ9#qpwa{>;nyW$l5)$^ZqpJVmcP_3ty_334^@H*TZT_ONJ)eKz-Frf5 zcke-vePfya?!|byz7HjO!L_8L2h!a8!tdDMV#X@K(9^a$J4%QWHL$Q#-zRxhYNF3+mz z+u-8^9@=m#!MpLXu@K5QxGqM$)4UW#kI+M{trw_ z4W~5~AA8WP*W9z!v2Azbk;K}6AIUa8>5g8yy0oVoB-4q{kSLeG$SX%okF2j>4vRncR%y06y`Y`8_jc=djUn8XZbx;Ms#o`yj7>cTh<619 z1n?{HXRvCl1X?~#cnVgfJV!P>mDPV;mhGG`rRDTe%K^MKhdEMiHDvA(iaoafFgLf< z5O!js78F1{M0ebE#ladl8Ua+kj#c+YzELG!yj{zx%LRiFY?=+7-N!RJ^+Io6SW#9rVwX_}W9%RJRFoZ|cWv-)7igJb4{u%y z*=7Icr@gl%VF#;z6BHEWdRc*n8IdR|zJvDXc;A@=GNVo2yAk-ld8Cjzb`Cj(I>qS2 z3*_W@w2>cD;J;;jZ12{g#`TMtx}zGn(bdH&Lo2<8+R5=VvYIYg)Xa#*;&Yz!Vjs)XmA-ZLTgzfK$8d9J{5bDuZnBF#k35rsO76Tyc|1a|^&UOdbmaU7{Rc!7V- zTFnvzdiC&NtI}^||1$B)w2dyQkiGA^Pv5or*(xs~I1hpUbqi^Cj+=*){e#a#9T!?p zLM2W&bL##Gbt6CD>GJ*Y3{8k%kp26?rd)6vdh!zM{zJVU&UJCUQR2K#U&+$vqk{`uc0)YDa4GRm~zM9b9Y`i2+7QJwzr8Nc+tSa(HBCjaa`YyBE&HvQu4ZR1|In9|Jd$6kB zfF)8#TG%U$j1!gO-(o|`&_JuJ4(Ml!or#A#nLedalFD{|r`_F0&d#4PbiNw6b4&9p zyTMdfE3|Kbd5)I3x>U*2A5c~U+18Fkn+r?0YxHi0oYnt4o_1DHj^Gmf_%g^t*t4e9 zC=cX$z&rNQIWLcS2Q;gy?x;iZOy~>|IOCxNJ)JY2u(^XB%IIh>1*eswy$3o2hrV*s zsxnLDDw%vJ;i+=XLBBA}jppj^Cofv(3DjOC2EV1c?o4NWd~Rz2J^>E0Ryjf6Q^^h7 zUO`dbZVB`ljwos3gDQ~$7A_d7xSUMo_M}#s&cL8f9F-iGE3Og#XI_c@+EV5VQ_~)Z zFYnjDqpcDMD5v%fg5S@g{BqVy;#Zow=DE9mNRK;0+?fkDe>!`JUxa7AXdddVQWvd3 zPdr*`QR_$OAN z%s`Zkphug%aNwlSb>+M7xlZiGL=XHd#n;hHkjH1}El_oX*zI1RpSBESa|*Z0yb*PQ zWZpRW9MKnC7xE{o*(u$1$5Vza=+vnj128*QH^CzpXSv=D&Eli}4e_!P&M6zraZz@5 z`yg1=(oboV5$4B48Otq_BYt-Urvhei@l#qc#9F&nr{rxr+7qHmB3}6qkCvimA~R~1 zUE%$69n1_u`k?+vHzZJW^d8%O-l~0+B8)o^A6(uP=pGoj1V(5Dpi}P0w?Aqc8kXUs z_s&z{F!G~^Po0EHI!;b^7v}oH_G{cwMs~B+y?#`H2A^i~WCNQM(|hl{^oj)L75W^Z ze^}>c-d0DB4B@(f3nHsa_P($~Gh4j!WI+9+Z^lLWkvSZxhNtakZYu?CH>FH`oc%U5 z03;<5oi7^QwohqA;aMGYDHE3VUKMXbS{iEkj-Q}tnKQOVmrx8E5&vlBqvZF*wA1v` z1c0!Dmsh2xre?Oqt1ir`qv(n6N$q#OBFGPmOHgG0$4q8G3tB5`Z8ZYRvBm?+O0Xwa zuuzjetm0nExeHAVTa1S)q{{Q*nu6`0Eg9!qTs1C8aA1@(TsX~#%_1Vw+;xg#?zVVT zD;usiH8+?wZZukpZm77cJ5#*<^cZzrNj9#rtOa)Qxhx2Ep^7qmUYZYBD_|x!L-0+U z19z8p+f%my7K@x#D`{*Lk^CANHLqs6n@<_b`rXGYMXfm#&QqUq8z7XrP%infa~T~a zl-ofY2=$}Pq)*<9nWLX+yw~{R>kGFzJH_ogSepr+S6Lb(0z2N}o-GJ$d#L-I=?ToZ z^3`-J{kpKd;eAvwJ`-P@f)XhxXH^p1_!m)8f!Q*8Rz5#Jq~p21zK(fOZKa{nQZD^@ zBgq`&1xk6Tw9$9!Qiy2(QUCw742tpse zt8>ezm~}ZRd4)GskaGy!)%6I~Tb0OK2rIfgSMlx(lyehM_%y%M9hWSdu}3o_RfzXt zsdWNFN@s0e-YXgCX|K53Ed`?iU%>~L2e@))K6_&aCF=zKi60&Z3bj3Y_9gYJhu_q7 zhnH^oN=Q7vx5c;VXz$$n0Qduaee1FIsKK@KD6wQeu@ z+#xVQ-UrRwpOw9B-?M6Yi(?3PZ1K0`FHTOrbnlOwFOk}&=2E7F!>j#Gk4IqBF5f`}6d@chpm~*dnnJ2+QnlYaWzGe^L@*N!)~2rX zbZt(CW3Qr11pah7>IU1`CXo;5=txCJ>HC5u+4ujkrdZ~NBd>6?3wx@_c)XjKtcYgV zeFpxehrxVg4|rAs>a~n=60!K0nv=EWV1J>}T-^{5x$XKA_gs%rm4av;k(st z*7^I)tHusNtEH(qeT$$Z^d?gePo~kfI!{uG$-4${BX6$5we=i7qh~Ek7~7nl{ujtY zdF{Db0igb#XLiIyCP|y${#h3A#KA|e3E9o1nqkVb;<+>^0k!)gc|X-r4)`fxLELON zlSyi=IVBFlClg>L<&n|TOQx(WG;nz7`DRe@1hJx;hM$M`9MbNkSA|59i>JZn_otob zlfA^Et3?;Um0y2qccAzu7ZU}epJ@PS+;4NOKAm##jcEf)Z(I_4pbCe*?d!dbYA!ui z{3_e?7OX0+_Mh4zYBDAXy#FgY_F+-}C$ z3Pc^;!b@HWa>=CKdAK=5vVQK90;1`^2N7$9HoqvNd1N&yC{*-&{OhES&dld{CvByF zTYEerrR*hnw~YqUNRhy=P~(x#_Wb4*0hFgY%S8o<0UVMgQ9y5KeR#>2Dov>P;8j#Q zLQTP9+55zS=ww#Ip{P4EwF%CSijn9~E6^SwXQW75|6H-qG=x5$!3h69SUuC9u81Kn zLGi3&mw5c#mj;p}N@y~ZbMN|+^J(p7sp^87qb+v|EOx*eK9}uAF-yp(nu;h!nn2z{ zXUZF?7)5Hwlo@R`x?>&-_+j+8`w-*%WetlM|CC5Mu=j6YmxCxAz1JHPpK zb(OBLqGA{T4gT>aw5L3f!npj`05XkxFCE(Z&ThT}cB7O*lG>qA|7!EP%jP_>gZ0oC zJ{Qc^c1>R4NF|CvdkScBQG?uRsUU2uddi1D< zmAhmON$b}(?$$3|Dp56ElyesQ^O4zIy0a3{oNyUK<^#hLz%Q>~WPCcF8=$!IH%h>b znT!xOLou7jswA?Ag*S0*jr&^eNtXhKpg zGsskNLl*1AS!eY(;f0FfOzi)3tMx#)Di^ePfn=!hsd*Wqp`jA>B4DyZxDkZ`DE8PO*cQY5gnaO;Y zuFdBH;tR&Ofjy99G68g5j0c?Lf3%k#O;B~?mv~wvb!sjeFtOHUfiH+Z(y!f3v5Zgt z51oe7)x~edZ`}uMKPhui6;?1k8xEGf2eTz2*v0cWWSpp+IIe(dOseS9AAs6nM1@}s zPC&6@4=|(qAp!7KA5pTOL^e0$cconKFfwYnxz$PMApms(uT$*}ebK2Iy2tvr$ z{vm*+5~dVUw%=|B1gdWY9cFXev+p-7qrup|(}$lidnQpx0&&WJUIJnpMM%qwGYIbO zQeT;qwC1tN3#W|)`LOV6pE+$&B9pQ#M)K%%kRm^JHT+J0{SUsbtLxeuNZH}T)iX4O z-&I+Rf-m+8TduIgYSGASgSy@5kjBfCKbeLjieg28DJ~jdo0xX{yC@%CzQJ|-`m7p( z4Mg)0dd`M0B9+3!=y_cnXRo@J% zcI|AtC>A@GD*k&M-CjV|qN$@(QcMsQaf?Sk%LFdB$zw`R{FmA^aA2iJU1_$84=j3Gh6@pWY_@^mx|$ zrpk*>GG|#-Uj%@X44dNc1yuZ7w78ie95~e5J92C{r*3SOkzAeAbH)CC{_klYEiIjr z>gsWTGy8vf7jVKT>gouePz(QH0MikvH)rRZbW#V%>K`r!EK1iWrac9 z25nRhi#?(ctL^sOumD#9NHt%`Zt$sm)iqP9d^&S6bJ>{9`8~`9{otcip*f(^jkfP6 z*=%w{C5Va^t@JQHOs?Q_XQ*QFF|Ah-&hiHs-SL!s`+lJZCL2`2HO>CBfH*d|*ZeME zI-s4XVHpc#$UMS8r1QHvC!tOb?3PXV#BZiW{~e0P#I#TaEEef)9e@Q4IJ5h7^#X+6 zvo*_nG%Norg{M@j;$Zpgc%KJg-7q~>GU-F+9L_zgwCaiNojje(w?_}}!LVLRDf3LYRC%>yH3&E=#)DM(v+TKo@H88j+ zUOxlwbP$-EY=PQ$eZ5>|mIMlpxh48VxOa~bNJeTL$JkLW!>*z!<~M44LCJh}E}N-N ziDbJ1h8n-%h9TUiw1z@OYM4{V>Xd#Mm7pV!Pn^vWmX_Mc?8RopiPu4$ooJFsYeSaV zg}ZYrunho34ZNMlou7{jPVg8Mq|3Dh311>*{ zAKBZy*1$8K67zj*8DQ(ym}4a1xctlkv64p8M-Q-(!=UI(PO_-emZ7S2E6G@fMm7$? zGGP91)p2&@%KnAHYNRr~s6@b_IZwo;_)p*(*qy81j_)0}*D+J1Z4EDh-C6pm#bHy) zOCL1}w)J=~>w9-q(j6*AYP|WUoVr9WL__k>a~bL*86v1onJ7FqBIm|S4dlME?sj$& zrc^IARX-%X|0M5-8aN4#p#N7I1k{XtJ)j-}HYhYV>Op-|)ycYl@O>s=Yfn~ZKIG|{ zDmilTrBAUP^(q>x_0b!r?XuErO82AmYtwN)FE@9Ysf@caF%WW`(TF9>!Zm9?hr2Wj zy4;|B2Rb793NPxW_XtCeBRU~=uJN!1g;UbkG&nX ztLvIZ_f-MJ{mjl{&0Z4y;@A4@KbhF3&6|78YI=G_1F3bnfQuUiWLT^R!J-mQvVgz< zKJ{??cRus0+Q{Q*LMNW?#zR4Ojh)~Aaf;J3{bok!BtfyY8WlaOqGRMj36Lm?rutYP z^UKiJg}HJ_Dz4Q7s{K$goSarfHQ5g4fVlNyimLJakO~_|4bG8;AjLR`A z+*pd(+T!wC;u>oYWRVb07RnAC5xvlXjJXm5bLWZ&4Gj&RAEuO%poa0;U9<8t!Z($c zE%x~9A<&h@Ga%5CmR|!IkTX@?yb@P0C#-&OJQMlfw(m%M2G)?l`S!A?(LCpaBCMW( zPdTGfVhU8;4PjK{TV?3N0rRo^tX1`-Bo>f!MKCX#KIMi6>4HTp`e_1kA-E{xnfPyw z7h+{rqoMSvYJdtJMjBr2EL-+(a{8(n<}ubSwe~ajEnL+rKih!fYoF3`r~UwfQPP{a zK8t~)C|%Ue8jy+bj?Ym&QlN%1?SN8;R@85qB@?R+NS8(w!M4psAGp-pMP2KlC`2B< zt6~1xEiy3c*V)v9$2gond#2aHZP#r8>woVnu}%vHTPTx)xQ4Rx^-66ZHqJ!+TMQ@J zLFjNh5idR&cS9rq;u>`iZ)J{diGkm($tGX2yIhN(`$y;I5Ovy|510JH33&zpClP%Y zV*F3!2wXBe^&h|o%k3`e_;aYjh7^mzzJVwyIe~Xh0I!-eL)2y&cNFR&)Zjm7jD9V> z+ar>NkXkRWDrSDb!H{QL)^-bxS^)Jeg7BIR0Imb4ptt_&Dh)ub2^K5+?@HxAgK0*A z@)UN8!u;u2Ao}f4wVR#|p3Blam0fvZg!*aB7UTg?{sV6KwMG0+Qd;`~C>i-caTmDb z29e5BbH25Zt<-+NE*p27c^L4ztF4w_i;}X$s$Qco$?FIB2Hu+VWk*VKhWZnRJ?`an zhN{(>9Bs8{MJwBJ)T!FQ8{xfJen9(uE$uiAPBiHV3o{PZDh)(2N6p$0Jk!%s`)zay zFOk>1>hLWps-&P!hjfio)qssS!1W5RhLg7xJ}kz6ueO(>lR@BE8Vo4h5s{JB?(a1< zVyT?c{E37c)H&~Sq#^8JAD+CAGGfX^NVKzRRBf zs=pfQNOL_1B(0FY+0rz$w7|K6(?uVQfo^d<4&E?uq%=n1FJcZ}{t+l)YMAo_rwqet$o!yMYlCMWg2 zaowxtM?yk6w@@{TMn+7K5BO{3MgVnU1ZV`k(CneHbZ#mf6it4HBx`w=&yuUX*uCA>gckMEQ1nMa1QcgpE)$1pps{O&?gVvnak0GD@wVD< z1ozWV8okMHM8CwFoaM30+H(tw7X$GnAeazTtR+>51D%6|`7JH{&;N(AFAs{-V?3}fuejG6hJhx&ZJ z-|PF=?_Afr_f_*O=XsuU?sK2}e!X5d3>NvUSFw}s=+QMR?^xqlX3nz7lKY)FhDr0_ zpP*z4jo9ZeXEuB=>l6YjbTnxB)ctwBMFqd$`a>A_0iIoxh?Wq5#@C%~Rx zTsRvbad6>=l5>%eCl58DW<}c;qsNc4y%EN}>OL z6(pqZtV@DZv^)O>A4X_zTS7UXCNJyruf+gmcc<@)r0aqj*D0+9iVM%BHy6b$Lu={) zvi{+*;jmPN9eRW{Ra-u7>z=4Mn<#kR(C|<;MfCp8+}SOw+V3;y)kGF zak%#TiIU7gz@R3|K}K02rCrhK2~iJKMKE-B9r$gCBhO0B%|>S~*R4Pt@elLmqkV~Q zCQNICZN4~XJ1-R$}87#Z&zq9C7AJ|u^C;ts`gp^qS zdX4oRR6&$TQQGBtiK8WJGb#x0Q9V(-RfNjg?eFAYP(}s!OVo4KA{O*>82RNyyxr=e zz;sQC{!|-;sInBWeVE?b+Nxz-qL5d)5_r_n=`3ei@@r!T>C0efDm*_Vc50K!K>65+ zrp;`GBTcTAwKbXk0{U{P}My*xCf z{HC35UVcUhXJy9g0p2%VH^bb{2&4Ou;{69(1$48 z7MNCAd0A?=gg+gfqRr(Ob~SE}e21z?$eMFvj(zmh>zdZG54AidQazl3$pY{dDNnPa zZ`wljd#fOGov)d(Ar$*XzjuT3L^Lu&IJLH_P%($oxm_o}A0KUfs_?!}=1a;0rF7#} z*Ps)|7TS|Zl;w_8z-JoF+!0TG9`g4Myq~p(>hgkGR_pXi{wyv@!tl+$loZj5Txzp>{}`kKklUu53F0e8ogKMw*7L3|GAmhZGy zVVbOAqjHDakWoXCSK06EnRb5;LOgv}N9LSb1x}?>5|c+>o*_1hW%d$8so9S>PZn`n zMG+*CAfTdpoC3X6l;C7kkiz*>XgLZnX1%|c4x%%?ytTd^tqr*$x*)W`Qqi9bvZg%u z2-^ZSz?-M+Pv^ZX#()#LdTMiMeCr8mDxY&Fx<;xGGp|z~O@GiawluRv5lDD@c!7ey zg+o+WB7iH#f$0g;m4)1)iu7oEDJL*dD}!h~YdF=ShoIT$$ksT-((93=z=UP8@(z4u zi@VjeK5PqESJks4xrV_MZwaf>{t2nR0OC)`mA7ngklOIn{u&$GySC06OG&eH z_WkMQQmIKXYPHD z|AH;~EZj>hirAMQ1?0iV@;QnRA3~w{Ie@&0F~g%B)f;WXDRp~p5G}c?+zN^#fT)st zWP#voB-^U>wSC@K88twCh>~X_8LyB0sVXaLyQU@XCsTuY`6B@x$*~U9oH4(oVU;$o zfkxw67uXk~JPEUM_1*wS-5ckrD1{A`a{Zwz=RVfC8=R5^e{$Uciz2K`#VrfxCV-Yy$eLU@~FL4x>17GwrAW{UrB zRvDb`8}2m2E^2%$JE8>pbd7~wl7O4o@d3DP(?#MwQT7jm@UK~)scHm|5?hI{gU~zc z0+>VSM22oehQ?rpF@T?0{>{W%!Mj~l3>BiBYvQ3N>jJ4*=t$J0$)^*>?y8)wia;!- ze?0FrKy1Res-TYs#=7ucV6^A?W_){5%3K$M6P1bg*58FZ14#DnG2*lsEhvrNA@CCi z!ulVadN#a~2f9C|&bt>5TJDzEIVSV>eMI`}O7^^{)DD^4GB7m{@>G%HHUe4EO1iyE zp4s~Zx=)}L-4R<1#W&u#adgXXCWYYF=sgebB@3DNzD~A)`Jlz__1}+|rk*_r3v<|0 z#>?G>J;Q4Bq0j}&s``a4yWJ3AR{_vhFPsB~fQ5~oPxSS1F#k3}1A~%euqL&=j||)& zPH2GbwSS);`dju%fYyDICcZ9Ud_S*l?XxqEx-$?=fqJ4PxdxcE{M5iWlC0l<}+>x!YHw!hSLTt}$ z<}3k%TCR_AQhJ1uVi%w4IVCF_%AbzdEVoXw`_LV%V@R>|HDhE!KLBk2n*h>Y;D5e= z-H97^dt8=V5(^%5iKN3@qQZz1bxr(Un;IYJ>R0t+${=k>K5v1$hI; zx6^xp=uzCE)2sakw#; zU+$dSx(K~V2pR%)9^y({-wVdEq~xv|Qc^crnFbrb+UgW?L&#aL3J3hHsBwV0EPtqw>ypfbemv!vD| zJli=ng5lIKXvHb`eP(nm)c%%t=bMF8EoBg`$9n#PQUG@rcjTZYS7yfHad-Bq|1({Z zW2JEE>T}F*;&=Bf?neJ}7(?u=y=LMMwyiMcKtRl>DSU|COlj zbM;r$zF+azSc3T&gSHKBbLgD^umo1KxsDD8w#MC6%wLWhNf%HDc7)4$G)>2@{yGY~ zPYXVa76K=*9s^Hhk=(eg`;`IayUIiPN6{dL>xnT?GSq;FO33~2&Dbqnm)NBWkwip++?J{zaL*yaVq zXPtIp?CA60mkb6#k#fqGmEo#kUf96HOtOGQao6#TvX!=@+IAYHncBNb15B55A6@;N z_I<8&agH&B`V?ZoyQ zZOE)H8)fr_(&x2n{@c8S_fB!+!$DHhKH&TNf~5`J@YS~hjW+%Qub2o}gsK>l$JOOy z+2Cp&8JWwkR(;*1bTt7k;CoEWZSfyG#UG9wn0kHT=oI5+UA0t`2jQGuq#r)@jAdm! zEb;H=%`moxr7vW$LSC6bNeUub#6jb1E=RE~pgp7Bh5R%u?#Db3bn3=CBKl*lvm2Ph~59;r6^MkYwA;JT{T=u zk#P8S3x99Z)@MQE>TJ4rqn;|n=1%<+U}nQqa7E~LBT?7B3|T{o{%KpLl#M%d0#AQw zBP#h_9s}?>XLXL1X1_@uk;Bcdf`DitLod}b@T5;T&!-1~ByEX(O3YDh<2@@v9#9U7 ztUW3|{uuEr3V_F(gwzw9U)9bRU*Tx!j;+{SD~u;Afz;j3!DrB&DJSBK1)eh6hi0f4 z2lkdjbs!dqYaB5p;1ZCtt@f)tybn)6YQ*Qi7Tqx|=sW&?^3A)>tyJ0VQHNq2Y6>t(= zNv4w4&I^)Y*IMb&xjzGx>jc@_nOPdo&AYKcU;{wP5e4cH7-kyJBDqrPG_()Xy(e9) z`g)1KY3-g^IDywoOltHMg8{iuVBlwS^LiG!j=|u@88`B^YLZnbMDYMQ9GEWu39%TB z9DM!gpMj*fvYXdvhkBgktVTuqv%Kv(do`PkRyXABt2KgGy@y$Q#)~Z-&P0M*;osAS zp~WdI1i+#6eipDWGk4}x4@JesY9%E6GX8n?3P{}yXPl}x=hf0O%mFh0+xGcD>*rsZ z^`!D9 zKgi(2%6K~#AX5MQ%zxP0f&$r02#rBwk^wCjw=33i{)Q-FTn4*oOB37kuZ@#H)D38d zS~x$`O-wq9CLfCn#UzNpi7!w`bf-f_;*gVwB)}?+}x{^6y~o7 zb>XCi>sMmZK$4eG(vWA1I@tfk9|X1B7sQD}}-MLr+qKl@5B@+vmy2GeF!t^-85wdSw2yR}GgMGT#364#F4@ zk8?h;v9YP%FRi9#rtqEd*TLmfRU`p54|SAFa*JUh#IyvWV;qUq`ZNIV&Loz3pu0xi z!*TADF{1-wV%T&bPI9xHDHc0E6eUg=&QZV*cNR*_8`?{VyRjk`B2(o{#0)-dTFhMa zc|1B3YdU&o(-8S_0*VEuh{rfhbu^~Tyfc2WtZ?u)I+HhZWupc$2k0qrfwwVljJ}p&W)6I7YIyY zbJAXJ$*|4pmMx(XfQO9;#r9XNj3;ABK&Z7i?Znm{d}BvOJ^Y`tV+JDvLzz^sU?JyM z0T>eq4b+Z~#-Iy3-{8%A*J`}o(#PHLuQ(y9B+T;7NuLjpfCa|=GWspYlJ(te{=NCa>ji@Q00`{i*&NK`Ps zT&ohmxevwJVuexejU~tzeQ2LfmtNOvqCAB6_8d8d{n(zl9I+YB2Q43X2}S~h@7qr* zs|eeTtM~U1MrDmFzBE<{P?ifcfFt%fh5XTBqN~y=0i?>W0(qQt_gK4;@^2qLoZ5Y{ zegFt$$v5IAU^PBr3ju)|(}y-+xL4o5Ga{EjSPnI0>k_hJ)<9IYhDfE!=R9ZRu>LDD z)1T@SLd*D8YEOzLjLghbk^zi2tm`ayWiN>A7ZwU149o(unzCHzyNR_T>z+t7NMP*V z^&O58<)-(C!%(*RtkXD2uJvo&8P&t9oX-WljC=G`O&xeDjjs@bjV;w)C`JM#9 zSj3N)YYLtTI76HSA$C}^F@Begj^5k}I^@&9Kea`Q*OmER*mu*o5N@W6 zal)KqiA#QsyYa(M+4SR$jg7tiZiFDd`(i)O!1{ZO4s_Wim(!x4OEZU#P5lpv5-j@D_~zJ7($w{;oI7p7haX4R!eZ zwnMbQcdoDF>NE^9C5baMIZoh;zRn+eK|VXX%$58`Zky-m6cb3Aegjmw2^SU?w%=o8 z3G5)Q)x?&n9HjRa)mdb>Tyk%2?KGo+R96xiQ-qa(l+N&SnXW(jw@KSGKI>l}u0sV6 z7JHQAQ)loeP))^=%f*AM0vQoEeNYJSNqf!%jh)Tn1{HhC=WW=S?_ebrc&bkPuS_VOiI+P12emlu@uxYiZ6J!)ufb-q}J} zICte74O~RxA#2pJh!{42EY&4#ENX%1ce0G@zp#<}c0n$C8&Ie`M7!9UxL-Q?Ah5iL zr)Qxx2?`cMP20H7e@V=K{Ys2+woFP*2$$*f7fW{wHBg7mb?*ppjE*)cnHlJQ14{f^ zqY|KIZ=>*``J?IP=gCqi{ulyyA^%HQ9^~8UM5p=Q|9*28Xc#@$I!tZergL;!(R(i% zRJ!~Xi2rCA7-SU`h)5oN2H2c{^05~Y+eI#eh#1UTzpp5HjzG`>yQBnPuA9-f67%H_ zegm>ZjnFWJS`Dr_>LjIoq~hq*mxn5Ss2?4kGq1kP{wl(RfWYEz)7H?w*aa$!fQ^=B zenL+OSJr`-KB7CoYXk)Py_Ox4eHf@(&Z{0=3IXC8wlO=8&@4c^6k_WG^t5CaFG19+ zo4I1wd?&uA9}fr!5M_;3=gRvN!o@27BTVif4~16b@7414MWkP&`;i!WV`atD&%`d3 z=zcmg85I*#bO9Wpdj#5H-wGMQ^$yxz+G%mMr#|aW+UB)){y|eBHE0IqEqvF)JGpmy zdOmZOM=deDs6FNHNau_+soCvLS>(y8jUEG>gJGGOBvj-f=+%axX#Ai(7SU5sVi>HT zQAn{36-%!hExv;vr9w7pP9XWtmfsIqf5%nw62p@GQPCT>rqBS*46AXJ%yJ7+6yRhB zY?00%H(l5)byk~=B)Qlr?ZaNdqqp@hxwvNZlhE|4E*XnIDxF{nLO%y@Va`;mOW-r{2~uMZP84Tg?_zgsqc>6c z*Z84M#7#yW3TB=Gs%R|C@sGd;hJ7E$=l3dn(q0Nc0psWa3%%FBdWMD|&`0>^&j9-k z6Y1F1)C#Ktp*nRC>HzMX3BLKyL-*;a0jaT7AY@OO2I_jqe|3)exhMI?&CSf#fPNj{ z<1#Ik%fL^H|8lM@C-CEW+kwh~5LhH2Rzg!vYl#e2eOfM72t*Hw4~q&+%5C}i?HgIB z$WfcVDY^f)K2Sv)|5;>|lUH~_#_YfLLMP`U%1%r-jQ)?f?hLApdfg zL<|Xg(8HPz@xHzUd3(Cz=na46*Gr0@)$tYpWXNy~d$MLS63ELdD=QC3?ezzg(qLw) zjaFlD*H*cvP}rFc`OHxBoetOI-ci!DY;|9J}W=bDE(gWH>qyjkE_ za-P|qxV5jXy?qecSV2u!nwg=t(Ny@#eV*HKs$6HG*ee)p5ZWA?_^u!z>d@odup8(u zP-%F*wCw&kcmC0lP%P7KK0#L;#Fwj7?Ej^VKM8Yt{nGq_079?m195s>*Qh(-ed=a; zs`j-yuvN5aMH-k#aa`Zr=5warhRQCv?gXy$q6DQkhhxS&I%50P$<5o$m@}N+mGz-N z9&d(7mTfKH1XvrJ6E}p&-axyjmFg7cT?b zq>$j4zNG8QnNp((C;HdXX4WmGa-K%kk$6S=lcq?hl$MT$^U2fWJ0B|IW zvhKD6N~Wi>FA+mM`L5b1QY8tG2K+K6Ko zqyQ@e1p1#V9ge?$aq56bW<6OXsu$0>!|zQV!t@fT9aMelqFGN!9rnNu7R z`{FFfQkf_?=PTz9&ENrHZuU>Re_6-{Lo3Qg_vF%N;HFqF{-W)1zKfHI2i zLC&Ydx(11R zh@(L}i?r*I4!Q{xg$Nr=l3XeNU*o^2keJ|Wz?kLhKxWSw48zLJT26XqbT$&X^4dp< zHmXsigLM@e0X46H?XfUuV~ZHIUo#dHSo6;_u<$Fi0Bo*g>8qfBumT-0x@Hcd?;fW5 z{w$T=oj zJP9Nl&7*p@D39YeHSc36KZXUAg*MHV+dIJcpJ93`S~aKKu~D9E?-^>5tJOB)ugfV- z@%Top6OzUb*o#?5!d1Ynev6=ic~J79je4eS0K~n#|Zcpe+*8oyyy-KNHEO7VWm+ zrRu&*mRQA`DP^$~o}Aw?g(4G9bS2ea13CsO^W+2CXpdyK1LxTH#!M;mBROeMRmz}* za9Q_zZ^*Mky>-fR|9bBy_;*sg&T_-%8k%B^PC4IKpygoC;O}OA8d=ieyjLFIDE-Z#y8?d5Kq!ZOR}=+ApcUl z*vvMtOuk<-z&4FhXa^S@0~G=TKn2tNyV(HtXG%Pv8sS?{&%7&-<+~Y7UGqVdHe^W3 zvXX?EA40Fv9Op|QVu<}jbM#J>tNoRN!T|wc;gs8#QUNabse84v~M!hbc|tYBRC z1I&-O)kcdf;79ouMF>x$f0(G*i9Fd1(@;Cl(=us1gOZ5wo<;z?-Z981r3DyR`T_^K5oHB(90~T;kXUEs( zvoLq1!{V?wQ02dTvbp3!O*hXWdkY}4v#U|RPlV=wM)3PG$p)=O=2EtPel`){mhaVW zUFDf@rFXyC?EY9>+zSCYC!p1=w5FewKK-sq`6saQ$4)zx*>xco_kIJu6ZE5yn5xRh zlN=p(i+3Qk_Pxf>T`0Fz`M7LZ4=jMO9@SHK&x5=>`0l%{W~CXN2moB~{$zg^w{Cmt zA9+$*>hO>eSnO0E+?CZ766%1q4rB5$Qn)5@KtYm<2LNqHDEPgbUy9^SmfPCd@uGGG z%aawyGA7hPne0EiyeDu2u%0p0(!P?Nz6(Szn87-(_te#lQU@WfuF6M8u{GMSniu~U zH65DewV5>$8mFw)2Va4=tCfY3h`eK>6e>d3O8$6kaLF(_A98S&6RF4^_8jmg?MKLSz@M-Pasz@gt!lVcUTt6n|b_c+UslfMLpiD96e zoVgu$-=elCdY4_D4>=>?i!>c501Op^Xykhpa4GIW4L%`$6a-Pz6^9}rAS_(^`wS%v zglXqKbP`AFx;c`at1(`rSAub?ujq7_h$`@rt?GwT4bwoMK+-&`0#KtiF91t*me>@cb zDJD`)_Q|Pz&;SC>m*LBIP|^*nip-RG;=kYHYW2H=0EcQjQlJNIXAd+fLEG7`wjj;j zB4nVCeYu%QZvl6N^||w5B)Q>u@O#xOYUMvdxP~J6wtmh^d5_Z>o2Y9)yZv{P0Tf2E zMpH}RQ4naJZb%RD6TO}bn0C9S5b8nJ`Q%ScpjgB-)7h3-=8_9dW;1o?Ruh$aB?f;( zzk{aB&O8#*aE^uLkv&0lTC?}QCfpn~wdL!0R%aw`1axvY#q#VGVEj@JJxd}UuP4?< zJc3ldyR;h8x_Et$Vy7+(*VCC9z8m2Z8T0s0>;pu)oH^(NR>{(XW9jF>?xtbch>+ti>D1C}CY{NaOU||OZ5E0~Y zFmj4TMs0wC(?)POLkqn?6M9zc3)MGp_bL)rv1vRfoIMwAzT`f z^adb0uLTL5f#36=0zyRw&N?ubZ#miEM|_+s=XOL>(uCJiZRwCSC^h1%^Rjfh*3om*(FkHegvIFp-fjjgBm70bgyXY-T>ATgmh1qg(~^iDufimkYR6WaAObK8Tv>Pk z!`zgZAD#>x>L|+awhzJxNi(!SHazkQiEn(fGNVLd=o#ay!D`zqwzBf=OH|d2Wlk$q z+~N2mZD^luRtfTQBk_+7n#3@-(9eXrzwK8&L=NtW$!NMMyKGODG2S*r?7*v12t%Z)(rmST{LUaed<#K%c?G^VWwvsV%ARwrtO;e;2jg>D;0Mj_5< zauTaXh;hicP#0o};QTxQ=Z<u;aqQ~aub;MFVk2#Njm@0wh&mmfPz@gPKlna#`hO~a8*M{9(%0v zv^I&m;`cc)mir_V+~AwU*~I5L`~(q2=5EApB2M~ zieeXgc{F_RC4PFt1<#XxzAel1z4FP%P^*l*r`g~*@m z(`Rt;vjOy4BN*v*L$b;8q_>Shbh?SsmoI zdYgInVBWkN=5R)KrCd0iDu7}G;5glfY@>S{*1G{A_@X-$xu?(`HEET@GBQ5TV^W|u zvOO(G4j3~aJFia$&@@&oTKv!D*y4J6*AIQ$W%i3Y9dmVEKs1CqFAa>cFxi4@uT}lO zfx3R`!&IueLc6+mS*fwzRa~e*@o$moW~oU;1wyOP$w9YTU9mH=(LV zBvB0Eq9;1ID&s?4GWE3ZQ4DtN@IIISc6*?x!fc%8UE_)!qF2(HG;yJdG4)IcpPT_@-KjmMJ*SkYG;yL<}jWg9&Vx9i(((3lD6YE1>4q; z$kfrz(6F!PG({vb2BYvk41d>7ST@4|b1g~0GG$X*;vXEG9Tm;+;!|Mo$m)!St=1#* zNPN%v=YAP4H~AZ|Bie-Lh;@&hdg@|{k8ss2z&WAcDrlqNJ6}1Xkk8h=aOU09qY7(* zNZm{vc?DIkkeWFe|I?mqioj5tb#@xkDl%m=WJGyiB~VPAYgXq56ATr{$Dn6LE4+d3e2{5Uq< zjKU38k#jGQp3Cs^Ms!j42st)r@lwgXN_-MJzR)KPkv_8ERvIvqH-yilTyoo-_`X5? z0hh*dx@?h&iBa_JISSI_K zKl0dhf_Y~d$FS-Mc4CqV-at#hj>n6wlXSPpR|h#fcPQdmd(!LpRX>tqERsUuSiT+| z&$Cv4W^pbQ?n>>3BkM&~r?=7gxw=uG*dfRIg|$)vL=}4V!wIC-qDTIcn-~cge}(vT zgRh9O+wmB}t%9ve4yrh6)_sg;es0b|0hB)l`w*xZy}6q6dK0L#Aija(C}8aeLh+sS!gQIGMI9Rh276Nc<}53%4a4^8 z)=C9&)X(2&ZsvAc)hg~39Z2-)jjiL{T$+kq2He+ZVktSTt5}Jtl0J|80xExnkVj+M z%$}{rEA*0)4+uVM#|`611C^LYH#a1qGn_a&Y3vn`8QBh2C|UN{!g@_s43aB2XZuUO zHupR&q7YULLMh%A-Bt@5I*}`}N|eQGlq3ND@?^OA{cR zWFy(Vec+UcBZ;a)IXS-qg{!b=LGogw=Vq(xW#!UkJ)V1ZS*7W^l2*o*N8d>tFhx!s4ryVDW5a z$+a)#{^N*Sb8zpNe#Ld-K}|Yg>GY}V2bNhweN-`FmItr*8%?XOWpTElbbdH~r5jsa zT}4@APwcv?(7mmh@D_1T0WiRR?j+w;otmK~$5Nm!@_tn7$rJ84}=I6t|oYA%!djtGl*Fzn3!Sdm3)j3mZ z=>RRbOX`Q*5~$4upY(ZGJD!h;GXs2KK(*u(cWk5&U$#+NN7yW-9$h&$pmzyH^*5uwY6tD(8tWw4cr{> zhdf53RDqO6?7sZRzo;r->5sM{se8R}7e73%Qv)hqfr>gB=Ofj)(7%R^Zo^2Op*|^q z2M50|#=QgNqR3n$3pzSFq$lM^dO_v7dE{X=UEOpLJpm?)O!86VJa&kjlb6>4|59ex z(1x$xnHI`QPQC-)M0cDN0+L)Ncs$?2oc_w9ZR067pP7mB=)Q;iZt(Y2G~ETTt67kN zEO#P>yc}n{l6Tjy^1S4#1@A>P04*U$4om?#wQdL&=b&+=+GEuW+3wz%@8#*K53;Ku zDwLNi7GA)ck9L{Ywvz23dcx0A*Sb~7VVI%;y%T2R`fgTtmotPJ7`|+cS8V71y(>(F znWu^00#LX;@hERTegSQ-wYZOWN+99!!j-H}tbW6}RMf9j<>(!g9Z=nbg@vVSdlgIm zJ^UV26S707dw6*GWU**$+uhV)M$UEdP>CQzEKOP{+};r5MDBd2o{Ok8c6Q0e7?<8` zd_WX%P@?z#&y*hUeYmCdRL)j|8UBJ=z5hp;C*cI{lcE$~R=S$4Z4PHsv|`->j1%4G zC_eWyHF+1iTN*S+qXXSnZz}up(X3&o z`1(PAd9V|Xs_yywv;`-^m$H6(^*!0Y1++NQfyPf}kkfhzt|U`U-Eelty;`VT&jbjT zZofm0=+41LbFq?8Lzxr2Q>hY`}%>b#fNC6 z%XtZEVvEP;hPMTK@rV&Z8%1Oo@GoOyV*>$-shG(9Y9S1vkYes?E8xY-EH%D%m6Iqdy z_OrlrEn~sF<7}coaeRIzcwQgvQ26;%noNpJh+ElULqo&o=x9>e$&uHKK+~T1w2rB$ ztX$45*H{ayO8MmK0dMRe4|ilFReC)j&|ace?e9%T&`T2qkv` zRZ>FInnBLnlLaKtqgN^u6MvwkuV0^}9jUvJ92FH4cINP9lb2g+xo(mCm)MpmR$2Y> zv$)=@!OBGaCzmon1(|rmt-B1<-!hHR(y043>K`yx4Lk3XlaqZ6qCs>9Vf}9!*@0

IZzMXFd>`b0n1>vVY&USPgw7W%$zAs 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

+
+ + \ No newline at end of file diff --git a/lda_visualization.html b/lda_visualization.html new file mode 100644 index 0000000..62796f9 --- /dev/null +++ b/lda_visualization.html @@ -0,0 +1,41 @@ + + + + +
+ \ No newline at end of file From 87039431e814fbfe87d938cc0cee3994a457b424 Mon Sep 17 00:00:00 2001 From: Navneet Verma Date: Tue, 19 Nov 2024 21:29:18 -0500 Subject: [PATCH 44/61] New updates related to summarization and updates to presentation materials in spreadsheet. --- Model Comparison Summary.xlsx | Bin 229297 -> 303674 bytes conversation_chatbot_main.py | 3 +- summarization_engine.py | 68 ++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/Model Comparison Summary.xlsx b/Model Comparison Summary.xlsx index 7498039540548d5cf1b5660a7280109054bd8faa..cc8e01486456c6089a902c848b2d654990fd5e8b 100644 GIT binary patch delta 79719 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 RQv;;3#ymf)8Av4S1pZf7f7nbOoU}W?B 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 B!=eBH diff --git a/conversation_chatbot_main.py b/conversation_chatbot_main.py index 98f4259..55465a1 100644 --- a/conversation_chatbot_main.py +++ b/conversation_chatbot_main.py @@ -171,7 +171,7 @@ def main(argv): # Provide on-demand summary if session_log: full_text = ' '.join(session_log) - summary = summarization_engine.summarize_text(full_text) + summary = summarization_engine.summarize_text_MMR(question, response) print("\nSummary:") print(summary) else: @@ -181,6 +181,7 @@ def main(argv): continue # Get response from the chatbot + question = user_input response = chatbot.respond_to_query(user_input) print(f"Chatbot: {response}") # Append the interaction to the session log diff --git a/summarization_engine.py b/summarization_engine.py index 037eb9d..e26ce09 100644 --- a/summarization_engine.py +++ b/summarization_engine.py @@ -1,4 +1,5 @@ import logging +from telnetlib import DO from sumy.parsers.plaintext import PlaintextParser from sumy.nlp.tokenizers import Tokenizer from sumy.summarizers.lsa import LsaSummarizer @@ -6,6 +7,10 @@ from sumy.summarizers.lsa import LsaSummarizer from sumy.summarizers.lex_rank import LexRankSummarizer from nltk.corpus import stopwords +from sentence_transformers import SentenceTransformer +from numpy.linalg import norm +import numpy as np +import sys logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) @@ -81,3 +86,66 @@ def summarize_text(self, text): except Exception as e: return f"An error occurred during summarization: {e}" + + def best_cosine_similarity(self, v, v_list): + best_score = 0 + for i in (range(len(v_list))): + score = np.dot(v, v_list[i]) /(norm(v) * norm(v_list[i])) + if (score > best_score): + best_score = score + return best_score + + def summarize_text_MMR(self, question, answer): + """ + Summarizes the input text into a specified number of sentences using maximum + marginal relevance method. + + Args: + text (str): The text to summarize. + + Returns: + str: The summarized text or an error message if input is insufficient. + """ + # Check for empty or whitespace-only input + if not answer.strip(): + return "No content to summarize." + + # Parse the text in individual sentences + answer_sentences = answer.split('. ') + + # Load pretrained Sentence-BERT model. + encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') + + A = encoder.encode(answer_sentences) + q = encoder.encode(question) + + # Run the MMR loop + w = 0.7 + count = 0 + S = [] + S_v = [] + while (count < self.sentence_count): + best_score = -sys.float_info.max + best_index = -1 + for i in (range(len(A))): + score = w * np.dot(q, A[i]) /(norm(q) * norm(A[i])) + score -= (1-w) * self.best_cosine_similarity(A[i], S_v) + if (score > best_score and i not in S): + best_score = score + best_index = i + + S.append(best_index) + S_v.append(A[best_index]) + count += 1 + + # Sort the array + sorted_S = np.sort(S) + + summary = '' + for k in sorted_S: + summary += answer_sentences[k] + '.' + + return summary + + + From 393a499d98aeb0b247514f321f7288babe193122 Mon Sep 17 00:00:00 2001 From: Navneet Verma Date: Wed, 20 Nov 2024 21:56:06 -0500 Subject: [PATCH 45/61] Added NLTK sentence tokenizer for summarization, not perfect, but best bet for now. --- summarization_engine.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/summarization_engine.py b/summarization_engine.py index e26ce09..0fe09e7 100644 --- a/summarization_engine.py +++ b/summarization_engine.py @@ -11,6 +11,8 @@ from numpy.linalg import norm import numpy as np import sys +import nltk +from nltk import sent_tokenize logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) @@ -111,7 +113,7 @@ def summarize_text_MMR(self, question, answer): return "No content to summarize." # Parse the text in individual sentences - answer_sentences = answer.split('. ') + answer_sentences = sent_tokenize(answer) # Load pretrained Sentence-BERT model. encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') @@ -143,7 +145,7 @@ def summarize_text_MMR(self, question, answer): summary = '' for k in sorted_S: - summary += answer_sentences[k] + '.' + summary += answer_sentences[k] return summary From ad6f54efd46af390c9953b568e1083fdc92971d4 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Wed, 20 Nov 2024 22:11:37 -0500 Subject: [PATCH 46/61] Performed a critical clean up many files where outside of folders including Depricated_Files Pipeline md isn't using the current updated formate as modified previously fixed snake case of Model_Comparison filename moved Visuals into respective folder metrics moved into Metrics folder removed protject structure graphql - depricated moved MentalHealthChatbotCodeDocument into Depricated_Files but might revive --- .../MentalHealthChatbotCodeDocument.md | 0 .../test_emotional_response.py | 0 .../test_summarization_engine.py | 0 .../EvalMetrics.xlsx | Bin .../Model Comparison Summary.xlsx | Bin Model_Comparison.py | 57 ++++++---- Pipeline.md | 38 +++---- .../bertopic_visualization.html | 0 .../lda_visualization.html | 0 project-structure.graphql | 104 ------------------ 10 files changed, 53 insertions(+), 146 deletions(-) rename MentalHealthChatbotCodeDocument.md => Depricated_Files/MentalHealthChatbotCodeDocument.md (100%) rename test_emotional_response.py => Depricated_Files/test_emotional_response.py (100%) rename test_summarization_engine.py => Depricated_Files/test_summarization_engine.py (100%) rename EvalMetrics.xlsx => Metrics and Comparisions/EvalMetrics.xlsx (100%) rename Model Comparison Summary.xlsx => Metrics and Comparisions/Model Comparison Summary.xlsx (100%) rename bertopic_visualization.html => Visuals/bertopic_visualization.html (100%) rename lda_visualization.html => Visuals/lda_visualization.html (100%) delete mode 100644 project-structure.graphql diff --git a/MentalHealthChatbotCodeDocument.md b/Depricated_Files/MentalHealthChatbotCodeDocument.md similarity index 100% rename from MentalHealthChatbotCodeDocument.md rename to Depricated_Files/MentalHealthChatbotCodeDocument.md diff --git a/test_emotional_response.py b/Depricated_Files/test_emotional_response.py similarity index 100% rename from test_emotional_response.py rename to Depricated_Files/test_emotional_response.py diff --git a/test_summarization_engine.py b/Depricated_Files/test_summarization_engine.py similarity index 100% rename from test_summarization_engine.py rename to Depricated_Files/test_summarization_engine.py diff --git a/EvalMetrics.xlsx b/Metrics and Comparisions/EvalMetrics.xlsx similarity index 100% rename from EvalMetrics.xlsx rename to Metrics and Comparisions/EvalMetrics.xlsx diff --git a/Model Comparison Summary.xlsx b/Metrics and Comparisions/Model Comparison Summary.xlsx similarity index 100% rename from Model Comparison Summary.xlsx rename to Metrics and Comparisions/Model Comparison Summary.xlsx diff --git a/Model_Comparison.py b/Model_Comparison.py index e842f46..f340f80 100644 --- a/Model_Comparison.py +++ b/Model_Comparison.py @@ -12,8 +12,10 @@ import nltk import pyLDAvis.gensim_models + def Compute_Coherence_BERTopic(): - df = pd.read_json("hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) + df = pd.read_json( + "hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) contexts = df['Context'] @@ -28,7 +30,8 @@ def Compute_Coherence_BERTopic(): fig.write_html("bertopic_visualization.html") # Prepare the documents for Gensim coherence calculation - texts = [doc.split() for doc in contexts] # Split your documents into tokens + # Split your documents into tokens + texts = [doc.split() for doc in contexts] # Create a Gensim Dictionary and Corpus dictionary = Dictionary(texts) @@ -36,19 +39,23 @@ def Compute_Coherence_BERTopic(): # Get topic words topic_words = topic_model.get_topics() - topics = [[word for word, _ in topic_words[topic]] for topic in topic_words] + topics = [[word for word, _ in topic_words[topic]] + for topic in topic_words] - coherence_model = CoherenceModel(topics=topics, texts=texts, dictionary=dictionary, coherence='c_v') + coherence_model = CoherenceModel( + topics=topics, texts=texts, dictionary=dictionary, coherence='c_v') # Get the coherence score coherence_score = coherence_model.get_coherence() print("Coherence Score:", coherence_score) + def Compute_Coherence_LDA(from_n_topics, to_n_topics): # Load pretrained Sentence-BERT model. encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') - df = pd.read_json("hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) + df = pd.read_json( + "hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) contexts = df['Context'].tolist() nltk.download('stopwords') @@ -62,14 +69,17 @@ def Compute_Coherence_LDA(from_n_topics, to_n_topics): processed_questions = [] for context in contexts: tokens = word_tokenize(context.lower()) - base_words = [lemmatizer.lemmatize(token) for token in tokens if token.isalpha()] - filtered_base_words = [word for word in base_words if word not in custom_stop_words] + base_words = [lemmatizer.lemmatize(token) + for token in tokens if token.isalpha()] + filtered_base_words = [ + word for word in base_words if word not in custom_stop_words] processed_questions.append(filtered_base_words) # Create dictionary of processed questions vocabulary = corpora.Dictionary(processed_questions) # Represent each question as bag of words - corpus_bow = [vocabulary.doc2bow(question) for question in processed_questions] + corpus_bow = [vocabulary.doc2bow(question) + for question in processed_questions] # Train the TF-IDF model tfidf = TfidfModel(corpus_bow) @@ -77,23 +87,24 @@ def Compute_Coherence_LDA(from_n_topics, to_n_topics): # Transform the BoW corpus to a TF-IDF corpus corpus_tfidf = tfidf[corpus_bow] - #Model Tuning + # Model Tuning best_model = None best_coherence_score = -1 score_dict = {} for n_topics in range(from_n_topics, to_n_topics): lda_model = LdaModel(corpus_tfidf, - num_topics=n_topics, - id2word=vocabulary, - alpha=0.01, - eta=0.01, - passes=20, - random_state=42 - ) - + num_topics=n_topics, + id2word=vocabulary, + alpha=0.01, + eta=0.01, + passes=20, + random_state=42 + ) + perplexity_score = lda_model.log_perplexity(corpus_tfidf) - - coherence_model_lda = CoherenceModel(model= lda_model, texts=processed_questions, dictionary=vocabulary, coherence='c_v') + + coherence_model_lda = CoherenceModel( + model=lda_model, texts=processed_questions, dictionary=vocabulary, coherence='c_v') coherence_score = coherence_model_lda.get_coherence() if (coherence_score > best_coherence_score): best_coherene_score = coherence_score @@ -104,12 +115,14 @@ def Compute_Coherence_LDA(from_n_topics, to_n_topics): print(score_dict) # Visualize the topics - vis = pyLDAvis.gensim_models.prepare(lda_model, corpus_tfidf, vocabulary) + vis = pyLDAvis.gensim_models.prepare( + lda_model, corpus_tfidf, vocabulary) pyLDAvis.save_html(vis, 'lda_visualization.html') + if __name__ == '__main__': Compute_Coherence_BERTopic() - # Change the from and to range based on requirements. + # Change the from and to range based on requirements. # We already know the best number of topics are 7. - Compute_Coherence_LDA(from_n_topics=7, to_n_topics=8) \ No newline at end of file + Compute_Coherence_LDA(from_n_topics=7, to_n_topics=8) diff --git a/Pipeline.md b/Pipeline.md index 73d806f..eaa87b1 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -1,4 +1,4 @@ -# Datasets used for Mental Health Chatbot. +# Datasets used for Mental Health Chatbot A. data/Mental_Health_FAQ.csv for informational response B. Build a conversation graph by selecting some conversations. There is a lot in this dataset and we may need to curate this data. @@ -38,8 +38,8 @@ Pipeline of Mental Health Chatbot. 5. Build emotion graph based on dataset B. The graph is a network X graph which chat bot navigates. For example, let us say chatbot detects user wants to discuss their addiction issues. Then chatbot figures out the apppropriate topic and pick the best conversation for that topic. - -7. We will use similarity based node matching to produce a response. + +6. We will use similarity based node matching to produce a response. The canned response file is the mental health FAQ file. @@ -51,7 +51,8 @@ So we need to add df_B dataframe to get this data. Using conversation graph is better than producing canned responses. -# How Anchor works? +## How Anchor works? + Anchor uses a model based on topic understanding and information rerieval. 1. The user submits a query. @@ -63,6 +64,7 @@ Anchor uses a model based on topic understanding and information rerieval. 7. Each response will sent to a summarization engine which will produce a compact response. ## Summarization Engine + 1. Divide the long response in sentences delimited by "." character. 2. Encode user query and each sentence with SentenceTransformer encoder. This step is called vectorization of sentences. 3. Compute the cosine similarity for each sentence and query using numpy dot and norm functions. An example is given here: @@ -73,14 +75,14 @@ Anchor uses a model based on topic understanding and information rerieval. Initialization: Choose the sentence with the highest similarity to query. This is most relevant sentence in the summary. Summary = {S0} -Choose a parameter lambda = 0.7 # Weighting parameter -k = 3 # Top k sentences + Choose a parameter lambda = 0.7 # Weighting parameter + k = 3 # Top k sentences -4.1 Loop until top k sentences have been selected. -4.2. Calculate the relevance of a sentence not currently in the summary set using the formula: - MMR = lambda * Cosine Similarity(Q, S) - (1- lambda) * Highest Cosine Similarity to already existing sentences in the summary. - Choose the sentence with maximum MMR score and add to the summary. -4.3 Go back to 4.1 + 4.1 Loop until top k sentences have been selected. + 4.2. Calculate the relevance of a sentence not currently in the summary set using the formula: + MMR = lambda *Cosine Similarity(Q, S) - (1- lambda)* Highest Cosine Similarity to already existing sentences in the summary. + Choose the sentence with maximum MMR score and add to the summary. + 4.3 Go back to 4.1 5. Information Ordering: Order the sentences in the summary by their original ordering. For example, we get the following summary set: Summary = {S0, S3, S5} @@ -88,18 +90,14 @@ k = 3 # Top k sentences But the original ordering in the text was S3, S0 and then S5, then our summary would in the original order. <=== Our novelty ## Model Performance -We evaluated two performance metrics, Model coherence and Model Perplexity. Model coherence indicates the coherence of topic words in the LDA model. -The best coherence metric of 0.45 was obtained when number of topics were set to 7. + +We evaluated two performance metrics, Model coherence and Model Perplexity. Model coherence indicates the coherence of topic words in the LDA model. +The best coherence metric of 0.45 was obtained when number of topics were set to 7. The coherence metric of 0.45 indicates that topics are well formed, although there is a room for improvement. -The perplexity metric indicates how good the natural language model is in its predictions/ In the context of Latent Dirichlet Allocation (LDA), perplexity is a measure of how well the model fits the given set of documents, similar to how it's used in language models. Specifically, for LDA, perplexity quantifies how "surprised" the model is by the words in a held-out test set of documents, based on the topics it learned during training. +The perplexity metric indicates how good the natural language model is in its predictions/ In the context of Latent Dirichlet Allocation (LDA), perplexity is a measure of how well the model fits the given set of documents, similar to how it's used in language models. Specifically, for LDA, perplexity quantifies how "surprised" the model is by the words in a held-out test set of documents, based on the topics it learned during training. We obtained moderately good values for log perplexity in the range of [-8, -9] - For LDA, a lower (more negative) log perplexity generally suggests better model fit to the data. If the LDA model achieves a very negative log-perplexity score and good topic coherence, it may be better at representing specific topics or contextually relevant topics for the data. -Comparing the model with hugging face model : [mental-health-mistral-7b-instructv0.2-finetuned-V2] (https://huggingface.co/GRMenon/mental-health-mistral-7b-instructv0.2-finetuned-V2) - - - - +Comparing the model with hugging face model : [mental-health-mistral-7b-instructv0.2-finetuned-V2] () diff --git a/bertopic_visualization.html b/Visuals/bertopic_visualization.html similarity index 100% rename from bertopic_visualization.html rename to Visuals/bertopic_visualization.html diff --git a/lda_visualization.html b/Visuals/lda_visualization.html similarity index 100% rename from lda_visualization.html rename to Visuals/lda_visualization.html diff --git a/project-structure.graphql b/project-structure.graphql deleted file mode 100644 index 79bc16f..0000000 --- a/project-structure.graphql +++ /dev/null @@ -1,104 +0,0 @@ -type Project { - name: String! - rootDirectory: Directory! -} - -type Directory { - name: String! - path: String! - contents: [FileSystemNode!]! -} - -type File { - name: String! - path: String! - description: String - type: FileType! -} - -interface FileSystemNode { - name: String! - path: String! -} - -type DataDirectory implements FileSystemNode { - name: String! - path: String! - datasets: [Dataset!]! -} - -type EmpatheticDialoguesDirectory implements FileSystemNode { - name: String! - path: String! - files: [Dataset!]! -} - -type Dataset implements FileSystemNode { - name: String! - path: String! - description: String - format: String! -} - -type SourceFile implements FileSystemNode { - name: String! - path: String! - description: String! - language: String! -} - -enum FileType { - PYTHON_SOURCE - CSV_DATA - DOCUMENTATION - REQUIREMENTS -} - -# Example Query -type Query { - project: Project! -} - -# Example Data -""" -{ - project { - name: "mental_health_chatbot" - rootDirectory: { - name: "mental_health_chatbot" - contents: [ - { - name: "main.py" - type: PYTHON_SOURCE - description: "Entry point of the application" - }, - { - name: "chatbot.py" - type: PYTHON_SOURCE - description: "Contains the MentalHealthChatbot class" - }, - { - name: "utils.py" - type: PYTHON_SOURCE - description: "Utility functions" - }, - { - name: "data" - datasets: [ - { - name: "Mental_Health_FAQ.csv" - format: "CSV" - description: "FAQ dataset for informational queries" - }, - { - name: "canned_responses.csv" - format: "CSV" - description: "Pre-defined responses for the chatbot" - } - ] - } - ] - } - } -} -""" \ No newline at end of file From 913bd686f55e26740183a0bee5ed5699e0288776 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Wed, 20 Nov 2024 22:15:46 -0500 Subject: [PATCH 47/61] Brought in V2 sum engine, as it was more feature rich --- summarization_engine_V2.py | 254 +++++++++++++++++++++++++++++++++++++ 1 file changed, 254 insertions(+) create mode 100644 summarization_engine_V2.py diff --git a/summarization_engine_V2.py b/summarization_engine_V2.py new file mode 100644 index 0000000..03e5934 --- /dev/null +++ b/summarization_engine_V2.py @@ -0,0 +1,254 @@ +import numpy as np +from sentence_transformers import SentenceTransformer +from typing import List, Dict, Tuple +import logging + +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + + +class EnhancedSummarizationEngine: + """ + Enhanced summarization engine using sentence transformers and MMR algorithm + for query-focused summarization with better semantic understanding. + """ + + def __init__( + self, + model_name: str = 'paraphrase-MiniLM-L6-v2', + lambda_param: float = 0.7, + top_k: int = 3, + device: str = None + ): + """ + Initialize the summarization engine. + + Args: + model_name: Name of the sentence transformer model to use + lambda_param: Weight parameter for MMR algorithm (0 to 1) + top_k: Number of sentences to include in summary + device: Device to run the model on ('cuda' or 'cpu') + """ + self.device = device + self.encoder = SentenceTransformer(model_name, device=device) + self.lambda_param = lambda_param + self.top_k = top_k + + def _split_into_sentences(self, text: str) -> List[str]: + """ + Split text into sentences using period as delimiter while handling + common abbreviations and edge cases. + """ + # Handle common abbreviations to avoid incorrect splitting + text = text.replace("Mr.", "Mr") + text = text.replace("Mrs.", "Mrs") + text = text.replace("Dr.", "Dr") + text = text.replace("Ph.D.", "PhD") + text = text.replace("e.g.", "eg") + text = text.replace("i.e.", "ie") + + # Split by period and restore them + sentences = [s.strip() + "." for s in text.split(".") if s.strip()] + return sentences + + def _vectorize_sentences( + self, + sentences: List[str], + query: str = None + ) -> Tuple[np.ndarray, np.ndarray]: + """ + Encode sentences and query using the sentence transformer. + + Args: + sentences: List of sentences to encode + query: Optional query to encode + + Returns: + Tuple of sentence embeddings and query embedding (if provided) + """ + sentence_embeddings = self.encoder.encode( + sentences, + convert_to_tensor=True, + show_progress_bar=False + ).cpu().numpy() + + if query: + query_embedding = self.encoder.encode( + query, + convert_to_tensor=True, + show_progress_bar=False + ).cpu().numpy() + return sentence_embeddings, query_embedding + + return sentence_embeddings, None + + def _compute_similarities( + self, + query_embedding: np.ndarray, + sentence_embeddings: np.ndarray + ) -> np.ndarray: + """ + Compute cosine similarities between query and sentences. + """ + # Compute dot product + dot_product = np.dot(query_embedding, sentence_embeddings.T) + + # Compute norms + query_norm = np.linalg.norm(query_embedding) + sentence_norms = np.linalg.norm(sentence_embeddings, axis=1) + + # Compute cosine similarity + similarities = dot_product / (query_norm * sentence_norms) + return similarities + + def _select_mmr_sentences( + self, + similarities: np.ndarray, + sentence_embeddings: np.ndarray, + n_sentences: int + ) -> List[int]: + """ + Select sentences using Maximal Marginal Relevance algorithm. + + Args: + similarities: Cosine similarities between query and sentences + sentence_embeddings: Encoded sentences + n_sentences: Number of sentences to select + + Returns: + List of selected sentence indices + """ + selected_indices = [] + unselected_indices = list(range(len(similarities))) + + # Select the first sentence with highest similarity to query + first_idx = np.argmax(similarities) + selected_indices.append(first_idx) + unselected_indices.remove(first_idx) + + # Select remaining sentences using MMR + while len(selected_indices) < n_sentences and unselected_indices: + mmr_scores = [] + + for idx in unselected_indices: + # Compute similarity to query + query_sim = similarities[idx] + + # Compute similarities to selected sentences + selected_embeddings = sentence_embeddings[selected_indices] + current_embedding = sentence_embeddings[idx].reshape(1, -1) + redundancy_sims = self._compute_similarities( + current_embedding, + selected_embeddings + ) + max_redundancy = np.max(redundancy_sims) + + # Compute MMR score + mmr = self.lambda_param * query_sim - \ + (1 - self.lambda_param) * max_redundancy + mmr_scores.append(mmr) + + # Select sentence with highest MMR score + next_idx = unselected_indices[np.argmax(mmr_scores)] + selected_indices.append(next_idx) + unselected_indices.remove(next_idx) + + return selected_indices + + def summarize( + self, + text: str, + query: str = None, + custom_k: int = None + ) -> Dict[str, any]: + """ + Generate a query-focused summary of the input text. + + Args: + text: Input text to summarize + query: Optional query to focus the summary + custom_k: Optional override for number of sentences + + Returns: + Dictionary containing summary and metadata + """ + try: + # Split text into sentences + sentences = self._split_into_sentences(text) + if len(sentences) == 0: + return { + "summary": "", + "error": "No valid sentences found in input text." + } + + # Use default query if none provided + if not query: + query = "What is the main point of this text?" + + # Vectorize sentences and query + sentence_embeddings, query_embedding = self._vectorize_sentences( + sentences, + query + ) + + # Compute similarities + similarities = self._compute_similarities( + query_embedding, + sentence_embeddings + ) + + # Select top sentences using MMR + k = custom_k if custom_k is not None else self.top_k + # Ensure k doesn't exceed sentence count + k = min(k, len(sentences)) + selected_indices = self._select_mmr_sentences( + similarities, + sentence_embeddings, + k + ) + + # Order sentences by original position + selected_indices.sort() + summary_sentences = [sentences[idx] for idx in selected_indices] + + # Combine sentences into final summary + summary = " ".join(summary_sentences) + + return { + "summary": summary, + "original_sentences": len(sentences), + "selected_sentences": len(summary_sentences), + "selected_indices": selected_indices, + "similarity_scores": similarities[selected_indices].tolist() + } + + except Exception as e: + logger.error(f"Error during summarization: {str(e)}") + return { + "summary": "", + "error": f"Summarization failed: {str(e)}" + } + + def update_parameters( + self, + lambda_param: float = None, + top_k: int = None + ) -> None: + """ + Update the engine's parameters. + + Args: + lambda_param: New lambda parameter for MMR + top_k: New number of sentences for summary + """ + if lambda_param is not None: + if 0 <= lambda_param <= 1: + self.lambda_param = lambda_param + else: + raise ValueError("lambda_param must be between 0 and 1") + + if top_k is not None: + if top_k > 0: + self.top_k = top_k + else: + raise ValueError("top_k must be greater than 0") From 9e75af78c7a2809193b90ddd477343ae8b747921 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Tue, 12 Nov 2024 15:35:08 -0500 Subject: [PATCH 48/61] Enhanced summarization engine that implements the MMR-based. Here are the key improvements and features: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sentence Transformer Integration: Uses the sentence-transformers library for high-quality sentence embeddings Configurable model selection (defaults to 'paraphrase-MiniLM-L6-v2') GPU support through device parameter MMR Algorithm Implementation: Implements Maximal Marginal Relevance as specified Configurable λ parameter (default 0.7) Balances relevance to query with diversity in selected sentences Enhanced Sentence Processing: Improved sentence splitting with abbreviation handling Maintains sentence ordering as specified Returns original indices for traceability Rich Output: Returns detailed metadata about the summarization process Includes similarity scores and selected indices Error handling with informative messages --- Pipeline.md | 15 +- conversation_chatbot_main.py | 70 +++++-- summarization_engine.py | 351 ++++++++++++++++++++++------------- 3 files changed, 291 insertions(+), 145 deletions(-) diff --git a/Pipeline.md b/Pipeline.md index eaa87b1..3daf8e9 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -78,11 +78,16 @@ Summary = {S0} Choose a parameter lambda = 0.7 # Weighting parameter k = 3 # Top k sentences - 4.1 Loop until top k sentences have been selected. - 4.2. Calculate the relevance of a sentence not currently in the summary set using the formula: - MMR = lambda *Cosine Similarity(Q, S) - (1- lambda)* Highest Cosine Similarity to already existing sentences in the summary. - Choose the sentence with maximum MMR score and add to the summary. - 4.3 Go back to 4.1 +* 4.1 Loop until top k sentences have been selected. +* 4.2 Calculate the relevance of a sentence not currently in the summary set using, `Maximal Marginal Relevance` (**MMR**) with the formula: + + ```math + MMR = lambda *Cosine Similarity(Q, S) - (1- lambda)* Highest Cosine Similarity to already existing + ``` + +* 4.2.1 sentences in the summary. + Choose the sentence with maximum MMR score and add to the summary. +* 4.3 Go back to 4.1 5. Information Ordering: Order the sentences in the summary by their original ordering. For example, we get the following summary set: Summary = {S0, S3, S5} diff --git a/conversation_chatbot_main.py b/conversation_chatbot_main.py index 55465a1..cde6059 100644 --- a/conversation_chatbot_main.py +++ b/conversation_chatbot_main.py @@ -39,7 +39,7 @@ """ from absl import app, flags from mental_health_chatbot import MentalHealthChatbot -from summarization_engine import SummarizationEngine +from summarization_engine import EnhancedSummarizationEngine import torch import logging import subprocess @@ -58,6 +58,22 @@ 'Path to the mental health counseling conversations dataset') flags.DEFINE_float('test_size', 0.3, 'Test set size as a fraction') flags.DEFINE_integer('random_state', 42, 'Random seed for reproducibility') +# Add new flags for summarization engine +flags.DEFINE_string( + 'sentence_transformer_model', + 'paraphrase-MiniLM-L6-v2', + 'Model name for sentence transformer' +) +flags.DEFINE_float( + 'summarization_lambda', + 0.7, + 'Lambda parameter for MMR summarization' +) +flags.DEFINE_integer( + 'summary_sentences', + 3, + 'Number of sentences in summary' +) # Set up logging logger = logging.getLogger(__name__) @@ -114,12 +130,10 @@ def get_best_available_device(min_memory_required=4.0): def main(argv): """ Runs the interactive loop for the Mental Health Chatbot. - - The chatbot processes user input and categorizes it into informational or emotional types. """ device = get_best_available_device(min_memory_required=4.0) - # Ensure that model loads properly on the selected device + # Initialize chatbot with selected device try: chatbot = MentalHealthChatbot( faq_data_path=FLAGS.faq_data_path, @@ -132,16 +146,24 @@ def main(argv): except torch.OutOfMemoryError: logger.error( "\n!!\nOut of memory on all selected devices. \n!!\nRetrying on CPU.") - device = torch.device('cpu') + device = 'cpu' chatbot = MentalHealthChatbot( faq_data_path=FLAGS.faq_data_path, conversations_data_path=FLAGS.conversations_data_path, test_size=FLAGS.test_size, random_state=FLAGS.random_state, sentence_encoder=FLAGS.sentence_encoder, - device=device + device=torch.device(device) ) + # Initialize the enhanced summarization engine with the same device + summarization_engine = EnhancedSummarizationEngine( + model_name=FLAGS.sentence_transformer_model, + lambda_param=FLAGS.summarization_lambda, + top_k=FLAGS.summary_sentences, + device=device + ) + # Load data and train models chatbot.load_data() chatbot.preprocess_data() @@ -149,53 +171,71 @@ def main(argv): chatbot.build_knn_classifier() # Start the interactive loop - summarization_engine = SummarizationEngine() session_log = [] print("\n\nWelcome to the Mental Health Chatbot. \n\nType 'exit', 'quit', 'q', 'x', or press 'Ctrl+C' to quit.") print("Type 'summarize' at any time to get a summary of the conversation so far.\n") + try: while True: user_input = input("You: ") + # Check for exit commands if user_input.lower() in ['exit', 'quit', 'q', 'x', 'e']: print("Chatbot: Take care!") # Provide summary at the end of the session if session_log: full_text = ' '.join(session_log) - summary = summarization_engine.summarize_text(full_text) + summary_result = summarization_engine.summarize( + full_text, + query="What were the main points discussed in this conversation?" + ) print("\nSession Summary:") - print(summary) + print(summary_result['summary']) break + elif user_input.lower() == 'summarize': # Provide on-demand summary if session_log: full_text = ' '.join(session_log) - summary = summarization_engine.summarize_text_MMR(question, response) + summary_result = summarization_engine.summarize( + full_text, + query="What were the key points in our recent discussion?" + ) print("\nSummary:") - print(summary) + print(summary_result['summary']) + # Optionally show metadata for debugging + if logger.level == logging.DEBUG: + print("\nDebug Info:") + print( + f"Original sentences: {summary_result['original_sentences']}") + print( + f"Selected sentences: {summary_result['selected_sentences']}") else: print("\nNo conversation history to summarize yet.") continue - elif (len(user_input) == 0): - continue # Get response from the chatbot question = user_input response = chatbot.respond_to_query(user_input) print(f"Chatbot: {response}") + # Append the interaction to the session log session_log.append(f"You: {user_input}") session_log.append(f"Chatbot: {response}") + except KeyboardInterrupt: # Graceful exit on Ctrl+C print("\n\nChatbot: Exiting. \nTake care!\n\n") # Provide summary at the end of the session if session_log: full_text = ' '.join(session_log) - summary = summarization_engine.summarize_text(full_text) + summary_result = summarization_engine.summarize( + full_text, + query="What were the main points discussed in this conversation?" + ) print("\nSession Summary:") - print(summary) + print(summary_result['summary']) if __name__ == '__main__': diff --git a/summarization_engine.py b/summarization_engine.py index 0fe09e7..03e5934 100644 --- a/summarization_engine.py +++ b/summarization_engine.py @@ -1,153 +1,254 @@ -import logging -from telnetlib import DO -from sumy.parsers.plaintext import PlaintextParser -from sumy.nlp.tokenizers import Tokenizer -from sumy.summarizers.lsa import LsaSummarizer -from sumy.summarizers.text_rank import TextRankSummarizer -from sumy.summarizers.lsa import LsaSummarizer -from sumy.summarizers.lex_rank import LexRankSummarizer -from nltk.corpus import stopwords -from sentence_transformers import SentenceTransformer -from numpy.linalg import norm import numpy as np -import sys -import nltk -from nltk import sent_tokenize +from sentence_transformers import SentenceTransformer +from typing import List, Dict, Tuple +import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) -class SummarizationEngine: - def __init__(self, language='english', sentence_count=2, algorithm='lsa', **kwargs): - self.language = language - self.sentence_count = sentence_count - self.summarizer = self._select_algorithm(algorithm) - # Pass kwargs to algorithm if applicable (e.g., topic number for LSA). - for param, value in kwargs.items(): - if hasattr(self.summarizer, param): - setattr(self.summarizer, param, value) - - def _select_algorithm(self, algorithm): - if algorithm == 'text_rank': - return TextRankSummarizer() - elif algorithm == 'lex_rank': - return LexRankSummarizer() - else: - return LsaSummarizer() # Default to LSA - - def preprocess_text(text): - # Remove stopwords or unwanted characters if needed. - stop_words = set(stopwords.words('english')) - return ' '.join([word for word in text.split() if word.lower() not in stop_words]) - - def summarize_preview(self, text): - """ - Provides a preview of the summary (e.g., first sentence only). - """ - summary = self.summarize_text(text) - return summary.split('. ')[0] + '.' if summary else "No preview available." +class EnhancedSummarizationEngine: + """ + Enhanced summarization engine using sentence transformers and MMR algorithm + for query-focused summarization with better semantic understanding. + """ - def set_sentence_count(self, count): + def __init__( + self, + model_name: str = 'paraphrase-MiniLM-L6-v2', + lambda_param: float = 0.7, + top_k: int = 3, + device: str = None + ): """ - Sets the number of sentences to be used in the summary. + Initialize the summarization engine. Args: - count (int): The new number of sentences. + model_name: Name of the sentence transformer model to use + lambda_param: Weight parameter for MMR algorithm (0 to 1) + top_k: Number of sentences to include in summary + device: Device to run the model on ('cuda' or 'cpu') """ - self.sentence_count = count + self.device = device + self.encoder = SentenceTransformer(model_name, device=device) + self.lambda_param = lambda_param + self.top_k = top_k - def summarize_text(self, text): + def _split_into_sentences(self, text: str) -> List[str]: + """ + Split text into sentences using period as delimiter while handling + common abbreviations and edge cases. + """ + # Handle common abbreviations to avoid incorrect splitting + text = text.replace("Mr.", "Mr") + text = text.replace("Mrs.", "Mrs") + text = text.replace("Dr.", "Dr") + text = text.replace("Ph.D.", "PhD") + text = text.replace("e.g.", "eg") + text = text.replace("i.e.", "ie") + + # Split by period and restore them + sentences = [s.strip() + "." for s in text.split(".") if s.strip()] + return sentences + + def _vectorize_sentences( + self, + sentences: List[str], + query: str = None + ) -> Tuple[np.ndarray, np.ndarray]: """ - Summarizes the input text into a specified number of sentences. + Encode sentences and query using the sentence transformer. Args: - text (str): The text to summarize. + sentences: List of sentences to encode + query: Optional query to encode Returns: - str: The summarized text or an error message if input is insufficient. + Tuple of sentence embeddings and query embedding (if provided) """ - # Check for empty or whitespace-only input - if not text.strip(): - return "No content to summarize." - - try: - # Parse the input text - parser = PlaintextParser.from_string( - text, Tokenizer(self.language)) - - # Check if text has enough sentences for summarization - if len(text.split('. ')) < self.sentence_count: - return "Input text is too short to generate a meaningful summary." - - # Perform summarization - summary = self.summarizer(parser.document, self.sentence_count) - - # Join sentences to form the summary - return ' '.join(str(sentence) for sentence in summary) - - except Exception as e: - return f"An error occurred during summarization: {e}" - - def best_cosine_similarity(self, v, v_list): - best_score = 0 - for i in (range(len(v_list))): - score = np.dot(v, v_list[i]) /(norm(v) * norm(v_list[i])) - if (score > best_score): - best_score = score - return best_score - - def summarize_text_MMR(self, question, answer): + sentence_embeddings = self.encoder.encode( + sentences, + convert_to_tensor=True, + show_progress_bar=False + ).cpu().numpy() + + if query: + query_embedding = self.encoder.encode( + query, + convert_to_tensor=True, + show_progress_bar=False + ).cpu().numpy() + return sentence_embeddings, query_embedding + + return sentence_embeddings, None + + def _compute_similarities( + self, + query_embedding: np.ndarray, + sentence_embeddings: np.ndarray + ) -> np.ndarray: + """ + Compute cosine similarities between query and sentences. """ - Summarizes the input text into a specified number of sentences using maximum - marginal relevance method. + # Compute dot product + dot_product = np.dot(query_embedding, sentence_embeddings.T) + + # Compute norms + query_norm = np.linalg.norm(query_embedding) + sentence_norms = np.linalg.norm(sentence_embeddings, axis=1) + + # Compute cosine similarity + similarities = dot_product / (query_norm * sentence_norms) + return similarities + + def _select_mmr_sentences( + self, + similarities: np.ndarray, + sentence_embeddings: np.ndarray, + n_sentences: int + ) -> List[int]: + """ + Select sentences using Maximal Marginal Relevance algorithm. Args: - text (str): The text to summarize. + similarities: Cosine similarities between query and sentences + sentence_embeddings: Encoded sentences + n_sentences: Number of sentences to select Returns: - str: The summarized text or an error message if input is insufficient. + List of selected sentence indices """ - # Check for empty or whitespace-only input - if not answer.strip(): - return "No content to summarize." - - # Parse the text in individual sentences - answer_sentences = sent_tokenize(answer) - - # Load pretrained Sentence-BERT model. - encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') - - A = encoder.encode(answer_sentences) - q = encoder.encode(question) - - # Run the MMR loop - w = 0.7 - count = 0 - S = [] - S_v = [] - while (count < self.sentence_count): - best_score = -sys.float_info.max - best_index = -1 - for i in (range(len(A))): - score = w * np.dot(q, A[i]) /(norm(q) * norm(A[i])) - score -= (1-w) * self.best_cosine_similarity(A[i], S_v) - if (score > best_score and i not in S): - best_score = score - best_index = i - - S.append(best_index) - S_v.append(A[best_index]) - count += 1 - - # Sort the array - sorted_S = np.sort(S) + selected_indices = [] + unselected_indices = list(range(len(similarities))) + + # Select the first sentence with highest similarity to query + first_idx = np.argmax(similarities) + selected_indices.append(first_idx) + unselected_indices.remove(first_idx) + + # Select remaining sentences using MMR + while len(selected_indices) < n_sentences and unselected_indices: + mmr_scores = [] + + for idx in unselected_indices: + # Compute similarity to query + query_sim = similarities[idx] + + # Compute similarities to selected sentences + selected_embeddings = sentence_embeddings[selected_indices] + current_embedding = sentence_embeddings[idx].reshape(1, -1) + redundancy_sims = self._compute_similarities( + current_embedding, + selected_embeddings + ) + max_redundancy = np.max(redundancy_sims) + + # Compute MMR score + mmr = self.lambda_param * query_sim - \ + (1 - self.lambda_param) * max_redundancy + mmr_scores.append(mmr) + + # Select sentence with highest MMR score + next_idx = unselected_indices[np.argmax(mmr_scores)] + selected_indices.append(next_idx) + unselected_indices.remove(next_idx) + + return selected_indices + + def summarize( + self, + text: str, + query: str = None, + custom_k: int = None + ) -> Dict[str, any]: + """ + Generate a query-focused summary of the input text. - summary = '' - for k in sorted_S: - summary += answer_sentences[k] + Args: + text: Input text to summarize + query: Optional query to focus the summary + custom_k: Optional override for number of sentences - return summary + Returns: + Dictionary containing summary and metadata + """ + try: + # Split text into sentences + sentences = self._split_into_sentences(text) + if len(sentences) == 0: + return { + "summary": "", + "error": "No valid sentences found in input text." + } + + # Use default query if none provided + if not query: + query = "What is the main point of this text?" + + # Vectorize sentences and query + sentence_embeddings, query_embedding = self._vectorize_sentences( + sentences, + query + ) + + # Compute similarities + similarities = self._compute_similarities( + query_embedding, + sentence_embeddings + ) + + # Select top sentences using MMR + k = custom_k if custom_k is not None else self.top_k + # Ensure k doesn't exceed sentence count + k = min(k, len(sentences)) + selected_indices = self._select_mmr_sentences( + similarities, + sentence_embeddings, + k + ) + + # Order sentences by original position + selected_indices.sort() + summary_sentences = [sentences[idx] for idx in selected_indices] + + # Combine sentences into final summary + summary = " ".join(summary_sentences) + + return { + "summary": summary, + "original_sentences": len(sentences), + "selected_sentences": len(summary_sentences), + "selected_indices": selected_indices, + "similarity_scores": similarities[selected_indices].tolist() + } - + except Exception as e: + logger.error(f"Error during summarization: {str(e)}") + return { + "summary": "", + "error": f"Summarization failed: {str(e)}" + } + + def update_parameters( + self, + lambda_param: float = None, + top_k: int = None + ) -> None: + """ + Update the engine's parameters. + Args: + lambda_param: New lambda parameter for MMR + top_k: New number of sentences for summary + """ + if lambda_param is not None: + if 0 <= lambda_param <= 1: + self.lambda_param = lambda_param + else: + raise ValueError("lambda_param must be between 0 and 1") + + if top_k is not None: + if top_k > 0: + self.top_k = top_k + else: + raise ValueError("top_k must be greater than 0") From 1865fcb8fe97bdc2d3e52089c9bcb921bfd32072 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Wed, 20 Nov 2024 22:37:47 -0500 Subject: [PATCH 49/61] Fixed Pipeline md format --- Pipeline.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Pipeline.md b/Pipeline.md index 3daf8e9..e749c25 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -78,16 +78,16 @@ Summary = {S0} Choose a parameter lambda = 0.7 # Weighting parameter k = 3 # Top k sentences -* 4.1 Loop until top k sentences have been selected. -* 4.2 Calculate the relevance of a sentence not currently in the summary set using, `Maximal Marginal Relevance` (**MMR**) with the formula: + * 4.1 Loop until top k sentences have been selected. + * 4.2 Calculate the relevance of a sentence not currently in the summary set using, `Maximal Marginal Relevance` (**MMR**) with the formula: - ```math - MMR = lambda *Cosine Similarity(Q, S) - (1- lambda)* Highest Cosine Similarity to already existing - ``` + ```math + MMR = lambda *Cosine Similarity(Q, S) - (1- lambda)* Highest Cosine Similarity to already existing + ``` -* 4.2.1 sentences in the summary. - Choose the sentence with maximum MMR score and add to the summary. -* 4.3 Go back to 4.1 + * 4.2.1 sentences in the summary. + Choose the sentence with maximum MMR score and add to the summary. + * 4.3 Go back to 4.1 5. Information Ordering: Order the sentences in the summary by their original ordering. For example, we get the following summary set: Summary = {S0, S3, S5} From a59eb91ee782d98296e638121764ddaac663b669 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Wed, 20 Nov 2024 22:46:33 -0500 Subject: [PATCH 50/61] completed merge summarization_engine_V2 was appart of a cherry-pick from another branch, fishing the merge with a removal. --- summarization_engine_V2.py | 254 ------------------------------------- 1 file changed, 254 deletions(-) delete mode 100644 summarization_engine_V2.py diff --git a/summarization_engine_V2.py b/summarization_engine_V2.py deleted file mode 100644 index 03e5934..0000000 --- a/summarization_engine_V2.py +++ /dev/null @@ -1,254 +0,0 @@ -import numpy as np -from sentence_transformers import SentenceTransformer -from typing import List, Dict, Tuple -import logging - -logging.basicConfig(level=logging.INFO) -logger = logging.getLogger(__name__) - - -class EnhancedSummarizationEngine: - """ - Enhanced summarization engine using sentence transformers and MMR algorithm - for query-focused summarization with better semantic understanding. - """ - - def __init__( - self, - model_name: str = 'paraphrase-MiniLM-L6-v2', - lambda_param: float = 0.7, - top_k: int = 3, - device: str = None - ): - """ - Initialize the summarization engine. - - Args: - model_name: Name of the sentence transformer model to use - lambda_param: Weight parameter for MMR algorithm (0 to 1) - top_k: Number of sentences to include in summary - device: Device to run the model on ('cuda' or 'cpu') - """ - self.device = device - self.encoder = SentenceTransformer(model_name, device=device) - self.lambda_param = lambda_param - self.top_k = top_k - - def _split_into_sentences(self, text: str) -> List[str]: - """ - Split text into sentences using period as delimiter while handling - common abbreviations and edge cases. - """ - # Handle common abbreviations to avoid incorrect splitting - text = text.replace("Mr.", "Mr") - text = text.replace("Mrs.", "Mrs") - text = text.replace("Dr.", "Dr") - text = text.replace("Ph.D.", "PhD") - text = text.replace("e.g.", "eg") - text = text.replace("i.e.", "ie") - - # Split by period and restore them - sentences = [s.strip() + "." for s in text.split(".") if s.strip()] - return sentences - - def _vectorize_sentences( - self, - sentences: List[str], - query: str = None - ) -> Tuple[np.ndarray, np.ndarray]: - """ - Encode sentences and query using the sentence transformer. - - Args: - sentences: List of sentences to encode - query: Optional query to encode - - Returns: - Tuple of sentence embeddings and query embedding (if provided) - """ - sentence_embeddings = self.encoder.encode( - sentences, - convert_to_tensor=True, - show_progress_bar=False - ).cpu().numpy() - - if query: - query_embedding = self.encoder.encode( - query, - convert_to_tensor=True, - show_progress_bar=False - ).cpu().numpy() - return sentence_embeddings, query_embedding - - return sentence_embeddings, None - - def _compute_similarities( - self, - query_embedding: np.ndarray, - sentence_embeddings: np.ndarray - ) -> np.ndarray: - """ - Compute cosine similarities between query and sentences. - """ - # Compute dot product - dot_product = np.dot(query_embedding, sentence_embeddings.T) - - # Compute norms - query_norm = np.linalg.norm(query_embedding) - sentence_norms = np.linalg.norm(sentence_embeddings, axis=1) - - # Compute cosine similarity - similarities = dot_product / (query_norm * sentence_norms) - return similarities - - def _select_mmr_sentences( - self, - similarities: np.ndarray, - sentence_embeddings: np.ndarray, - n_sentences: int - ) -> List[int]: - """ - Select sentences using Maximal Marginal Relevance algorithm. - - Args: - similarities: Cosine similarities between query and sentences - sentence_embeddings: Encoded sentences - n_sentences: Number of sentences to select - - Returns: - List of selected sentence indices - """ - selected_indices = [] - unselected_indices = list(range(len(similarities))) - - # Select the first sentence with highest similarity to query - first_idx = np.argmax(similarities) - selected_indices.append(first_idx) - unselected_indices.remove(first_idx) - - # Select remaining sentences using MMR - while len(selected_indices) < n_sentences and unselected_indices: - mmr_scores = [] - - for idx in unselected_indices: - # Compute similarity to query - query_sim = similarities[idx] - - # Compute similarities to selected sentences - selected_embeddings = sentence_embeddings[selected_indices] - current_embedding = sentence_embeddings[idx].reshape(1, -1) - redundancy_sims = self._compute_similarities( - current_embedding, - selected_embeddings - ) - max_redundancy = np.max(redundancy_sims) - - # Compute MMR score - mmr = self.lambda_param * query_sim - \ - (1 - self.lambda_param) * max_redundancy - mmr_scores.append(mmr) - - # Select sentence with highest MMR score - next_idx = unselected_indices[np.argmax(mmr_scores)] - selected_indices.append(next_idx) - unselected_indices.remove(next_idx) - - return selected_indices - - def summarize( - self, - text: str, - query: str = None, - custom_k: int = None - ) -> Dict[str, any]: - """ - Generate a query-focused summary of the input text. - - Args: - text: Input text to summarize - query: Optional query to focus the summary - custom_k: Optional override for number of sentences - - Returns: - Dictionary containing summary and metadata - """ - try: - # Split text into sentences - sentences = self._split_into_sentences(text) - if len(sentences) == 0: - return { - "summary": "", - "error": "No valid sentences found in input text." - } - - # Use default query if none provided - if not query: - query = "What is the main point of this text?" - - # Vectorize sentences and query - sentence_embeddings, query_embedding = self._vectorize_sentences( - sentences, - query - ) - - # Compute similarities - similarities = self._compute_similarities( - query_embedding, - sentence_embeddings - ) - - # Select top sentences using MMR - k = custom_k if custom_k is not None else self.top_k - # Ensure k doesn't exceed sentence count - k = min(k, len(sentences)) - selected_indices = self._select_mmr_sentences( - similarities, - sentence_embeddings, - k - ) - - # Order sentences by original position - selected_indices.sort() - summary_sentences = [sentences[idx] for idx in selected_indices] - - # Combine sentences into final summary - summary = " ".join(summary_sentences) - - return { - "summary": summary, - "original_sentences": len(sentences), - "selected_sentences": len(summary_sentences), - "selected_indices": selected_indices, - "similarity_scores": similarities[selected_indices].tolist() - } - - except Exception as e: - logger.error(f"Error during summarization: {str(e)}") - return { - "summary": "", - "error": f"Summarization failed: {str(e)}" - } - - def update_parameters( - self, - lambda_param: float = None, - top_k: int = None - ) -> None: - """ - Update the engine's parameters. - - Args: - lambda_param: New lambda parameter for MMR - top_k: New number of sentences for summary - """ - if lambda_param is not None: - if 0 <= lambda_param <= 1: - self.lambda_param = lambda_param - else: - raise ValueError("lambda_param must be between 0 and 1") - - if top_k is not None: - if top_k > 0: - self.top_k = top_k - else: - raise ValueError("top_k must be greater than 0") From 45ea906ea1d3a2517f5bb70f95057d51af79c3be Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Wed, 20 Nov 2024 22:47:59 -0500 Subject: [PATCH 51/61] keep finding issues in the pipeline md formatting. --- Pipeline.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Pipeline.md b/Pipeline.md index e749c25..6eff950 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -81,13 +81,13 @@ Summary = {S0} * 4.1 Loop until top k sentences have been selected. * 4.2 Calculate the relevance of a sentence not currently in the summary set using, `Maximal Marginal Relevance` (**MMR**) with the formula: - ```math - MMR = lambda *Cosine Similarity(Q, S) - (1- lambda)* Highest Cosine Similarity to already existing - ``` +```math +MMR = lambda *Cosine Similarity(Q, S) - (1- lambda)* Highest Cosine Similarity to already existing +``` - * 4.2.1 sentences in the summary. +* 4.2.1 sentences in the summary. Choose the sentence with maximum MMR score and add to the summary. - * 4.3 Go back to 4.1 +* 4.3 Go back to 4.1 5. Information Ordering: Order the sentences in the summary by their original ordering. For example, we get the following summary set: Summary = {S0, S3, S5} From 6f4e71b952b06f6a7bff8113dfa175a52e2d10b2 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Wed, 20 Nov 2024 22:53:45 -0500 Subject: [PATCH 52/61] Renamed CC main to just main --- conversation_chatbot_main.py => main.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename conversation_chatbot_main.py => main.py (100%) diff --git a/conversation_chatbot_main.py b/main.py similarity index 100% rename from conversation_chatbot_main.py rename to main.py From 8dd225fb9416cd48d1b2ea746b84590f50ec77b2 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Wed, 20 Nov 2024 23:07:51 -0500 Subject: [PATCH 53/61] Impoved main.py for better gpu/cpu readiness --- main.py | 336 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 232 insertions(+), 104 deletions(-) diff --git a/main.py b/main.py index cde6059..f3f5da7 100644 --- a/main.py +++ b/main.py @@ -37,12 +37,13 @@ (FAQ, empathetic dialogues, counseling conversations) are available and paths are correctly specified using command-line flags or default values. """ +import logging +import subprocess +from typing import List, Tuple, Optional +import torch from absl import app, flags from mental_health_chatbot import MentalHealthChatbot from summarization_engine import EnhancedSummarizationEngine -import torch -import logging -import subprocess # import nltk # nltk.download('stopwords') # nltk.download('punkt_tab') @@ -84,158 +85,285 @@ logging.getLogger('networkx').setLevel(logging.WARNING) logging.getLogger('gensim').setLevel(logging.WARNING) -def get_gpu_memory_info(): + +def get_gpu_memory_info() -> List[Tuple[int, float]]: """ Uses nvidia-smi to get accurate memory usage for each GPU. Returns: List[Tuple[int, float]]: List of tuples containing (GPU ID, free memory in GB). + Returns empty list if nvidia-smi is not available or fails. """ try: - result = subprocess.check_output( - ['nvidia-smi', '--query-gpu=memory.free', '--format=csv,noheader,nounits']) - memory_info = result.decode('utf-8').strip().split('\n') - gpu_info = [(i, float(mem)) for i, mem in enumerate(memory_info)] - return gpu_info - except subprocess.CalledProcessError as e: - logger.error("Failed to run nvidia-smi: " + str(e)) + result = subprocess.run( + ['nvidia-smi', '--query-gpu=memory.free', + '--format=csv,noheader,nounits'], + capture_output=True, + text=True, + check=True + ) + memory_info = result.stdout.strip().split('\n') + # Convert to GB + return [(i, float(mem)/1024) for i, mem in enumerate(memory_info)] + except (subprocess.SubprocessError, FileNotFoundError) as e: + logger.debug(f"nvidia-smi command failed: {str(e)}") return [] -def get_best_available_device(min_memory_required=4.0): +def check_cuda_availability() -> bool: """ - Checks available GPUs using nvidia-smi and selects the best GPU based on free memory. - Falls back to CPU if no GPU has enough available memory. + Checks if CUDA is available and properly configured. + + Returns: + bool: True if CUDA is available and working, False otherwise + """ + if not torch.cuda.is_available(): + return False + + try: + # Try to create a small tensor on GPU + test_tensor = torch.zeros(1).cuda() + del test_tensor + return True + except RuntimeError: + return False + + +def get_best_available_device(min_memory_required: float = 4.0) -> Tuple[str, Optional[List[int]]]: + """ + Determines the best available device(s) for running the model. Args: - min_memory_required (float): Minimum required free memory in GB. + min_memory_required (float): Minimum required free memory in GB per GPU Returns: - str: The best device string ('cuda:X' or 'cpu'). + Tuple[str, Optional[List[int]]]: (device string, list of GPU IDs if multiple available) """ + # First check if CUDA is properly available + if not check_cuda_availability(): + logger.info("CUDA is not available, using CPU") + return 'cpu', None + + # Get GPU memory information gpu_info = get_gpu_memory_info() - if gpu_info: - available_gpus = [(gpu_id, mem) - for gpu_id, mem in gpu_info if mem >= min_memory_required] - if available_gpus and torch.cuda.is_available(): - # Sort by the most free memory available - selected_gpu = max(available_gpus, key=lambda x: x[1])[0] - logger.info( - f"Selected GPU: cuda:{selected_gpu} with {dict(gpu_info)[selected_gpu]:.2f} GB free") - return f'cuda:{selected_gpu}' - logger.warning("No suitable GPUs available. Falling back to CPU.") - return 'cpu' + if not gpu_info: + logger.info("Could not get GPU information, falling back to CPU") + return 'cpu', None + # Filter GPUs with enough memory + available_gpus = [(gpu_id, mem) + for gpu_id, mem in gpu_info if mem >= min_memory_required] -def main(argv): - """ - Runs the interactive loop for the Mental Health Chatbot. + if not available_gpus: + logger.warning( + f"No GPUs with sufficient memory ({min_memory_required}GB required), using CPU") + return 'cpu', None + + # Sort by available memory + available_gpus.sort(key=lambda x: x[1], reverse=True) + + if len(available_gpus) == 1: + gpu_id = available_gpus[0][0] + logger.info( + f"Selected single GPU: cuda:{gpu_id} with {available_gpus[0][1]:.2f}GB free") + return f'cuda:{gpu_id}', None + else: + gpu_ids = [gpu_id for gpu_id, _ in available_gpus] + logger.info( + f"Selected multiple GPUs: {gpu_ids} with {[mem for _, mem in available_gpus]} GB free") + return 'cuda', gpu_ids + + +def initialize_chatbot(device: str, gpu_ids: Optional[List[int]]) -> MentalHealthChatbot: """ - device = get_best_available_device(min_memory_required=4.0) + Initializes the chatbot with proper error handling and fallback mechanisms. + + Args: + device (str): The primary device to use ('cuda:X' or 'cpu') + gpu_ids (Optional[List[int]]): List of GPU IDs for multi-GPU setup - # Initialize chatbot with selected device + Returns: + MentalHealthChatbot: Initialized chatbot instance + """ try: - chatbot = MentalHealthChatbot( + return MentalHealthChatbot( faq_data_path=FLAGS.faq_data_path, conversations_data_path=FLAGS.conversations_data_path, test_size=FLAGS.test_size, random_state=FLAGS.random_state, sentence_encoder=FLAGS.sentence_encoder, - device=torch.device(device) + device=torch.device(device), + gpu_ids=gpu_ids ) - except torch.OutOfMemoryError: - logger.error( - "\n!!\nOut of memory on all selected devices. \n!!\nRetrying on CPU.") - device = 'cpu' - chatbot = MentalHealthChatbot( + except torch.cuda.OutOfMemoryError: + logger.warning("Out of memory on GPU, falling back to CPU") + return MentalHealthChatbot( faq_data_path=FLAGS.faq_data_path, conversations_data_path=FLAGS.conversations_data_path, test_size=FLAGS.test_size, random_state=FLAGS.random_state, sentence_encoder=FLAGS.sentence_encoder, - device=torch.device(device) + device=torch.device('cpu'), + gpu_ids=None ) + except Exception as e: + logger.error(f"Error initializing chatbot: {str(e)}") + raise - # Initialize the enhanced summarization engine with the same device - summarization_engine = EnhancedSummarizationEngine( - model_name=FLAGS.sentence_transformer_model, - lambda_param=FLAGS.summarization_lambda, - top_k=FLAGS.summary_sentences, - device=device - ) - # Load data and train models - chatbot.load_data() - chatbot.preprocess_data() - chatbot.train_logistic_classifier() - chatbot.build_knn_classifier() +def main(argv): + """ + Main function for the Mental Health Chatbot with enhanced device handling and robust error management. + Handles both interactive chat sessions and model initialization with proper device allocation. + """ + # Set up logging with proper formatting + logging.basicConfig( + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + level=logging.INFO + ) + logger = logging.getLogger(__name__) - # Start the interactive loop - session_log = [] + # Suppress verbose logging from dependencies + logging.getLogger('sentence_transformers').setLevel(logging.WARNING) + logging.getLogger('sklearn').setLevel(logging.WARNING) + logging.getLogger('torch').setLevel(logging.WARNING) + logging.getLogger('networkx').setLevel(logging.WARNING) + logging.getLogger('gensim').setLevel(logging.WARNING) - print("\n\nWelcome to the Mental Health Chatbot. \n\nType 'exit', 'quit', 'q', 'x', or press 'Ctrl+C' to quit.") - print("Type 'summarize' at any time to get a summary of the conversation so far.\n") + # Get the best available device + device, gpu_ids = get_best_available_device(min_memory_required=4.0) + logger.info(f"Selected device: {device}" + + (f" with GPUs: {gpu_ids}" if gpu_ids else "")) try: + # Initialize chatbot with proper error handling + logger.info("Initializing chatbot...") + chatbot = initialize_chatbot(device, gpu_ids) + + # Initialize summarization engine with same device configuration + logger.info("Initializing summarization engine...") + summarization_engine = EnhancedSummarizationEngine( + model_name=FLAGS.sentence_transformer_model, + lambda_param=FLAGS.summarization_lambda, + top_k=FLAGS.summary_sentences, + device=device + ) + + # Load and prepare data + logger.info("Loading data...") + chatbot.load_data() + + logger.info("Preprocessing data...") + chatbot.preprocess_data() + + logger.info("Training logistic classifier...") + chatbot.train_logistic_classifier() + + logger.info("Building KNN classifier...") + chatbot.build_knn_classifier() + + # Initialize session storage + session_log = [] + + # Print welcome message + print("\nWelcome to the Mental Health Chatbot!") + print("----------------------------------------") + print("Commands:") + print("- Type 'exit', 'quit', 'q', 'x', or 'e' to end the session") + print("- Type 'summarize' to get a summary of the conversation") + print("- Press Ctrl+C to exit at any time") + print("----------------------------------------\n") + + # Main interaction loop while True: - user_input = input("You: ") + try: + user_input = input("You: ").strip() + + # Handle exit commands + if user_input.lower() in ['exit', 'quit', 'q', 'x', 'e']: + print("\nChatbot: Thank you for talking with me. Take care!") + + # Provide session summary if there was a conversation + if session_log: + print("\nHere's a summary of our conversation:") + full_text = ' '.join(session_log) + summary_result = summarization_engine.summarize( + full_text, + query="What were the main points discussed in this conversation?" + ) + print(summary_result['summary']) + break - # Check for exit commands - if user_input.lower() in ['exit', 'quit', 'q', 'x', 'e']: - print("Chatbot: Take care!") - # Provide summary at the end of the session + # Handle summarize command + elif user_input.lower() == 'summarize': + if session_log: + print("\nConversation Summary:") + full_text = ' '.join(session_log) + summary_result = summarization_engine.summarize( + full_text, + query="What were the key points in our recent discussion?" + ) + print(summary_result['summary']) + + # Print debug info if in debug mode + if logger.getEffectiveLevel() == logging.DEBUG: + print("\nDebug Information:") + print( + f"Total Sentences: {summary_result['original_sentences']}") + print( + f"Selected Sentences: {summary_result['selected_sentences']}") + print( + f"Similarity Scores: {summary_result['similarity_scores']}") + else: + print("\nNo conversation history to summarize yet.") + continue + + # Handle empty input + if not user_input: + print( + "Chatbot: I didn't catch that. Could you please say something?") + continue + + # Get response from chatbot + try: + response = chatbot.respond_to_query(user_input) + print(f"Chatbot: {response}") + + # Log the interaction + session_log.append(f"You: {user_input}") + session_log.append(f"Chatbot: {response}") + + except Exception as e: + logger.error(f"Error generating response: {str(e)}") + print( + "Chatbot: I apologize, but I'm having trouble generating a response. Could you try rephrasing your question?") + + except KeyboardInterrupt: + # Handle Ctrl+C gracefully + print("\n\nChatbot: Conversation ended. Take care!") + + # Provide summary if there was a conversation if session_log: + print("\nHere's a summary of our conversation:") full_text = ' '.join(session_log) summary_result = summarization_engine.summarize( full_text, query="What were the main points discussed in this conversation?" ) - print("\nSession Summary:") print(summary_result['summary']) break - elif user_input.lower() == 'summarize': - # Provide on-demand summary - if session_log: - full_text = ' '.join(session_log) - summary_result = summarization_engine.summarize( - full_text, - query="What were the key points in our recent discussion?" - ) - print("\nSummary:") - print(summary_result['summary']) - # Optionally show metadata for debugging - if logger.level == logging.DEBUG: - print("\nDebug Info:") - print( - f"Original sentences: {summary_result['original_sentences']}") - print( - f"Selected sentences: {summary_result['selected_sentences']}") - else: - print("\nNo conversation history to summarize yet.") - continue - - # Get response from the chatbot - question = user_input - response = chatbot.respond_to_query(user_input) - print(f"Chatbot: {response}") - - # Append the interaction to the session log - session_log.append(f"You: {user_input}") - session_log.append(f"Chatbot: {response}") - - except KeyboardInterrupt: - # Graceful exit on Ctrl+C - print("\n\nChatbot: Exiting. \nTake care!\n\n") - # Provide summary at the end of the session - if session_log: - full_text = ' '.join(session_log) - summary_result = summarization_engine.summarize( - full_text, - query="What were the main points discussed in this conversation?" - ) - print("\nSession Summary:") - print(summary_result['summary']) + except Exception as e: + logger.error(f"Fatal error in main: {str(e)}", exc_info=True) + print( + "\nI apologize, but I've encountered a technical issue and need to shut down.") + print("Please try running the program again.") + raise + + finally: + # Cleanup if needed + logger.info("Shutting down chatbot system...") + torch.cuda.empty_cache() # Clear GPU memory if it was used if __name__ == '__main__': From 4019a84305a2e5795dfa523f804b6cb9550a3c32 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Thu, 21 Nov 2024 17:20:36 -0500 Subject: [PATCH 54/61] Excel files and other office products have temp files created when open, added these to gitignore. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 904e033..0d4d300 100644 --- a/.gitignore +++ b/.gitignore @@ -123,3 +123,4 @@ dmypy.json *.VC.db *.pdb *.opendb +Metrics and Comparisions/~$Model Comparison Summary.xlsx From fcb278fb8cd14b01afa543b0e6e03a6e01a75c1d Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Thu, 21 Nov 2024 17:26:38 -0500 Subject: [PATCH 55/61] Added a wrapper method encode_text() that properly handles the encoding process for both single and multi-GPU setups Updated all methods that use encoding to use the new wrapper method Maintained the original SentenceTransformer instance as base_encoder --- mental_health_chatbot.py | 72 +++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 30 deletions(-) diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index a84b283..be03ce9 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -58,7 +58,8 @@ class MentalHealthChatbot: """A chatbot for mental health support.""" - def __init__(self, faq_data_path, conversations_data_path, sentence_encoder="paraphrase-MiniLM-L6-v2", test_size=0.3, random_state=42, device='cpu', gpu_ids=None): + def __init__(self, faq_data_path, conversations_data_path, sentence_encoder="paraphrase-MiniLM-L6-v2", + test_size=0.3, random_state=42, device='cpu', gpu_ids=None): """ Initializes the MentalHealthChatbot with data paths and configuration parameters. @@ -82,14 +83,20 @@ def __init__(self, faq_data_path, conversations_data_path, sentence_encoder="par self.conversations_data_path = conversations_data_path self.test_size = test_size self.random_state = random_state - self.device = device # Store the device + self.device = device self.gpu_ids = gpu_ids - # Initialize models and data placeholders - self.encoder = SentenceTransformer(sentence_encoder) - self.logistic_classifier = None - self.knn_classifier = None - self.emotional_response = None + # Initialize the encoder + self.base_encoder = SentenceTransformer(sentence_encoder) + self.base_encoder.to(self.device) + + # If using multiple GPUs, wrap the model + if self.gpu_ids and len(self.gpu_ids) > 1: + # We'll only wrap the transformer model component + self.base_encoder.transformer = DataParallel( + self.base_encoder.transformer, + device_ids=self.gpu_ids + ) def load_data(self): """ @@ -116,27 +123,20 @@ def preprocess_data(self): all_queries = faq_queries + conv_contexts all_labels = faq_labels + conv_labels - # Load the encoder model onto the specified device default is sentence_encoder = paraphrase-MiniLM-L6-v2 - self.encoder.to(self.device) - - # Use DataParallel if multiple GPUs are available - if self.gpu_ids and len(self.gpu_ids) > 1: - self.encoder = DataParallel( - self.encoder, device_ids=self.gpu_ids) - - # Encode the queries - self.encoded_queries = self.encoder.encode( - all_queries, convert_to_tensor=True, device=self.device) + # Use the wrapper method for encoding + self.encoded_queries = self.encode_text(all_queries) # Split the data self.X_train, self.X_test, self.y_train, self.y_test = train_test_split( - self.encoded_queries.cpu().numpy(), all_labels, - test_size=self.test_size, random_state=self.random_state + self.encoded_queries.cpu().numpy(), + all_labels, + test_size=self.test_size, + random_state=self.random_state ) def train_logistic_classifier(self): """ - Trains a logistic regression classifier to categorize user + Trains a logistic regression classifier to categorize user queries as either informational or emotional. Returns: @@ -167,9 +167,8 @@ def build_knn_classifier(self): faq_queries = self.faq_df['Questions'].tolist() self.faq_answers = self.faq_df['Answers'].tolist() - # Encode FAQ queries - self.encoded_faq_queries = self.encoder.encode( - faq_queries, convert_to_tensor=True, device=self.device) + # Use the wrapper method for encoding + self.encoded_faq_queries = self.encode_text(faq_queries) # Build KNN model self.knn_classifier = NearestNeighbors(n_neighbors=1, metric='cosine') @@ -177,7 +176,19 @@ def build_knn_classifier(self): # Initialize EmotionalResponse with the same device and GPU IDs self.emotional_response = EmotionalResponse( - device=self.device, gpu_ids=self.gpu_ids) + device=self.device, + gpu_ids=self.gpu_ids + ) + + def encode_text(self, texts): + """ + Wrapper method to handle encoding with both single and multi-GPU setups. + """ + return self.base_encoder.encode( + texts, + convert_to_tensor=True, + device=self.device + ) def get_informational_response(self, query): """ @@ -205,17 +216,18 @@ def respond_to_query(self, query): Returns: str: The chatbot's response. """ - # Encode the query - query_embedding = self.encoder.encode( - [query], convert_to_tensor=True, device=self.device).cpu().numpy() + """ + Responds to the user's query based on its classification. + """ + # Encode the query using the wrapper method + query_embedding = self.encode_text([query]).cpu().numpy() # Classify the query prediction = self.logistic_classifier.predict(query_embedding) if prediction[0] == 0: # Informational query - _, indices = self.knn_classifier.kneighbors( - query_embedding) + _, indices = self.knn_classifier.kneighbors(query_embedding) answer = self.faq_answers[indices[0][0]] return answer else: From d260fae5a34f9592e3862bde6b6c59925b40eb24 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Thu, 21 Nov 2024 17:30:42 -0500 Subject: [PATCH 56/61] Removed the attempt to wrap with DataParallel and instead focused on proper device management Added batch processing for large datasets to prevent memory issues Added proper error handling for out-of-memory scenarios Improved device handling with proper type checking Added memory cleanup when needed Improved initialization with proper placeholder setup --- mental_health_chatbot.py | 105 +++++++++++++++++++++++++++++---------- 1 file changed, 80 insertions(+), 25 deletions(-) diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index be03ce9..93504b9 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -79,6 +79,16 @@ def __init__(self, faq_data_path, conversations_data_path, sentence_encoder="par y (list): Labels corresponding to the FAQ and emotional data. emotional_response_handler (EmotionalResponse): Instance of EmotionalResponse class to handle emotional queries. """ + + +class MentalHealthChatbot: + """A chatbot for mental health support.""" + + def __init__(self, faq_data_path, conversations_data_path, sentence_encoder="paraphrase-MiniLM-L6-v2", + test_size=0.3, random_state=42, device='cpu', gpu_ids=None): + """ + Initializes the MentalHealthChatbot with data paths and configuration parameters. + """ self.faq_data_path = faq_data_path self.conversations_data_path = conversations_data_path self.test_size = test_size @@ -87,16 +97,24 @@ def __init__(self, faq_data_path, conversations_data_path, sentence_encoder="par self.gpu_ids = gpu_ids # Initialize the encoder - self.base_encoder = SentenceTransformer(sentence_encoder) - self.base_encoder.to(self.device) - - # If using multiple GPUs, wrap the model - if self.gpu_ids and len(self.gpu_ids) > 1: - # We'll only wrap the transformer model component - self.base_encoder.transformer = DataParallel( - self.base_encoder.transformer, - device_ids=self.gpu_ids - ) + self.encoder = SentenceTransformer(sentence_encoder) + + # Move model to appropriate device + if isinstance(self.device, str): + self.device = torch.device(self.device) + self.encoder.to(self.device) + + # Initialize empty placeholders + self.logistic_classifier = None + self.knn_classifier = None + self.emotional_response = None + self.faq_df = None + self.conversations_df = None + self.encoded_queries = None + self.X_train = None + self.X_test = None + self.y_train = None + self.y_test = None def load_data(self): """ @@ -123,12 +141,20 @@ def preprocess_data(self): all_queries = faq_queries + conv_contexts all_labels = faq_labels + conv_labels - # Use the wrapper method for encoding - self.encoded_queries = self.encode_text(all_queries) + # Process in batches if the dataset is large + batch_size = 32 # Adjust based on available memory + self.encoded_queries = [] + + for i in range(0, len(all_queries), batch_size): + batch = all_queries[i:i + batch_size] + batch_encodings = self.encode_text(batch) + self.encoded_queries.append(batch_encodings.cpu()) + + self.encoded_queries = torch.cat(self.encoded_queries, dim=0) # Split the data self.X_train, self.X_test, self.y_train, self.y_test = train_test_split( - self.encoded_queries.cpu().numpy(), + self.encoded_queries.numpy(), all_labels, test_size=self.test_size, random_state=self.random_state @@ -144,8 +170,14 @@ def train_logistic_classifier(self): """ self.logistic_classifier = LogisticRegression( class_weight='balanced', - random_state=self.random_state) + random_state=self.random_state, + max_iter=1000 # Increase max iterations to ensure convergence + ) self.logistic_classifier.fit(self.X_train, self.y_train) + # self.logistic_classifier = LogisticRegression( + # class_weight='balanced', + # random_state=self.random_state) + # self.logistic_classifier.fit(self.X_train, self.y_train) # X_train, X_test, y_train, y_test = train_test_split( # self.X, self.y, test_size=self.test_size, random_state=self.random_state # ) @@ -167,28 +199,51 @@ def build_knn_classifier(self): faq_queries = self.faq_df['Questions'].tolist() self.faq_answers = self.faq_df['Answers'].tolist() - # Use the wrapper method for encoding - self.encoded_faq_queries = self.encode_text(faq_queries) + # Encode FAQ queries in batches + batch_size = 32 + encoded_faqs = [] + + for i in range(0, len(faq_queries), batch_size): + batch = faq_queries[i:i + batch_size] + batch_encodings = self.encode_text(batch) + encoded_faqs.append(batch_encodings.cpu()) + + self.encoded_faq_queries = torch.cat(encoded_faqs, dim=0) # Build KNN model self.knn_classifier = NearestNeighbors(n_neighbors=1, metric='cosine') - self.knn_classifier.fit(self.encoded_faq_queries.cpu().numpy()) + self.knn_classifier.fit(self.encoded_faq_queries.numpy()) - # Initialize EmotionalResponse with the same device and GPU IDs + # Initialize EmotionalResponse with the same device configuration self.emotional_response = EmotionalResponse( - device=self.device, + device=self.device.type, # Convert torch.device to string gpu_ids=self.gpu_ids ) def encode_text(self, texts): """ - Wrapper method to handle encoding with both single and multi-GPU setups. + Wrapper method to handle encoding with proper error handling. """ - return self.base_encoder.encode( - texts, - convert_to_tensor=True, - device=self.device - ) + try: + return self.encoder.encode( + texts, + convert_to_tensor=True, + device=self.device + ) + except RuntimeError as e: + if "out of memory" in str(e): + # If we run out of memory, clear cache and try again + if torch.cuda.is_available(): + torch.cuda.empty_cache() + # If still fails, fall back to CPU + self.device = torch.device('cpu') + self.encoder.to(self.device) + return self.encoder.encode( + texts, + convert_to_tensor=True, + device=self.device + ) + raise e def get_informational_response(self, query): """ From 463221163ab360be7ebb8fee38ca3866b1f4c02e Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Thu, 21 Nov 2024 17:39:12 -0500 Subject: [PATCH 57/61] Key changes in the EmotionalResponse class: Added proper device handling and conversion Created a new encode_text method with: Batch processing support Better error handling Memory management Proper device fallback Improved error handling in get_response Added more empathetic default responses Better handling of edge cases The file also needs a few imports at the top --- emotional_response.py | 153 ++++++++++++++++++++++++++---------------- 1 file changed, 94 insertions(+), 59 deletions(-) diff --git a/emotional_response.py b/emotional_response.py index 46e660b..93a6e2a 100644 --- a/emotional_response.py +++ b/emotional_response.py @@ -4,15 +4,15 @@ and semantic similarity for response selection. """ import random -from typing import List, Dict - +import logging +from typing import List, Dict, Tuple import networkx as nx import nltk import numpy as np import pandas as pd -from torch.nn import DataParallel +import torch from gensim import corpora -from gensim.models import LdaModel, TfidfModel, CoherenceModel +from gensim.models import LdaModel, TfidfModel from networkx import DiGraph from nltk import word_tokenize from nltk.corpus import stopwords @@ -20,6 +20,9 @@ from numpy.linalg import norm from sentence_transformers import SentenceTransformer +# Set up logging +logger = logging.getLogger(__name__) + class EmotionalResponse: """ @@ -39,13 +42,13 @@ def __init__(self, sentence_encoder="paraphrase-MiniLM-L6-v2", device='cpu', gpu gpu_ids: help keep track of which gpu(s) are avaialbe for distributed work. """ self.device = device + if isinstance(self.device, str): + self.device = torch.device(self.device) + self.gpu_ids = gpu_ids self.encoder = SentenceTransformer(sentence_encoder) self.encoder.to(self.device) - if self.gpu_ids and len(self.gpu_ids) > 1: - self.encoder = DataParallel(self.encoder, device_ids=self.gpu_ids) - try: self.df = pd.read_json( "hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", @@ -60,7 +63,6 @@ def __init__(self, sentence_encoder="paraphrase-MiniLM-L6-v2", device='cpu', gpu contexts = self.df['Context'].tolist() processed_data = self.preprocess_data(contexts) - # Call apply_lda_model before tag_documents to initialize dictionary self.apply_lda_model(processed_data) self.tag_documents() self.make_conversation_graph() @@ -125,7 +127,7 @@ def apply_lda_model(self, processed_data: List[List[str]]) -> None: # Transform the bag of words model to tf-idf model self.corpus_tfidf = self.tfidf_model[self.corpus_bow] - + ''' Model Tuning best_model = None @@ -158,14 +160,14 @@ def apply_lda_model(self, processed_data: List[List[str]]) -> None: n_topics = 7 self.lda_model = LdaModel( - self.corpus_tfidf, - num_topics=n_topics, - id2word=self.dictionary, - alpha=0.01, - eta=0.01, - passes=20, - random_state=42 - ) + self.corpus_tfidf, + num_topics=n_topics, + id2word=self.dictionary, + alpha=0.01, + eta=0.01, + passes=20, + random_state=42 + ) self.topics = self.lda_model.print_topics(num_words=25) # for idx, topic in self.topics: @@ -176,9 +178,6 @@ def apply_lda_model(self, processed_data: List[List[str]]) -> None: # prob, word = word_prob.split('*') # print(f'Word={word.strip()} Probability={prob}') - - - def get_topic(self, query: str) -> int: """ Determines the topic of a given query using the LDA model. @@ -284,46 +283,82 @@ def extend_conv_graph(self, conv_graph: DiGraph, row: pd.Series) -> None: def get_response(self, query: str) -> str: """ Generates an emotional response to the input query by navigating the conversation graph. + """ + try: + topic = self.get_topic(query) - Args: - query (str): The input query string. + # Find the best matching conversation + query_embedding = self.encode_text(query) + query_embedding = query_embedding.cpu().numpy() - Returns: - str: The generated response. + sim_score = 0.0 + target_graph = None + target_node = None + + for conv_graph in self.graph_dict.get(topic, {}).values(): + root = next( + (node for node in conv_graph if conv_graph.in_degree(node) == 0), + None + ) + if root: + root_embedding = self.encode_text(root) + root_embedding = root_embedding.cpu().numpy() + + score = np.dot(query_embedding, root_embedding.T) / ( + norm(query_embedding) * norm(root_embedding) + ) + if score > sim_score: + target_graph = conv_graph + target_node = root + sim_score = score + + # Get the neighbors of the target node + if target_graph and target_node: + neighbors = list(target_graph.neighbors(target_node)) + if neighbors: + selected_neighbor = random.choice(neighbors) + return selected_neighbor + + return "I understand you're going through a difficult time. While I'm here to listen, it might be helpful to speak with a mental health professional who can provide more personalized support." + + except Exception as e: + logger.error(f"Error generating response: {str(e)}") + return "I apologize, but I'm having trouble processing your message. Could you try expressing that in a different way?" + + def encode_text(self, texts, batch_size=32): + """ + Wrapper method to handle encoding with batching and proper error handling. """ - topic = self.get_topic(query) - - # Find the best matching conversation by matching the root node of conversation with the query. - query_embedding = self.encoder.encode( - query, convert_to_tensor=True, device=self.device) - query_embedding = query_embedding.cpu().numpy() - - sim_score = 0.0 - target_graph = None - target_node = None - - for conv_graph in self.graph_dict.get(topic, {}).values(): - root = next( - (node for node in conv_graph if conv_graph.in_degree(node) == 0), None) - if root: - root_embedding = self.encoder.encode( - root, convert_to_tensor=True, device=self.device) - root_embedding = root_embedding.cpu().numpy() - - score = np.dot(query_embedding, root_embedding.T) / ( - norm(query_embedding) * norm(root_embedding) + try: + if isinstance(texts, str): + texts = [texts] + + # Process in batches if needed + if len(texts) > batch_size: + encodings = [] + for i in range(0, len(texts), batch_size): + batch = texts[i:i + batch_size] + batch_encoding = self.encoder.encode( + batch, + convert_to_tensor=True, + device=self.device + ) + encodings.append(batch_encoding.cpu()) + return torch.cat(encodings, dim=0) + else: + return self.encoder.encode( + texts, + convert_to_tensor=True, + device=self.device ) - if score > sim_score: - target_graph = conv_graph - target_node = root - sim_score = score - - # Get the neighbors of the target node - if target_graph and target_node: - neighbors = list(target_graph.neighbors(target_node)) - if neighbors: - selected_neighbor = random.choice(neighbors) - return selected_neighbor - - default_response = "I'm sorry, I don't have enough information on this topic to help you." - return default_response + + except RuntimeError as e: + if "out of memory" in str(e): + if torch.cuda.is_available(): + torch.cuda.empty_cache() + # Fall back to CPU + self.device = torch.device('cpu') + self.encoder.to(self.device) + # Retry with new device + return self.encode_text(texts, batch_size) + raise e From 7680de8ae6c555b6778e9a46c1c8d601f95a4ae1 Mon Sep 17 00:00:00 2001 From: nverma42 Date: Thu, 21 Nov 2024 18:00:52 -0500 Subject: [PATCH 58/61] Update Pipeline.md --- Pipeline.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Pipeline.md b/Pipeline.md index 6eff950..998aa37 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -1,6 +1,6 @@ # Datasets used for Mental Health Chatbot -A. data/Mental_Health_FAQ.csv for informational response +A. https://www.kaggle.com/datasets/narendrageek/mental-health-faq-for-chatbot for informational response B. Build a conversation graph by selecting some conversations. There is a lot in this dataset and we may need to curate this data. for mapping conversations appropriate to an emotion. @@ -105,4 +105,4 @@ We obtained moderately good values for log perplexity in the range of [-8, -9] For LDA, a lower (more negative) log perplexity generally suggests better model fit to the data. If the LDA model achieves a very negative log-perplexity score and good topic coherence, it may be better at representing specific topics or contextually relevant topics for the data. -Comparing the model with hugging face model : [mental-health-mistral-7b-instructv0.2-finetuned-V2] () +Compare the model with BERTopic. We found that BERTopic found 148 topics with similar coherence metric. From 3c138ebc03991134fadd002effd112748774e38c Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Fri, 22 Nov 2024 23:10:07 -0500 Subject: [PATCH 59/61] removed unused imports, removed duplicate lines. update doc strings for methods. --- mental_health_chatbot.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/mental_health_chatbot.py b/mental_health_chatbot.py index 93504b9..0075e72 100644 --- a/mental_health_chatbot.py +++ b/mental_health_chatbot.py @@ -46,12 +46,10 @@ """ import pandas as pd import torch -from torch.nn import DataParallel from sentence_transformers import SentenceTransformer from sklearn.neighbors import NearestNeighbors from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split -from sklearn.metrics import classification_report, precision_recall_fscore_support from emotional_response import EmotionalResponse @@ -80,15 +78,6 @@ def __init__(self, faq_data_path, conversations_data_path, sentence_encoder="par emotional_response_handler (EmotionalResponse): Instance of EmotionalResponse class to handle emotional queries. """ - -class MentalHealthChatbot: - """A chatbot for mental health support.""" - - def __init__(self, faq_data_path, conversations_data_path, sentence_encoder="paraphrase-MiniLM-L6-v2", - test_size=0.3, random_state=42, device='cpu', gpu_ids=None): - """ - Initializes the MentalHealthChatbot with data paths and configuration parameters. - """ self.faq_data_path = faq_data_path self.conversations_data_path = conversations_data_path self.test_size = test_size From 352704d0855b8c9c4f361646cdb89b2d2b77c2b0 Mon Sep 17 00:00:00 2001 From: iAmGiG Date: Tue, 21 Jan 2025 14:26:05 -0500 Subject: [PATCH 60/61] testing a commit message --- DataSetLinks.txt | 6 ++++ all you need is attention.pdf | Bin 0 -> 2215244 bytes emotional_response.py | 59 +++++++++++++++++----------------- main.py | 10 +++--- 4 files changed, 40 insertions(+), 35 deletions(-) create mode 100644 DataSetLinks.txt create mode 100644 all you need is attention.pdf diff --git a/DataSetLinks.txt b/DataSetLinks.txt new file mode 100644 index 0000000..dfb058c --- /dev/null +++ b/DataSetLinks.txt @@ -0,0 +1,6 @@ +[21] N. Prasath and N. Prabhavalkar, “Mental health faq for chatbot,” 2024, +accessed: September 2024. [Online]. Available: https://www.kaggle. +com/datasets/narendrageek/mental-health-faq-for-chatbot +[22] Amod, “Mental health counseling conversations,” 2024. [Online]. Avail- +able: https://huggingface.co/datasets/Amod/mental health counseling +conversations \ No newline at end of file diff --git a/all you need is attention.pdf b/all you need is attention.pdf new file mode 100644 index 0000000000000000000000000000000000000000..97d7c51c5d8901e87995a89589b8e91e21459728 GIT binary patch literal 2215244 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 L9; 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

g8J009N^{CAf!(uJ{Qn`?-3Fn8H!F& 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%0AI%{TFXGDE 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�^5< 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
?xnGaOO8QL=GRH+JVj%hI}TZh2_8 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

D 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˲$FzI`v!6<|%HY>Z)eQPeT<^ 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

FTE8RgzOt)Ho4@J_ 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
    k}u1PQZj1w@HNbPX%W1w^s2#NvP` zB^pZuL?}pfqI-q1a|jSOMLnHR}@j=G4gmINj>JG(E~YZaLx}1 zbRri6EWH7e+vzY(tPO6EWD;``3No(12Q0=|@|ZxN79BxBA{X7u4Pryd5g^ct;);^Uw_eMssq2ve<=tXhG zN(i_`FUmzmv9aVRDCD zTnarwlA6jzT2YP{#Kw~Q0D)HIBA}%w7$9K=Jo#>m7bKacT!exgFNlpLM}a^uiYrE6 zkV8SD7v0MXVnfLhAkd29ij@#>i&m851+lT@C=h5xam7j~xJN6>@PgP_ViX9{Gx4g3 zC?>c?E6PPi=TIQfid+n^pkOq^dqZt2X66Ao(Xf*H6|>k_a$g|Oi{gs0N64Wd(Tnbl zjABE{5g^ct;)<0JaEn%yi;QAp$x%?&iaaBd^ae?8BNyoexv>Q2P*5IUwAP|BikW## zP81Maa|cq!5v(mGRLum5iX8F-$=IT6qM{r(IOhihdXbBQmfm27L_}KKkM~JZ54or} z$f;(rv0O}0zUM%YM~LSFA`~Q=(Y@T@90CM-QCu-{gPb3@MK8*P1gq0U><0uHeyl21 zLcu+HQARb3PZ>E11bR_iu@VZBu|@YsMzOKvC=lpHt_Scjfzm+IEEqVjHJ*U){8foa z(lsc^MMkl)914ohK0{JR<@svjioq9TQIKdx_eMssq2ve<=tXhG@(36u>2X}ekTUa_ z#m17OpsW{pJ|O4~MoG3C7oi}hnw>*Id5qCoi`rMsMvo`1v9^>@H4`MRamWuO#v^dt7a=>$x%?&i&hmY`GI@J7-b@(bG|?@#>nS;ZluqOd zt{H8%pPYnC%fZjLW^^-u9c?!`31v`LjJzJ_AmA?@Y(XFyUvxJF5=*Tv9b_ONkc(pf zQtAv6x#;#w2dkb-91=(pv~W~lAxIjs6B@JQ_Y$PoP;x&Ykc;Aqu{X&1fm`IF+@*uqSaK8yaxMBqqq#0Y> z&kkZ^$x$FsjN*!wP;iT4l#7gFW64n

    fs;utY|KSxp;tHg&T!Yl~}qLGEUx*jQrK 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�Wlv!qD4aG+x?@MI1 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

  1. IJW)1 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

    xXI5|8cyrg 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

    Q4!)=GV4}@j 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 _SJo;#ToG3uDxF5=XgSZhrz3MGRQ5SI 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 literal 0 HcmV?d00001 diff --git a/emotional_response.py b/emotional_response.py index 93a6e2a..f329404 100644 --- a/emotional_response.py +++ b/emotional_response.py @@ -5,7 +5,7 @@ """ import random import logging -from typing import List, Dict, Tuple +from typing import List, Dict import networkx as nx import nltk import numpy as np @@ -128,35 +128,34 @@ def apply_lda_model(self, processed_data: List[List[str]]) -> None: # Transform the bag of words model to tf-idf model self.corpus_tfidf = self.tfidf_model[self.corpus_bow] - ''' - Model Tuning - best_model = None - best_coherence_score = -1 - score_dict = {} - for n_topics in range(2, 10): - lda_model = LdaModel( - self.corpus_tfidf, - num_topics=n_topics, - id2word=self.dictionary, - alpha=0.01, - eta=0.01, - passes=20, - random_state=42 - ) - - perplexity_score = lda_model.log_perplexity(self.corpus_tfidf) - - coherence_model_lda = CoherenceModel(model= lda_model, texts=processed_data, dictionary=self.dictionary, coherence='c_v') - coherence_score = coherence_model_lda.get_coherence() - if (coherence_score > best_coherence_score): - best_coherene_score = coherence_score - best_model = lda_model - - score_dict[n_topics] = [perplexity_score, coherence_score] - - self.lda_model = best_model - print(score_dict) - ''' + # Model Tuning + # best_model = None + # best_coherence_score = -1 + # score_dict = {} + # for n_topics in range(2, 10): + # lda_model = LdaModel( + # self.corpus_tfidf, + # num_topics=n_topics, + # id2word=self.dictionary, + # alpha=0.01, + # eta=0.01, + # passes=20, + # random_state=42 + # ) + + # perplexity_score = lda_model.log_perplexity(self.corpus_tfidf) + + # coherence_model_lda = CoherenceModel(model= lda_model, + # texts=processed_data, dictionary=self.dictionary, coherence='c_v') + # coherence_score = coherence_model_lda.get_coherence() + # if (coherence_score > best_coherence_score): + # best_coherene_score = coherence_score + # best_model = lda_model + + # score_dict[n_topics] = [perplexity_score, coherence_score] + + # self.lda_model = best_model + # print(score_dict) n_topics = 7 self.lda_model = LdaModel( diff --git a/main.py b/main.py index f3f5da7..7387b34 100644 --- a/main.py +++ b/main.py @@ -289,7 +289,7 @@ def main(argv): full_text = ' '.join(session_log) summary_result = summarization_engine.summarize( full_text, - query="What were the main points discussed in this conversation?" + query="\nWhat were the main points discussed in this conversation?\n" ) print(summary_result['summary']) break @@ -301,7 +301,7 @@ def main(argv): full_text = ' '.join(session_log) summary_result = summarization_engine.summarize( full_text, - query="What were the key points in our recent discussion?" + query="\nWhat were the key points in our recent discussion?\n" ) print(summary_result['summary']) @@ -321,7 +321,7 @@ def main(argv): # Handle empty input if not user_input: print( - "Chatbot: I didn't catch that. Could you please say something?") + "\nChatbot: I didn't catch that. Could you please say something?\n") continue # Get response from chatbot @@ -336,7 +336,7 @@ def main(argv): except Exception as e: logger.error(f"Error generating response: {str(e)}") print( - "Chatbot: I apologize, but I'm having trouble generating a response. Could you try rephrasing your question?") + "Chatbot: I apologize, but I'm having trouble generating a response. Could you try rephrasing your question?\n") except KeyboardInterrupt: # Handle Ctrl+C gracefully @@ -348,7 +348,7 @@ def main(argv): full_text = ' '.join(session_log) summary_result = summarization_engine.summarize( full_text, - query="What were the main points discussed in this conversation?" + query="\nWhat were the main points discussed in this conversation?\n" ) print(summary_result['summary']) break From 4514dc22a2bcef607b4a2e86b851e0c006ca9d52 Mon Sep 17 00:00:00 2001 From: WormsCanned Date: Mon, 18 Aug 2025 15:42:16 -0400 Subject: [PATCH 61/61] Reorganize repository structure and enhance documentation Major restructuring of the codebase for better maintainability and professional presentation: **Repository Structure:** - Move core modules to src/ directory with proper package structure - Organize tests in tests/ directory with comprehensive test coverage - Create scripts/ directory for utility and analysis tools - Establish docs/ directory for documentation - Add setup.py for pip-installable package **Documentation Improvements:** - Comprehensive rewrite of Pipeline.md with detailed technical specifications - Enhanced README.md with feature highlights and improved setup instructions - Added technical details for MMR summarization algorithm - Documented conversation graph architecture and LDA topic modeling **Code Organization:** - Remove deprecated files and consolidate functionality - Update .gitignore with comprehensive coverage for Python projects - Clean up legacy visualization files and unused test modules - Maintain backward compatibility while improving structure This reorganization establishes a professional foundation for future development and makes the project more accessible to contributors. --- .gitignore | 51 ++--- Pipeline.md | 209 ++++++++++++------ README.md | 204 +++++++++++++---- .../visuals}/bertopic_visualization.html | 0 .../visuals}/lda_visualization.html | 0 .../model_comparison.py | 0 setup.py | 53 +++++ src/mhchatbot/__init__.py | 19 ++ .../mhchatbot/chatbot.py | 2 +- .../mhchatbot/emotional_response.py | 0 main.py => src/mhchatbot/main.py | 4 +- .../mhchatbot/summarization.py | 0 tests/__init__.py | 3 + .../test_emotional_response.py | 12 +- .../test_summarization.py | 6 +- 15 files changed, 399 insertions(+), 164 deletions(-) rename {Visuals => docs/visuals}/bertopic_visualization.html (100%) rename {Visuals => docs/visuals}/lda_visualization.html (100%) rename Model_Comparison.py => scripts/model_comparison.py (100%) create mode 100644 setup.py create mode 100644 src/mhchatbot/__init__.py rename mental_health_chatbot.py => src/mhchatbot/chatbot.py (99%) rename emotional_response.py => src/mhchatbot/emotional_response.py (100%) rename main.py => src/mhchatbot/main.py (99%) rename summarization_engine.py => src/mhchatbot/summarization.py (100%) create mode 100644 tests/__init__.py rename {Depricated_Files => tests}/test_emotional_response.py (96%) rename Depricated_Files/test_summarization_engine.py => tests/test_summarization.py (93%) diff --git a/.gitignore b/.gitignore index 0d4d300..5448cc5 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ venv/ .venv/ env.bak/ venv.bak/ +chatbot_env/ # Conda environment files *.conda @@ -30,14 +31,13 @@ wheels/ pip-wheel-metadata/ *.manifest *.spec +src/*.egg-info/ # Installer logs pip-log.txt pip-delete-this-directory.txt # PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec @@ -52,21 +52,18 @@ nosetests.xml coverage.xml *.cover .hypothesis/ +.pytest_cache/ # Jupyter Notebook files .ipynb_checkpoints/ -# VSCode configuration files +# IDE configuration files .vscode/ - -# VS specific directories .vs/ .idea/ - -# Visual Studio Code Workspace *.code-workspace -# Windows image file caches +# Windows Thumbs.db ehthumbs.db @@ -77,50 +74,30 @@ ehthumbs.db *.sln.docstates *.pyproj -# Visual Studio Code project settings -.settings/ - # Logs *.log -# Local env files +# Environment files .env .env.* - -# dotenv environment variables file .env.local .env.development .env.test .env.production -# mypy +# Type checking .mypy_cache/ .dmypy.json dmypy.json - -# Pyre type checker .pyre/ +.pyright/ +.pytype/ -# PyCharm -.idea/ - -# JupyterLab -.lab/ -.jupyter/ - -# Ignore data files -# data/ - -# Ignore macOS specific files +# macOS .DS_Store -# Ignore pyright type checking files -.pyright/ +# Deprecated files (kept for reference) +Depricated_Files/ -# Other VS files -*.csproj -*.dbmdl -*.VC.db -*.pdb -*.opendb -Metrics and Comparisions/~$Model Comparison Summary.xlsx +# Excel temporary files +~$* \ No newline at end of file diff --git a/Pipeline.md b/Pipeline.md index 998aa37..bf45363 100644 --- a/Pipeline.md +++ b/Pipeline.md @@ -1,108 +1,177 @@ -# Datasets used for Mental Health Chatbot +# Mental Health Chatbot Pipeline -A. https://www.kaggle.com/datasets/narendrageek/mental-health-faq-for-chatbot for informational response -B. Build a conversation graph by selecting some conversations. There is a lot in this dataset and we may need to curate this data. +## Datasets - for mapping conversations appropriate to an emotion. +### Primary Data Sources -For example, for the emotion of sadness, we will pick some actual responses and create a conversation_graph.csv file. +1. **Mental Health FAQ Dataset** + - Source: [Kaggle Mental Health FAQ](https://www.kaggle.com/datasets/narendrageek/mental-health-faq-for-chatbot) + - Purpose: Provides informational responses to mental health queries + - Format: CSV with question-answer pairs -User: I'm very depressed. How do I find someone to talk to? +2. **Mental Health Counseling Conversations** + - Source: [Hugging Face Dataset](https://huggingface.co/datasets/Amod/mental_health_counseling_conversations) + - Purpose: Builds conversation graphs for emotional support responses + - Format: JSON with counseling session transcripts -Counseler: If there is no one in your life with whom you feel comfortable, I would recommend identifying someone on this site, psychology today or goodtherapy.org who is in your area, then give that therapist a call to see if you would be a good match. +## System Architecture -User: I have family issues, and my dad was both violent and a cheater. +### Core Components -Counseler: In general, our past is always somewhat alive and does inform our present experiences. All past experiences, both positive and negative are what have brought you where you are today, physically and emotionally. That being said, your father's behavior does not have to define you or your future. You have power over your life and your future. By learning more about yourself, you can learn to incorporate your past into your present life, without being defined by past traumas. The best way to grow and learn how to do this is to talk with someone about your experiences. By talking about your past and present struggles with a trusted confidante or helping professional you will hopefully learn how to be at peace with your past. +1. **Query Classification Module** + - Binary classifier using Logistic Regression + - Categories: + - Type A: Informational queries (mental health facts, symptoms, treatments) + - Type B: Emotional support queries (personal struggles, seeking empathy) -User: I've gone to a couple therapy sessions so far and still everytime I walk in I get nervous and shaky. Is this normal? Should I still be feeling like this? +2. **Response Generation Systems** + - **Informational Response System**: KNN classifier with FAQ dataset + - **Emotional Response System**: Conversation graph navigation with LDA topic modeling -Counseler: Certainly. It is ok to feel nervous. I wish you good luck! +3. **Summarization Engine** + - MMR-based extractive summarization + - Preserves original sentence ordering for coherence -This curated data will be added to the mental health counseling conversations as an example of multi-stage conversation. +## Processing Pipeline -So this conversation can be represented as a graph. If we do not have conversation data for specific situation of sadness, we will just use -canned_responses.csv to select the response and that would be the end of the conversation. +### Step-by-Step Workflow -Pipeline of Mental Health Chatbot. +1. **Data Loading** + ```python + - Load FAQ dataset (df_A) + - Load counseling conversations (df_B) + - Initialize Sentence Transformer model + ``` -1. Load all datasets with pandas - df_A, df_B +2. **Query Classification** + ```python + Input: User query + Process: Logistic Regression classification + Output: Query type (A: Informational, B: Emotional) + ``` -2. Classify user's query into informational A or emotional B. +3. **Response Generation** -3. If user's query is informational, produce a response directly from the answers in the FAQ file. - We already built, k nearest neighbor classifier for this purpose. + **For Informational Queries (Type A):** + ```python + - Encode query using Sentence Transformer + - KNN search in FAQ embeddings + - Return most similar FAQ answer + ``` -4. Generate distinct situation categories using Latent Dirichlet Allocation (LDA) generative statistical model for dataset B. + **For Emotional Queries (Type B):** + ```python + - Apply LDA topic modeling (7 topics) + - Map query to conversation graph + - Navigate graph using similarity matching + - Generate contextual response + ``` -5. Build emotion graph based on dataset B. The graph is a network X graph which chat bot navigates. - For example, let us say chatbot detects user wants to discuss their addiction issues. - Then chatbot figures out the apppropriate topic and pick the best conversation for that topic. +4. **Response Optimization** + ```python + - Apply summarization if response > threshold + - Use MMR algorithm for sentence selection + - Preserve original sentence ordering + ``` -6. We will use similarity based node matching to produce a response. +## Conversation Graph Structure -The canned response file is the mental health FAQ file. +### Example Multi-turn Conversation -A conversation graph will be created based on previous counseling sessions. -A conversation graph will enable us to have history and thus -chatbot will be able to have meaninful conversations. -We will use this data: -So we need to add df_B dataframe to get this data. +``` +User: "I'm very depressed. How do I find someone to talk to?" +├── Counselor: "If there is no one in your life with whom you feel comfortable..." +│ +User: "I have family issues, and my dad was both violent and a cheater." +├── Counselor: "In general, our past is always somewhat alive and does inform..." +│ +User: "I've gone to therapy sessions but still get nervous. Is this normal?" +└── Counselor: "Certainly. It is ok to feel nervous. I wish you good luck!" +``` -Using conversation graph is better than producing canned responses. +### Graph Navigation Algorithm -## How Anchor works? +1. Extract user emotion/topic using LDA +2. Find closest matching node in conversation graph +3. Traverse edges based on similarity scores +4. Return appropriate counselor response -Anchor uses a model based on topic understanding and information rerieval. +## Summarization Engine Details -1. The user submits a query. -2. Anchor first classifies a user query into informational and emotional. -3. If query is informational, Anchor extracts the response and provides it to the user. There is no need for conversation to continue in this case. -4. If the query is emotional, it identifies the specific situation a user may be in e.g. relationship issues, addiction issues etc. -5. It then maps user's query to a conversation graph. -6. Then the conversation flows according to the closest matching conversation graph in Anchor's database. -7. Each response will sent to a summarization engine which will produce a compact response. +### MMR (Maximal Marginal Relevance) Algorithm -## Summarization Engine +1. **Sentence Segmentation** + - Split response by sentence boundaries + - Encode each sentence using Sentence Transformer -1. Divide the long response in sentences delimited by "." character. -2. Encode user query and each sentence with SentenceTransformer encoder. This step is called vectorization of sentences. -3. Compute the cosine similarity for each sentence and query using numpy dot and norm functions. An example is given here: - similarity score = np.dot(query_embedding, sentence_embedding.T) / ( - norm(query_embedding) * norm(sentence_embedding) +2. **Similarity Calculation** + ```python + similarity = np.dot(query_embedding, sentence_embedding.T) / + (norm(query_embedding) * norm(sentence_embedding)) + ``` -4. Choose the relevance sentences -Initialization: Choose the sentence with the highest similarity to query. This is most relevant sentence in the summary. -Summary = {S0} +3. **MMR Scoring** + ```math + MMR = λ × Sim(Q, S) - (1-λ) × max(Sim(S, Si)) + ``` + Where: + - λ = 0.7 (relevance vs. diversity trade-off) + - Q = query embedding + - S = candidate sentence + - Si = already selected sentences - Choose a parameter lambda = 0.7 # Weighting parameter - k = 3 # Top k sentences +4. **Selection Process** + - Initialize with highest similarity sentence + - Iteratively add sentences with maximum MMR score + - Stop at k=3 sentences (configurable) - * 4.1 Loop until top k sentences have been selected. - * 4.2 Calculate the relevance of a sentence not currently in the summary set using, `Maximal Marginal Relevance` (**MMR**) with the formula: +5. **Original Order Preservation** (Novel Contribution) + - Reorder selected sentences by original position + - Maintains narrative flow and coherence -```math -MMR = lambda *Cosine Similarity(Q, S) - (1- lambda)* Highest Cosine Similarity to already existing -``` +## Model Performance Metrics + +### LDA Topic Model +- **Coherence Score**: 0.45 (7 topics) +- **Log Perplexity**: [-8, -9] range +- Indicates well-formed topics with room for improvement + +### Comparison with BERTopic +- BERTopic identified 148 fine-grained topics +- Similar coherence metric but higher granularity +- LDA chosen for computational efficiency + +### Classification Performance +- Logistic Regression for query type classification +- KNN for FAQ matching (k=5 default) +- Evaluation metrics: Precision, Recall, F1-score -* 4.2.1 sentences in the summary. - Choose the sentence with maximum MMR score and add to the summary. -* 4.3 Go back to 4.1 +## Implementation Notes -5. Information Ordering: Order the sentences in the summary by their original ordering. For example, we get the following summary set: - Summary = {S0, S3, S5} +### Device Management +- Automatic GPU detection and allocation +- Fallback to CPU if insufficient GPU memory (<4GB) +- Multi-GPU support for large-scale processing -But the original ordering in the text was S3, S0 and then S5, then our summary would in the original order. <=== Our novelty +### Session Management +- Conversation history tracking +- Session summarization on exit +- Interactive command handling (exit, summarize) -## Model Performance +## Future Enhancements -We evaluated two performance metrics, Model coherence and Model Perplexity. Model coherence indicates the coherence of topic words in the LDA model. -The best coherence metric of 0.45 was obtained when number of topics were set to 7. -The coherence metric of 0.45 indicates that topics are well formed, although there is a room for improvement. +1. **Dynamic Response Generation** + - Integration with transformer-based language models + - Fine-tuning on mental health domain -The perplexity metric indicates how good the natural language model is in its predictions/ In the context of Latent Dirichlet Allocation (LDA), perplexity is a measure of how well the model fits the given set of documents, similar to how it's used in language models. Specifically, for LDA, perplexity quantifies how "surprised" the model is by the words in a held-out test set of documents, based on the topics it learned during training. -We obtained moderately good values for log perplexity in the range of [-8, -9] +2. **Multi-lingual Support** + - Language detection and translation + - Culturally-aware responses -For LDA, a lower (more negative) log perplexity generally suggests better model fit to the data. If the LDA model achieves a very negative log-perplexity score and good topic coherence, it may be better at representing specific topics or contextually relevant topics for the data. +3. **Risk Assessment** + - Crisis detection algorithms + - Automatic referral to professional help -Compare the model with BERTopic. We found that BERTopic found 148 topics with similar coherence metric. +4. **Emotion Intensity Modeling** + - Graduated response based on emotional severity + - Adaptive conversation strategies \ No newline at end of file diff --git a/README.md b/README.md index 66798ab..5ff5866 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Mental Health Chatbot -This project focuses on building a mental health chatbot that can provide empathetic responses and offer basic mental health information. The chatbot uses a logistic regression classifier to categorize user queries into two groups: information-seeking (class A) and emotional support-seeking (class B). The chatbot then generates appropriate canned responses based on these classifications. +A sophisticated mental health support system that provides both informational responses and emotional support through machine learning-based query classification and conversation graph navigation. The chatbot uses advanced NLP techniques including Sentence Transformers, LDA topic modeling, and MMR-based summarization to deliver contextually appropriate and empathetic responses. ## Table of Contents @@ -14,14 +14,27 @@ This project focuses on building a mental health chatbot that can provide empath - [Usage](#usage) - [Credits](#credits) +## Features + +- **Dual Response Modes**: Informational (FAQ-based) and Emotional (conversation graph-based) +- **Advanced NLP**: Sentence Transformers for semantic understanding +- **Topic Modeling**: LDA for emotion/situation categorization +- **Smart Summarization**: MMR algorithm for concise, relevant responses +- **GPU Acceleration**: Automatic device management with multi-GPU support +- **Session Management**: Conversation history and summarization + ## Requirements - Python 3.8 or higher -- Libraries: - - absl-py - - pandas - - sentence-transformers - - scikit-learn +- CUDA-capable GPU (optional, falls back to CPU) +- Core Dependencies: + - `sentence-transformers`: Semantic embeddings + - `scikit-learn`: Classification algorithms + - `pandas`: Data processing + - `torch`: Deep learning backend + - `networkx`: Conversation graph management + - `gensim`: LDA topic modeling + - `absl-py`: Command-line flags ## Installation @@ -93,20 +106,36 @@ python3 -m venv chatbot_env pip install -r requirements.txt ``` -### Running the Chatbot +### Installation -Once you have installed the necessary dependencies and activated your environment, you can run the chatbot using the following command: +### Option 1: Install as Package ```bash -python conversation_chatbot_main.py --faq_data_path ./data/Mental_Health_FAQ.csv --empathetic_data_path ./data/empathetic-dialogues-contexts --conversations_data_path ./data/mental_health_counseling_conversations.csv +pip install -e . ``` -*alt view*: +This will install the chatbot as a package, making it available from anywhere. + +### Option 2: Direct Installation + +Follow the conda or venv setup instructions above, then: + +```bash +pip install -r requirements.txt +``` -```powershell -python conversation_chatbot_main.py --faq_data_path ./data/Mental_Health_FAQ.csv \ - --empathetic_data_path ./data/empathetic-dialogues-contexts/ \ - --conversations_data_path ./data/mental_health_counseling_conversations.csv +## Running the Chatbot + +### If installed as package + +```bash +mhchatbot --faq_data_path ./data/Mental_Health_FAQ.csv --conversations_data_path ./data/mental_health_counseling_conversations.csv +``` + +### Direct execution + +```bash +python src/mhchatbot/main.py --faq_data_path ./data/Mental_Health_FAQ.csv --conversations_data_path ./data/mental_health_counseling_conversations.csv ``` ### Optional Arguments @@ -129,23 +158,30 @@ To exit the chatbot, you can type any of the following: ## Project Structure -The project follows a structured organization defined using GraphQL schema. Below is both the visual directory structure and its corresponding schema representation: - -```ps -mental_health_chatbot/ +``` +mhchatbot/ │ -├── main.py # Entry point of the application -├── chatbot.py # Contains the MentalHealthChatbot class -├── utils.py # Utility functions +├── src/ +│ └── mhchatbot/ +│ ├── __init__.py +│ ├── main.py # Entry point +│ ├── chatbot.py # Core chatbot logic +│ ├── emotional_response.py # Emotional query handling +│ └── summarization.py # Response summarization +├── tests/ +│ ├── __init__.py +│ ├── test_emotional_response.py +│ └── test_summarization.py +├── scripts/ +│ └── model_comparison.py # Model evaluation scripts +├── docs/ +│ └── visuals/ # Visualizations ├── data/ -│ ├── Mental_Health_FAQ.csv -│ ├── canned_responses.csv -│ └── empathetic-dialogues-contexts/ -│ ├── train.csv -│ ├── valid.csv -│ └── test.csv -├── requirements.txt # List of dependencies -└── README.md # Project documentation +│ └── Mental_Health_FAQ.csv +├── config/ # Configuration files +├── setup.py # Package installation +├── requirements.txt # Dependencies +└── README.md # Documentation ``` ### Schema Definition @@ -178,32 +214,102 @@ type Project { - `requirements.txt`: Project dependencies - `README.md`: Documentation and setup instructions -### Key Files and Directories +### Core Modules + +#### src/mhchatbot/ +- **main.py**: Application entry point + - GPU/CPU device detection and management + - Interactive session handling + - Command-line argument processing + +- **chatbot.py**: Core chatbot engine + - Logistic Regression for query classification (A/B) + - KNN classifier for FAQ matching + - Integration with emotional response system + +- **emotional_response.py**: Emotional support module + - LDA topic modeling (7 topics) + - Conversation graph navigation + - NetworkX-based response generation + +- **summarization.py**: Response optimization + - MMR (Maximal Marginal Relevance) implementation + - Sentence ordering preservation + - Configurable summary length + +#### Supporting Components +- **tests/**: Comprehensive unit test suite +- **scripts/**: Model evaluation and comparison tools +- **data/**: Dataset storage (CSV, JSON formats) +- **docs/visuals/**: Topic model visualizations +- **config/**: Environment-specific configurations + +## Usage Guide + +### Interactive Commands + +- **Chat**: Type any mental health-related query +- **Summarize**: Type `summarize` to get conversation summary +- **Exit**: Type `exit`, `quit`, `q`, `x`, `e`, or press `Ctrl+C` + +### Query Types and Responses + +#### Informational Queries (Type A) +Factual questions about mental health, symptoms, treatments: +``` +You: What are the symptoms of anxiety? +Chatbot: Common symptoms include nervousness, restlessness, rapid heartbeat, + difficulty concentrating, and a sense of impending danger. +``` -- `data/`: Contains the required datasets for running the chatbot, including FAQ data, counseling conversation data, and empathetic dialogues. -- `mental_health_chatbot.py`: Implements the `MentalHealthChatbot` class, handling data loading, preprocessing, model training, and generating responses. -- `conversation_chatbot_main.py`: Contains the runtime logic and manages the interactive loop for user queries. -- `README.md`: Provides an overview of the project, installation steps, running instructions, and usage examples. -- `requirements.txt`: Lists the dependencies needed to run the project (e.g., `sentence-transformers`, `scikit-learn`). +#### Emotional Support Queries (Type B) +Personal struggles, seeking empathy and guidance: +``` +You: I'm feeling really stressed and overwhelmed. +Chatbot: I understand you're going through a difficult time. It's completely + normal to feel overwhelmed. Would you like to talk about what's + causing your stress? +``` -Ensure the datasets are correctly placed in the `data/` directory as per the structure, and you're ready to run the chatbot using the provided instructions. +### Advanced Features -### Usage +1. **Multi-turn Conversations**: The chatbot maintains context across exchanges +2. **Session Summaries**: Automatic summarization on exit +3. **GPU Acceleration**: Utilizes available CUDA devices for faster processing +4. **Adaptive Responses**: LDA-based topic matching for relevant support -Once the chatbot is running, type any mental health-related query. The chatbot will categorize your query as either informational or emotional. It will then respond with an appropriate answer based on its classification, using the FAQ dataset for informational queries and a conversation graph derived from counseling sessions for emotional queries. +## Technical Details -**Example interaction**: +### Machine Learning Pipeline -```bash -You: I'm feeling really stressed out lately. -Chatbot: I'm sorry to hear that you're feeling stressed. Would you like to talk about it? +1. **Query Encoding**: Sentence-BERT (paraphrase-MiniLM-L6-v2) +2. **Classification**: Logistic Regression (binary: A/B) +3. **Information Retrieval**: KNN (k=5) for FAQ matching +4. **Topic Modeling**: LDA with 7 topics for emotional categorization +5. **Graph Navigation**: NetworkX for conversation flow +6. **Summarization**: MMR algorithm (λ=0.7, k=3 sentences) -You: What are the symptoms of anxiety? -Chatbot: Some common symptoms of anxiety include nervousness, restlessness, and a sense of impending danger. -``` +### Performance Metrics + +- LDA Coherence Score: 0.45 +- Log Perplexity: [-8, -9] range +- GPU Memory Requirement: 4GB minimum +- Response Time: <2 seconds (GPU), <5 seconds (CPU) + +## Contributing + +Contributions are welcome! Please ensure: +- Code follows existing patterns and conventions +- Tests are added for new functionality +- Documentation is updated accordingly + +## License + +This project is intended for educational and research purposes in mental health support systems. -### Credits +## Acknowledgments -- **Sentence-BERT**: Used for encoding questions and contexts. -- **Scikit-learn**: Used for implementing classifiers. -- **Pandas**: For handling data loading and preprocessing. +- **Sentence-BERT**: Semantic similarity computation +- **Scikit-learn**: Machine learning algorithms +- **Hugging Face**: Mental health conversation datasets +- **Kaggle**: Mental health FAQ dataset diff --git a/Visuals/bertopic_visualization.html b/docs/visuals/bertopic_visualization.html similarity index 100% rename from Visuals/bertopic_visualization.html rename to docs/visuals/bertopic_visualization.html diff --git a/Visuals/lda_visualization.html b/docs/visuals/lda_visualization.html similarity index 100% rename from Visuals/lda_visualization.html rename to docs/visuals/lda_visualization.html diff --git a/Model_Comparison.py b/scripts/model_comparison.py similarity index 100% rename from Model_Comparison.py rename to scripts/model_comparison.py diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..692ba19 --- /dev/null +++ b/setup.py @@ -0,0 +1,53 @@ +""" +Setup script for Mental Health Chatbot +""" +from setuptools import setup, find_packages + +with open("README.md", "r", encoding="utf-8") as fh: + long_description = fh.read() + +with open("requirements.txt", "r", encoding="utf-8") as fh: + requirements = [line.strip() for line in fh if line.strip() + and not line.startswith("#")] + +setup( + name="mhchatbot", + version="1.0.0", + author="MHChatBot Team", + description="A mental health support chatbot with ML-based query classification", + long_description=long_description, + long_description_content_type="text/markdown", + url="https://github.com/yourusername/mhchatbot", + package_dir={"": "src"}, + packages=find_packages(where="src"), + classifiers=[ + "Development Status :: 4 - Beta", + "Intended Audience :: Healthcare Industry", + "Topic :: Scientific/Engineering :: Artificial Intelligence", + "License :: OSI Approved :: MIT License", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + ], + python_requires=">=3.8", + install_requires=requirements, + extras_require={ + "dev": [ + "pytest>=6.0", + "pytest-cov>=2.0", + "black>=22.0", + "flake8>=4.0", + "mypy>=0.900", + ], + }, + entry_points={ + "console_scripts": [ + "mhchatbot=mhchatbot.main:main", + ], + }, + include_package_data=True, + package_data={ + "mhchatbot": ["data/*.csv"], + }, +) diff --git a/src/mhchatbot/__init__.py b/src/mhchatbot/__init__.py new file mode 100644 index 0000000..e189abe --- /dev/null +++ b/src/mhchatbot/__init__.py @@ -0,0 +1,19 @@ +""" +Mental Health Chatbot Package + +A comprehensive mental health support chatbot that provides both informational +and emotional support through machine learning-based query classification. +""" + +__version__ = "1.0.0" +__author__ = "MHChatBot Team" + +from .chatbot import MentalHealthChatbot +from .emotional_response import EmotionalResponse +from .summarization import EnhancedSummarizationEngine + +__all__ = [ + "MentalHealthChatbot", + "EmotionalResponse", + "EnhancedSummarizationEngine" +] diff --git a/mental_health_chatbot.py b/src/mhchatbot/chatbot.py similarity index 99% rename from mental_health_chatbot.py rename to src/mhchatbot/chatbot.py index 0075e72..d7aad74 100644 --- a/mental_health_chatbot.py +++ b/src/mhchatbot/chatbot.py @@ -50,7 +50,7 @@ from sklearn.neighbors import NearestNeighbors from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split -from emotional_response import EmotionalResponse +from mhchatbot.emotional_response import EmotionalResponse class MentalHealthChatbot: diff --git a/emotional_response.py b/src/mhchatbot/emotional_response.py similarity index 100% rename from emotional_response.py rename to src/mhchatbot/emotional_response.py diff --git a/main.py b/src/mhchatbot/main.py similarity index 99% rename from main.py rename to src/mhchatbot/main.py index 7387b34..4d88ff2 100644 --- a/main.py +++ b/src/mhchatbot/main.py @@ -42,8 +42,8 @@ from typing import List, Tuple, Optional import torch from absl import app, flags -from mental_health_chatbot import MentalHealthChatbot -from summarization_engine import EnhancedSummarizationEngine +from mhchatbot.chatbot import MentalHealthChatbot +from mhchatbot.summarization import EnhancedSummarizationEngine # import nltk # nltk.download('stopwords') # nltk.download('punkt_tab') diff --git a/summarization_engine.py b/src/mhchatbot/summarization.py similarity index 100% rename from summarization_engine.py rename to src/mhchatbot/summarization.py diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..6d87fd9 --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,3 @@ +""" +Test suite for Mental Health Chatbot +""" diff --git a/Depricated_Files/test_emotional_response.py b/tests/test_emotional_response.py similarity index 96% rename from Depricated_Files/test_emotional_response.py rename to tests/test_emotional_response.py index 0dbe9eb..e68c919 100644 --- a/Depricated_Files/test_emotional_response.py +++ b/tests/test_emotional_response.py @@ -1,9 +1,13 @@ +import torch +import numpy as np +import pandas as pd +from mhchatbot.emotional_response import EmotionalResponse import unittest from unittest.mock import patch, MagicMock -from emotional_response import EmotionalResponse -import pandas as pd -import numpy as np -import torch +import sys +import os +sys.path.insert(0, os.path.abspath( + os.path.join(os.path.dirname(__file__), '..', 'src'))) class TestEmotionalResponse(unittest.TestCase): diff --git a/Depricated_Files/test_summarization_engine.py b/tests/test_summarization.py similarity index 93% rename from Depricated_Files/test_summarization_engine.py rename to tests/test_summarization.py index 81d7002..68428a7 100644 --- a/Depricated_Files/test_summarization_engine.py +++ b/tests/test_summarization.py @@ -1,6 +1,10 @@ +from mhchatbot.summarization import SummarizationEngine import unittest -from summarization_engine import SummarizationEngine +import sys +import os +sys.path.insert(0, os.path.abspath( + os.path.join(os.path.dirname(__file__), '..', 'src'))) class TestSummarizationEngine(unittest.TestCase):

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%0DCg$;M9*z=*#u=O9oy zO+RZR63E{AYZsHL@*Tp~%+%7D-_q9D+)R+q-p>4YWfaf#QQ88tss;-A)hHCRNcPnE zyHV^*hLYaFV$(7b$lm%Z8MCPGC_j-Qv>zG2&%yjq>SJrN-@JU^8JXYt`h8mC2cU<| ze*yTNyM24J-)9Pb0J__L2mF_y{-p0`AKDl2_vrcuU=*U6sFvB|q9iAifS{kbetOesBKk jxbo-blukc2|7(_^Si`L!S%iV<7(rXBqk# literal 0 HcmV?d00001 diff --git a/Model_Comparison.py b/Model_Comparison.py new file mode 100644 index 0000000..e842f46 --- /dev/null +++ b/Model_Comparison.py @@ -0,0 +1,115 @@ +import pandas as pd +from bertopic import BERTopic +from sentence_transformers import SentenceTransformer +from gensim.models import LdaModel +from gensim.models import CoherenceModel +from gensim.corpora import Dictionary +from gensim import corpora +from nltk.corpus import stopwords +from nltk import word_tokenize +from nltk.stem import WordNetLemmatizer +from gensim.models import TfidfModel +import nltk +import pyLDAvis.gensim_models + +def Compute_Coherence_BERTopic(): + df = pd.read_json("hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) + + contexts = df['Context'] + + # Create BERTopic model + topic_model = BERTopic(top_n_words=25) + topics, probs = topic_model.fit_transform(contexts) + + print(f'Number of topics = {len(set(topics))}') + + # Visualize the topics + fig = topic_model.visualize_topics() + fig.write_html("bertopic_visualization.html") + + # Prepare the documents for Gensim coherence calculation + texts = [doc.split() for doc in contexts] # Split your documents into tokens + + # Create a Gensim Dictionary and Corpus + dictionary = Dictionary(texts) + corpus = [dictionary.doc2bow(text) for text in texts] + + # Get topic words + topic_words = topic_model.get_topics() + topics = [[word for word, _ in topic_words[topic]] for topic in topic_words] + + coherence_model = CoherenceModel(topics=topics, texts=texts, dictionary=dictionary, coherence='c_v') + + # Get the coherence score + coherence_score = coherence_model.get_coherence() + print("Coherence Score:", coherence_score) + +def Compute_Coherence_LDA(from_n_topics, to_n_topics): + # Load pretrained Sentence-BERT model. + encoder = SentenceTransformer('paraphrase-MiniLM-L6-v2') + + df = pd.read_json("hf://datasets/Amod/mental_health_counseling_conversations/combined_dataset.json", lines=True) + contexts = df['Context'].tolist() + + nltk.download('stopwords') + nltk.download('wordnet') + + lemmatizer = WordNetLemmatizer() + stop_words = set(stopwords.words('english')) + custom_stop_words = stop_words + + # Preprocess questions + processed_questions = [] + for context in contexts: + tokens = word_tokenize(context.lower()) + base_words = [lemmatizer.lemmatize(token) for token in tokens if token.isalpha()] + filtered_base_words = [word for word in base_words if word not in custom_stop_words] + processed_questions.append(filtered_base_words) + # Create dictionary of processed questions + vocabulary = corpora.Dictionary(processed_questions) + + # Represent each question as bag of words + corpus_bow = [vocabulary.doc2bow(question) for question in processed_questions] + + # Train the TF-IDF model + tfidf = TfidfModel(corpus_bow) + + # Transform the BoW corpus to a TF-IDF corpus + corpus_tfidf = tfidf[corpus_bow] + + #Model Tuning + best_model = None + best_coherence_score = -1 + score_dict = {} + for n_topics in range(from_n_topics, to_n_topics): + lda_model = LdaModel(corpus_tfidf, + num_topics=n_topics, + id2word=vocabulary, + alpha=0.01, + eta=0.01, + passes=20, + random_state=42 + ) + + perplexity_score = lda_model.log_perplexity(corpus_tfidf) + + coherence_model_lda = CoherenceModel(model= lda_model, texts=processed_questions, dictionary=vocabulary, coherence='c_v') + coherence_score = coherence_model_lda.get_coherence() + if (coherence_score > best_coherence_score): + best_coherene_score = coherence_score + best_model = lda_model + score_dict[n_topics] = [perplexity_score, coherence_score] + + lda_model = best_model + print(score_dict) + + # Visualize the topics + vis = pyLDAvis.gensim_models.prepare(lda_model, corpus_tfidf, vocabulary) + pyLDAvis.save_html(vis, 'lda_visualization.html') + +if __name__ == '__main__': + Compute_Coherence_BERTopic() + + # Change the from and to range based on requirements. + # We already know the best number of topics are 7. + Compute_Coherence_LDA(from_n_topics=7, to_n_topics=8) \ No newline at end of file diff --git a/bertopic_visualization.html b/bertopic_visualization.html new file mode 100644 index 0000000..a4f26b1 --- /dev/null +++ b/bertopic_visualization.html @@ -0,0 +1,14 @@ + + + +