{
  "id": 573440,
  "title": "Bangla Text to Sentiment: A BERT-Based Approach and Ensemble-Based Solution",
  "content": "<p><strong>BERT-Based Approach</strong></p>\n<h2>🏆 Competition Solution: Bangla Sentiment Analysis</h2>\n<p>This solution combines custom Bangla text preprocessing with deep learning using BanglaBERT, and applies 5-fold stratified cross-validation to ensure robust performance. Here's a breakdown of the major components:</p>\n<h3>📌 1. <strong>Text Preprocessing (Bangla Focused)</strong></h3>\n<p>I developed a custom text cleaning function <code>enhanced_bangla_cleaner()</code> that handles Bangla text efficiently by integrating multiple preprocessing steps:</p>\n<ul>\n<li><strong>Contextual Replacement</strong>: Certain messages (like loan approval or payment notifications) were replaced with semantically consistent templates to reduce noise and ambiguity.</li>\n<li><strong>Regex Cleaning</strong>: Removed English words and digits (except for bracketed placeholders like <code>[amount]</code>, <code>[transaction_id]</code>) to keep focus on Bangla text.</li>\n<li><strong>Spelling Corrections</strong>: Fixed common OCR/misspelling issues using manual mapping for phrases like “সি ম্পল” → “সিম্পল”.</li>\n<li><strong>Tokenization &amp; Stopword Removal</strong>: Used NLTK’s Bangla tokenizer and stopwords to retain meaningful tokens.</li>\n<li><strong>Unicode Normalization</strong>: Ensured consistency across different encoding styles.</li>\n</ul>\n<p>This significantly improved data quality before modeling.</p>\n<h3>⚙️ 2. <strong>Label Encoding</strong></h3>\n<p>Used <code>LabelEncoder</code> to convert sentiment labels into numerical format for classification.</p>\n<h3>🤗 3. <strong>Modeling with BanglaBERT</strong></h3>\n<p>Used the pre-trained <strong>BanglaBERT</strong> model (<code>csebuetnlp/banglabert</code>) from HuggingFace Transformers for sequence classification.</p>\n<ul>\n<li><strong>Tokenizer</strong>: Tokenized cleaned text using BanglaBERT’s tokenizer with padding and truncation (<code>max_len=128</code>).</li>\n<li><strong>Custom Dataset</strong>: Created a PyTorch Dataset class for seamless integration with HuggingFace’s <code>Trainer</code>.</li>\n</ul>\n<h3>📊 4. <strong>Cross-Validation and Class Balancing</strong></h3>\n<p>To improve generalization and handle potential class imbalance:</p>\n<ul>\n<li><strong>Stratified K-Fold (5 folds)</strong>: Preserved sentiment label distribution across training and validation sets.</li>\n<li><strong>Class Weights</strong>: Computed using <code>sklearn.utils.class_weight</code> and integrated into <code>CrossEntropyLoss</code> to handle imbalanced classes during training.</li>\n</ul>\n<h3>🧠 5. <strong>Custom Model with Weighted Loss</strong></h3>\n<p>Extended <code>AutoModelForSequenceClassification</code> to override the <code>forward</code> method and apply class-weighted loss dynamically for each fold.</p>\n<h3>🧪 6. <strong>Training &amp; Evaluation</strong></h3>\n<ul>\n<li>Used HuggingFace’s <code>Trainer</code> API for training and evaluation.</li>\n<li>Configured training arguments for 3 epochs per fold, batch size = 16, and appropriate logging/saving steps.</li>\n<li>Used both <code>accuracy</code> and <code>macro-F1</code> as evaluation metrics.<br>\n📈 Model Performance:<br>\nAfter 5-fold cross-validation, the model achieved the following scores:<br>\nAverage Accuracy: 0.8888 ± 0.0119</li>\n</ul>\n<p>Average F1 Score: 0.8857 ± 0.0115</p>\n<p>These metrics indicate that  model is performing very well, with high accuracy and a good balance between precision and recall. The small standard deviations also suggest that your model's performance is stable across different folds of the cross-validation, which is great for generalization.</p>\n<h3>✅ 7. <strong>Prediction &amp; Submission</strong></h3>\n<ul>\n<li>After training all 5 folds, predictions from each fold were averaged.</li>\n<li>Final predictions were decoded using the inverse of the label encoder.</li>\n<li>A submission CSV was generated in the required format.</li>\n</ul>\n<h3>📦 Final Thoughts</h3>\n<p>This solution integrates deep Bangla-specific preprocessing and robust modeling with BanglaBERT. Custom context-aware cleaning, spelling corrections, and stratified training helped achieve a good generalization capability. HuggingFace's flexibility made implementation smooth and scalable.<br>\nWe fine-tuned a pretrained BanglaBERT transformer model for sentiment classification on Bangla text, with custom preprocessing and class-balanced training using stratified k-fold cross-validation<br>\nLet me know if you have any feedback or questions! 😊</p>\n<p>🔗 Notebook Link:<a href=\"https://www.kaggle.com/code/romanahmed2024/bangla-sentiment-analysis-v54?scriptVersionId=233866103\" target=\"_blank\">https://www.kaggle.com/code/romanahmed2024/bangla-sentiment-analysis-v54?scriptVersionId=233866103</a></p>\n<p><strong>## 💡 Alternative Ensemble-Based Solution using TF-IDF + Stacking Classifier</strong></p>\n<p>In this solution, I focused on building a <strong>robust traditional machine learning pipeline</strong> for Bangla sentiment classification using TF-IDF features and an ensemble of classifiers through <strong>stacked generalization</strong>. Here's an overview of the key components:</p>\n<h3>📌 1. <strong>Preprocessing</strong> same process above format</h3>\n<h3>✒️ 2. <strong>TF-IDF Vectorization</strong></h3>\n<p>I utilized <code>TfidfVectorizer</code> with the following settings:</p>\n<ul>\n<li><strong>n-gram range</strong>: (1, 2) for both unigrams and bigrams.</li>\n<li><strong>Sublinear TF scaling</strong>, <strong>Unicode stripping</strong>, and <strong>custom token patterns</strong> to better capture Bangla word structures.</li>\n<li><strong>min_df = 3</strong> and <strong>max_df = 0.9</strong> to remove very rare or very common terms.</li>\n</ul>\n<p>This resulted in a sparse matrix representation of the cleaned Bangla text.</p>\n<h3>🔖 3. <strong>Label Encoding &amp; Class Weighting</strong></h3>\n<ul>\n<li>Target sentiment labels were encoded using <code>LabelEncoder</code>.</li>\n<li>I calculated <strong>balanced class weights</strong> using <code>sklearn.utils.class_weight</code> to mitigate class imbalance and integrated the weights into all models that support it.</li>\n</ul>\n<h3>🤖 4. <strong>Modeling with Stacking Classifier</strong></h3>\n<p>To leverage the strength of multiple algorithms, I used a <strong>StackingClassifier</strong> composed of:</p>\n<ul>\n<li><p><strong>Base learners</strong>:</p>\n<ul>\n<li><code>MultinomialNB</code> with tuned <code>alpha</code>.</li>\n<li><code>RandomForestClassifier</code> with <code>n_estimators=150</code> and balanced class weights.</li>\n<li><code>SVC</code> with probability enabled and <code>C=1.0</code>.</li></ul></li>\n<li><p><strong>Final meta-learner</strong>:</p>\n<ul>\n<li><code>LogisticRegression</code> trained on the base learners’ predictions.</li></ul></li>\n</ul>\n<p>All classifiers were trained under a <strong>5-fold stratified cross-validation</strong> framework to ensure robustness and preserve label distribution.</p>\n<h3>📊 5. <strong>Evaluation &amp; Results</strong></h3>\n<p>I aggregated out-of-fold (OOF) predictions across all folds and evaluated the performance using the classification report. The model achieved the following metrics:</p>\n<p>Achieved 87% overall accuracy using a TF-IDF + StackingClassifier pipeline.<br>\nThe model performed consistently well across all sentiment classes with balanced precision and recall.<br>\n🔗 Notebook Link: <a href=\"https://www.kaggle.com/code/romanahmed2024/bangla-sentiment-analysis-v50?scriptVersionId=233649416\" target=\"_blank\">https://www.kaggle.com/code/romanahmed2024/bangla-sentiment-analysis-v50?scriptVersionId=233649416</a></p>\n<h3>✅ Final Thoughts</h3>\n<p>This alternative solution combines <strong>TF-IDF text representation</strong> with a <strong>diverse ensemble of models</strong> using stacking. It’s lightweight and interpretable while still achieving strong performance. Compared to transformer-based solutions, this approach can be advantageous in low-resource or real-time environments.</p>\n<p>🙏 Community Request &amp; Learning Intention<br>\nI humbly request the top-performing participants to consider sharing their solution notebooks. This would help many of us understand advanced techniques and modeling strategies used in this competition.</p>\n<p>I would also appreciate any constructive feedback, suggestions for improvement, or even an upvote if you find this notebook helpful. Let's learn and grow together! 😊💪</p>",
  "comments": [
    {
      "id": 3180136,
      "author_name": "AIFahim",
      "author_url": "",
      "post_date": "2025-04-16T07:40:09.180000",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/romanahmed2024\" target=\"_blank\">@romanahmed2024</a> for sharing your solution. </p>",
      "votes": 0,
      "replies": []
    }
  ],
  "comment_count": 1,
  "messages": [
    {
      "id": 3179698,
      "postDate": "2025-04-15T15:45:27.060Z",
      "content": "<p><strong>BERT-Based Approach</strong></p>\n<h2>🏆 Competition Solution: Bangla Sentiment Analysis</h2>\n<p>This solution combines custom Bangla text preprocessing with deep learning using BanglaBERT, and applies 5-fold stratified cross-validation to ensure robust performance. Here's a breakdown of the major components:</p>\n<h3>📌 1. <strong>Text Preprocessing (Bangla Focused)</strong></h3>\n<p>I developed a custom text cleaning function <code>enhanced_bangla_cleaner()</code> that handles Bangla text efficiently by integrating multiple preprocessing steps:</p>\n<ul>\n<li><strong>Contextual Replacement</strong>: Certain messages (like loan approval or payment notifications) were replaced with semantically consistent templates to reduce noise and ambiguity.</li>\n<li><strong>Regex Cleaning</strong>: Removed English words and digits (except for bracketed placeholders like <code>[amount]</code>, <code>[transaction_id]</code>) to keep focus on Bangla text.</li>\n<li><strong>Spelling Corrections</strong>: Fixed common OCR/misspelling issues using manual mapping for phrases like “সি ম্পল” → “সিম্পল”.</li>\n<li><strong>Tokenization &amp; Stopword Removal</strong>: Used NLTK’s Bangla tokenizer and stopwords to retain meaningful tokens.</li>\n<li><strong>Unicode Normalization</strong>: Ensured consistency across different encoding styles.</li>\n</ul>\n<p>This significantly improved data quality before modeling.</p>\n<h3>⚙️ 2. <strong>Label Encoding</strong></h3>\n<p>Used <code>LabelEncoder</code> to convert sentiment labels into numerical format for classification.</p>\n<h3>🤗 3. <strong>Modeling with BanglaBERT</strong></h3>\n<p>Used the pre-trained <strong>BanglaBERT</strong> model (<code>csebuetnlp/banglabert</code>) from HuggingFace Transformers for sequence classification.</p>\n<ul>\n<li><strong>Tokenizer</strong>: Tokenized cleaned text using BanglaBERT’s tokenizer with padding and truncation (<code>max_len=128</code>).</li>\n<li><strong>Custom Dataset</strong>: Created a PyTorch Dataset class for seamless integration with HuggingFace’s <code>Trainer</code>.</li>\n</ul>\n<h3>📊 4. <strong>Cross-Validation and Class Balancing</strong></h3>\n<p>To improve generalization and handle potential class imbalance:</p>\n<ul>\n<li><strong>Stratified K-Fold (5 folds)</strong>: Preserved sentiment label distribution across training and validation sets.</li>\n<li><strong>Class Weights</strong>: Computed using <code>sklearn.utils.class_weight</code> and integrated into <code>CrossEntropyLoss</code> to handle imbalanced classes during training.</li>\n</ul>\n<h3>🧠 5. <strong>Custom Model with Weighted Loss</strong></h3>\n<p>Extended <code>AutoModelForSequenceClassification</code> to override the <code>forward</code> method and apply class-weighted loss dynamically for each fold.</p>\n<h3>🧪 6. <strong>Training &amp; Evaluation</strong></h3>\n<ul>\n<li>Used HuggingFace’s <code>Trainer</code> API for training and evaluation.</li>\n<li>Configured training arguments for 3 epochs per fold, batch size = 16, and appropriate logging/saving steps.</li>\n<li>Used both <code>accuracy</code> and <code>macro-F1</code> as evaluation metrics.<br>\n📈 Model Performance:<br>\nAfter 5-fold cross-validation, the model achieved the following scores:<br>\nAverage Accuracy: 0.8888 ± 0.0119</li>\n</ul>\n<p>Average F1 Score: 0.8857 ± 0.0115</p>\n<p>These metrics indicate that  model is performing very well, with high accuracy and a good balance between precision and recall. The small standard deviations also suggest that your model's performance is stable across different folds of the cross-validation, which is great for generalization.</p>\n<h3>✅ 7. <strong>Prediction &amp; Submission</strong></h3>\n<ul>\n<li>After training all 5 folds, predictions from each fold were averaged.</li>\n<li>Final predictions were decoded using the inverse of the label encoder.</li>\n<li>A submission CSV was generated in the required format.</li>\n</ul>\n<h3>📦 Final Thoughts</h3>\n<p>This solution integrates deep Bangla-specific preprocessing and robust modeling with BanglaBERT. Custom context-aware cleaning, spelling corrections, and stratified training helped achieve a good generalization capability. HuggingFace's flexibility made implementation smooth and scalable.<br>\nWe fine-tuned a pretrained BanglaBERT transformer model for sentiment classification on Bangla text, with custom preprocessing and class-balanced training using stratified k-fold cross-validation<br>\nLet me know if you have any feedback or questions! 😊</p>\n<p>🔗 Notebook Link:<a href=\"https://www.kaggle.com/code/romanahmed2024/bangla-sentiment-analysis-v54?scriptVersionId=233866103\" target=\"_blank\">https://www.kaggle.com/code/romanahmed2024/bangla-sentiment-analysis-v54?scriptVersionId=233866103</a></p>\n<p><strong>## 💡 Alternative Ensemble-Based Solution using TF-IDF + Stacking Classifier</strong></p>\n<p>In this solution, I focused on building a <strong>robust traditional machine learning pipeline</strong> for Bangla sentiment classification using TF-IDF features and an ensemble of classifiers through <strong>stacked generalization</strong>. Here's an overview of the key components:</p>\n<h3>📌 1. <strong>Preprocessing</strong> same process above format</h3>\n<h3>✒️ 2. <strong>TF-IDF Vectorization</strong></h3>\n<p>I utilized <code>TfidfVectorizer</code> with the following settings:</p>\n<ul>\n<li><strong>n-gram range</strong>: (1, 2) for both unigrams and bigrams.</li>\n<li><strong>Sublinear TF scaling</strong>, <strong>Unicode stripping</strong>, and <strong>custom token patterns</strong> to better capture Bangla word structures.</li>\n<li><strong>min_df = 3</strong> and <strong>max_df = 0.9</strong> to remove very rare or very common terms.</li>\n</ul>\n<p>This resulted in a sparse matrix representation of the cleaned Bangla text.</p>\n<h3>🔖 3. <strong>Label Encoding &amp; Class Weighting</strong></h3>\n<ul>\n<li>Target sentiment labels were encoded using <code>LabelEncoder</code>.</li>\n<li>I calculated <strong>balanced class weights</strong> using <code>sklearn.utils.class_weight</code> to mitigate class imbalance and integrated the weights into all models that support it.</li>\n</ul>\n<h3>🤖 4. <strong>Modeling with Stacking Classifier</strong></h3>\n<p>To leverage the strength of multiple algorithms, I used a <strong>StackingClassifier</strong> composed of:</p>\n<ul>\n<li><p><strong>Base learners</strong>:</p>\n<ul>\n<li><code>MultinomialNB</code> with tuned <code>alpha</code>.</li>\n<li><code>RandomForestClassifier</code> with <code>n_estimators=150</code> and balanced class weights.</li>\n<li><code>SVC</code> with probability enabled and <code>C=1.0</code>.</li></ul></li>\n<li><p><strong>Final meta-learner</strong>:</p>\n<ul>\n<li><code>LogisticRegression</code> trained on the base learners’ predictions.</li></ul></li>\n</ul>\n<p>All classifiers were trained under a <strong>5-fold stratified cross-validation</strong> framework to ensure robustness and preserve label distribution.</p>\n<h3>📊 5. <strong>Evaluation &amp; Results</strong></h3>\n<p>I aggregated out-of-fold (OOF) predictions across all folds and evaluated the performance using the classification report. The model achieved the following metrics:</p>\n<p>Achieved 87% overall accuracy using a TF-IDF + StackingClassifier pipeline.<br>\nThe model performed consistently well across all sentiment classes with balanced precision and recall.<br>\n🔗 Notebook Link: <a href=\"https://www.kaggle.com/code/romanahmed2024/bangla-sentiment-analysis-v50?scriptVersionId=233649416\" target=\"_blank\">https://www.kaggle.com/code/romanahmed2024/bangla-sentiment-analysis-v50?scriptVersionId=233649416</a></p>\n<h3>✅ Final Thoughts</h3>\n<p>This alternative solution combines <strong>TF-IDF text representation</strong> with a <strong>diverse ensemble of models</strong> using stacking. It’s lightweight and interpretable while still achieving strong performance. Compared to transformer-based solutions, this approach can be advantageous in low-resource or real-time environments.</p>\n<p>🙏 Community Request &amp; Learning Intention<br>\nI humbly request the top-performing participants to consider sharing their solution notebooks. This would help many of us understand advanced techniques and modeling strategies used in this competition.</p>\n<p>I would also appreciate any constructive feedback, suggestions for improvement, or even an upvote if you find this notebook helpful. Let's learn and grow together! 😊💪</p>",
      "rawMarkdown": "**BERT-Based Approach**\n## 🏆 Competition Solution: Bangla Sentiment Analysis \n\nThis solution combines custom Bangla text preprocessing with deep learning using BanglaBERT, and applies 5-fold stratified cross-validation to ensure robust performance. Here's a breakdown of the major components:\n\n### 📌 1. **Text Preprocessing (Bangla Focused)**\n\nI developed a custom text cleaning function `enhanced_bangla_cleaner()` that handles Bangla text efficiently by integrating multiple preprocessing steps:\n\n- **Contextual Replacement**: Certain messages (like loan approval or payment notifications) were replaced with semantically consistent templates to reduce noise and ambiguity.\n- **Regex Cleaning**: Removed English words and digits (except for bracketed placeholders like `[amount]`, `[transaction_id]`) to keep focus on Bangla text.\n- **Spelling Corrections**: Fixed common OCR/misspelling issues using manual mapping for phrases like “সি ম্পল” → “সিম্পল”.\n- **Tokenization & Stopword Removal**: Used NLTK’s Bangla tokenizer and stopwords to retain meaningful tokens.\n- **Unicode Normalization**: Ensured consistency across different encoding styles.\n\nThis significantly improved data quality before modeling.\n\n### ⚙️ 2. **Label Encoding**\n\nUsed `LabelEncoder` to convert sentiment labels into numerical format for classification.\n\n### 🤗 3. **Modeling with BanglaBERT**\n\nUsed the pre-trained **BanglaBERT** model (`csebuetnlp/banglabert`) from HuggingFace Transformers for sequence classification.\n\n- **Tokenizer**: Tokenized cleaned text using BanglaBERT’s tokenizer with padding and truncation (`max_len=128`).\n- **Custom Dataset**: Created a PyTorch Dataset class for seamless integration with HuggingFace’s `Trainer`.\n\n### 📊 4. **Cross-Validation and Class Balancing**\n\nTo improve generalization and handle potential class imbalance:\n\n- **Stratified K-Fold (5 folds)**: Preserved sentiment label distribution across training and validation sets.\n- **Class Weights**: Computed using `sklearn.utils.class_weight` and integrated into `CrossEntropyLoss` to handle imbalanced classes during training.\n\n### 🧠 5. **Custom Model with Weighted Loss**\n\nExtended `AutoModelForSequenceClassification` to override the `forward` method and apply class-weighted loss dynamically for each fold.\n\n### 🧪 6. **Training & Evaluation**\n\n- Used HuggingFace’s `Trainer` API for training and evaluation.\n- Configured training arguments for 3 epochs per fold, batch size = 16, and appropriate logging/saving steps.\n- Used both `accuracy` and `macro-F1` as evaluation metrics.\n📈 Model Performance:\nAfter 5-fold cross-validation, the model achieved the following scores:\nAverage Accuracy: 0.8888 ± 0.0119\n\nAverage F1 Score: 0.8857 ± 0.0115\n\nThese metrics indicate that  model is performing very well, with high accuracy and a good balance between precision and recall. The small standard deviations also suggest that your model's performance is stable across different folds of the cross-validation, which is great for generalization.\n\n### ✅ 7. **Prediction & Submission**\n\n- After training all 5 folds, predictions from each fold were averaged.\n- Final predictions were decoded using the inverse of the label encoder.\n- A submission CSV was generated in the required format.\n\n\n### 📦 Final Thoughts\n\nThis solution integrates deep Bangla-specific preprocessing and robust modeling with BanglaBERT. Custom context-aware cleaning, spelling corrections, and stratified training helped achieve a good generalization capability. HuggingFace's flexibility made implementation smooth and scalable.\nWe fine-tuned a pretrained BanglaBERT transformer model for sentiment classification on Bangla text, with custom preprocessing and class-balanced training using stratified k-fold cross-validation\nLet me know if you have any feedback or questions! 😊\n\n🔗 Notebook Link:https://www.kaggle.com/code/romanahmed2024/bangla-sentiment-analysis-v54?scriptVersionId=233866103\n\n**## 💡 Alternative Ensemble-Based Solution using TF-IDF + Stacking Classifier**\n\nIn this solution, I focused on building a **robust traditional machine learning pipeline** for Bangla sentiment classification using TF-IDF features and an ensemble of classifiers through **stacked generalization**. Here's an overview of the key components:\n### 📌 1. **Preprocessing** same process above format\n### ✒️ 2. **TF-IDF Vectorization**\n\nI utilized `TfidfVectorizer` with the following settings:\n\n- **n-gram range**: (1, 2) for both unigrams and bigrams.\n- **Sublinear TF scaling**, **Unicode stripping**, and **custom token patterns** to better capture Bangla word structures.\n- **min_df = 3** and **max_df = 0.9** to remove very rare or very common terms.\n\nThis resulted in a sparse matrix representation of the cleaned Bangla text.\n\n### 🔖 3. **Label Encoding & Class Weighting**\n\n- Target sentiment labels were encoded using `LabelEncoder`.\n- I calculated **balanced class weights** using `sklearn.utils.class_weight` to mitigate class imbalance and integrated the weights into all models that support it.\n### 🤖 4. **Modeling with Stacking Classifier**\n\nTo leverage the strength of multiple algorithms, I used a **StackingClassifier** composed of:\n\n- **Base learners**:\n  - `MultinomialNB` with tuned `alpha`.\n  - `RandomForestClassifier` with `n_estimators=150` and balanced class weights.\n  - `SVC` with probability enabled and `C=1.0`.\n\n- **Final meta-learner**:\n  - `LogisticRegression` trained on the base learners’ predictions.\n\nAll classifiers were trained under a **5-fold stratified cross-validation** framework to ensure robustness and preserve label distribution.\n\n### 📊 5. **Evaluation & Results**\nI aggregated out-of-fold (OOF) predictions across all folds and evaluated the performance using the classification report. The model achieved the following metrics:\n\nAchieved 87% overall accuracy using a TF-IDF + StackingClassifier pipeline.\nThe model performed consistently well across all sentiment classes with balanced precision and recall.\n🔗 Notebook Link: https://www.kaggle.com/code/romanahmed2024/bangla-sentiment-analysis-v50?scriptVersionId=233649416\n### ✅ Final Thoughts\n\nThis alternative solution combines **TF-IDF text representation** with a **diverse ensemble of models** using stacking. It’s lightweight and interpretable while still achieving strong performance. Compared to transformer-based solutions, this approach can be advantageous in low-resource or real-time environments.\n\n🙏 Community Request & Learning Intention\nI humbly request the top-performing participants to consider sharing their solution notebooks. This would help many of us understand advanced techniques and modeling strategies used in this competition.\n\nI would also appreciate any constructive feedback, suggestions for improvement, or even an upvote if you find this notebook helpful. Let's learn and grow together! 😊💪",
      "votes": 2
    },
    {
      "id": 3180136,
      "postDate": "2025-04-16T07:40:09.180Z",
      "content": "<p>Thanks <a href=\"https://www.kaggle.com/romanahmed2024\" target=\"_blank\">@romanahmed2024</a> for sharing your solution. </p>",
      "rawMarkdown": "Thanks @romanahmed2024 for sharing your solution. "
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-20T09:40:45Z",
  "competition_id": 95426,
  "competition_slug": "aiquest-bangla-sentiment-analysis-competition",
  "team_id": 13537563,
  "solution_url": "/competitions/aiquest-bangla-sentiment-analysis-competition/writeups/roman-ahmed-bangla-text-to-sentiment-a-bert-based-"
}