CoolFace
Apppublic

Harsh032/whatsapp_chat_analyzer

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
preprocessor.py62 linesDownload Raw Back to root
1import re2import pandas as pd3import warnings4 5 6warnings.filterwarnings("ignore")7 8 9f = open("WhatsApp Chat with Harsh.txt" , "r", encoding = "utf-8")10data = f.read()11 12def preprocess(data):13 14    # Define a regular expression pattern to match date, time, and message15    pre_pattern = re.compile(r'(\d+/\d+/\d+), (\d+:\d+\s[APMapm]+) - (\w+): (.+)')16 17    dates = re.findall(pre_pattern, data)18 19    post_pattern = re.compile(r'(\d+/\d+/\d+), (\d+:\d+\s[APMapm]+), (\w+), (.+)')20    # Define a regular expression pattern to match date, time, and message21 22    date = []23    time = []24    sender = []25    message_content = []26 27    for message in dates:28        message_text = ', '.join(message)29 30        match = post_pattern.match(message_text)31        if match:32            date.append(match.group(1))33            time.append(match.group(2))34            sender.append(match.group(3))35            message_content.append(match.group(4))36        else:37            print(f"Pattern did not match for message: {message_text}")38 39    # Create a DataFrame40    df = pd.DataFrame({41        'date': date,42        'time': time,43        'sender': sender,44        'message': message_content45    })46 47    df['date'] = pd.to_datetime(df['date'], format='%m/%d/%y')48 49    df['year'] = df['date'].dt.year50 51    df['month'] = df['date'].dt.month_name()52 53    df['day'] = df['date'].dt.day54 55    df['time'] = pd.to_datetime(df['time'] ).dt.time56 57    df['hour'] = pd.to_datetime(df['time'], format='%H:%M:%S').dt.hour58 59    df['minute'] = pd.to_datetime(df['time'], format='%H:%M:%S').dt.minute60 61 62    return df