philip11's picture
Upload 18 files
ab3c5c9 verified
Raw
History Blame Contribute Delete
2.88 kB
import os
import pandas as pd
import re
def preprocess_email(email_text):
"""
Preprocess email text for better classification.
Args:
email_text: Raw email text
Returns:
str: Preprocessed email text
"""
# Convert to lowercase
email_text = email_text.lower()
# Remove email headers (if present)
email_text = re.sub(r'from:.*?\n', '', email_text)
email_text = re.sub(r'to:.*?\n', '', email_text)
email_text = re.sub(r'subject:.*?\n', '', email_text)
email_text = re.sub(r'date:.*?\n', '', email_text)
# Remove special characters and extra whitespace
email_text = re.sub(r'[^\w\s]', ' ', email_text)
email_text = re.sub(r'\s+', ' ', email_text).strip()
return email_text
def parse_emails_dataset(file_path):
"""
Parse the email dataset from the provided format.
Args:
file_path: Path to the email dataset file
Returns:
pd.DataFrame: DataFrame with email text and categories
"""
if not os.path.exists(file_path):
print(f"Warning: Dataset file {file_path} not found")
# Create a small sample dataset for testing
data = {
'email': [
"I have a problem with my billing. My card was charged twice.",
"My account is locked and I can't log in.",
"How do I change my password?",
"The product I received is defective."
],
'type': ['Billing', 'Account', 'Account', 'Product']
}
return pd.DataFrame(data)
# Load data and return DataFrame
return pd.read_csv(file_path)
def create_sample_dataset(output_path):
"""
Create a sample dataset for testing.
Args:
output_path: Path to save the sample dataset
"""
data = {
'email': [
"Hello, I'm having issues with my recent bill. I was charged twice for the same service. My name is John Smith and you can reach me at john.smith@example.com or call me at 555-123-4567.",
"I can't access my account. It says my password is wrong but I'm sure it's correct. Please help! My customer ID is 12345 and my DOB is 15/04/1985.",
"I need technical support for your software. It keeps crashing when I try to save my work. My email is tech.user@company.org.",
"I want to cancel my subscription. Please process this request as soon as possible. You can contact me at 123-456-7890.",
"The product I ordered hasn't arrived yet. Order #98765. My Aadhar number is 1234 5678 9012 and my credit card ending in 4567 expires on 12/25."
],
'type': ['Billing', 'Account', 'Technical', 'Account', 'Order']
}
df = pd.DataFrame(data)
df.to_csv(output_path, index=False)
print(f"Sample dataset created at {output_path}")