CoolFace
Apppublic

Mahak1230/DialogueDynamics

sourceHugging Faceupdated 2y agoView on Hugging Face
1likes
preprocessor.py47 linesDownload Raw Back to root
1import re
2import pandas as pd
3
4def preprocess(data):
5    pattern = '\d{1,2}/\d{1,2}/\d{2,4},\s\d{1,2}:\d{2}\s[a-z]{2}\s-\s'
6    messages = re.split(pattern, data)[1:]
7    dates = re.findall(pattern, data)
8    dates = [i.replace("\u202f", " ") for i in dates]
9    df = pd.DataFrame({'user_message': messages, 'message_date': dates})
10    df['message_date'] = pd.to_datetime(df['message_date'], format='%d/%m/%y, %I:%M %p - ')
11    users = []
12    messages = []
13    for message in df['user_message']:
14        entry = re.split('([\w\W]+?):\s', message)
15        if entry[1:]:
16            users.append(entry[1])
17            messages.append(entry[2])
18        else:
19            users.append('group notification')
20            messages.append(entry[0])
21
22    df['user'] = users
23    df['message'] = messages
24    df.drop(columns=['user_message'], inplace=True)
25    df.rename(columns={'message_date': 'date'}, inplace=True)
26    df['day_date'] = df['date'].dt.date
27    df['year'] = df['date'].dt.year
28    df['month_num'] = df['date'].dt.month
29    df['month'] = df['date'].dt.month_name()
30    df['day'] = df['date'].dt.day
31    df['day_name'] = df['date'].dt.day_name()
32    df['hour'] = df['date'].dt.hour
33    df['minute'] = df['date'].dt.minute
34
35    period = []
36    for hour in df['hour']:
37        if hour == 23:
38            period.append(str(hour) + "-" + str('00'))
39        elif hour == 0:
40            period.append(str('00') + "-" + str(hour + 1))
41        else:
42            period.append(str(hour) + "-" + str(hour + 1))
43
44    df['time_period'] = period
45
46    return df
47