Jovian
⭐️
Sign In
In [1]:
import pandas as pd
import re
from unidecode import unidecode
from tqdm import tqdm
%matplotlib inline
pd.set_option('display.max_colwidth', -1)
In [2]:
import matplotlib.pyplot as plt
import plotly.graph_objects as go
import plotly.express as px
import chart_studio.plotly as py
# Offline mode
from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)
plt.style.use('ggplot')
In [3]:
df = pd.read_csv(r'C:\Users\Phuong Bio\Desktop\phuongpv\Working Data\chatbot\#1 Data\fbchat_full_December_2019.csv')
In [4]:
df.head()
Out[4]:
In [5]:
df_ = df[['customer', 'label']]
In [6]:
df_.dropna(subset=['customer'], inplace=True)
C:\Users\Phuong Bio\Anaconda3\lib\site-packages\ipykernel_launcher.py:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
In [7]:
def is_url(text: str) -> bool:
    pattern = r"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+"
    output = re.findall(pattern, text)
    if len(output) > 0:
        return True    
    return False
In [8]:
df_ = df_[df_['customer'].apply(is_url) == False]
In [9]:
df_.reset_index(inplace=True, drop=True)
In [10]:
len(df_)
Out[10]:
1221461
In [11]:
df_.head(20)
Out[11]:
In [12]:
df_obj_type = pd.read_excel(r'C:\Users\Phuong Bio\Desktop\phuongpv\Working Data\chatbot\20191230_object type ranking\20191230_object_type_with_keyword.xlsx')
In [13]:
df_obj_type.head()
Out[13]:
In [14]:
df_obj_type["key_word"][6] == 'giường'
Out[14]:
True
In [15]:
def split_word(text):
    text = text.split('|')
    return [t.strip() for t in text]
In [16]:
df_obj_type['split_kw'] = df_obj_type['key_word'].apply(split_word)
In [17]:
df_obj_type['split_ignore'] = df_obj_type['ignore_word'].apply(lambda x: split_word(str(x)))
In [18]:
df_obj_type.head()
Out[18]:
In [19]:
df_obj_type['split_ignore'][4] == ['nan']
Out[19]:
False
In [20]:
dict_obj_kw = dict()
for i in range(len(df_obj_type)):
    dict_obj_kw[df_obj_type.iloc[i, 1]] = [df_obj_type.iloc[i, 4], df_obj_type.iloc[i, 5]]
In [21]:
dict_obj_kw
Out[21]:
{'Ghế_ăn': [['ghế ăn'], ['nan']],
 'Ghế_rung': [['ghế rung'], ['nan']],
 'Ghế_ô_tô': [['ghế ô tô', 'ghế ngồi ô tô'], ['nan']],
 'Xe_tập_đi': [['xe tập đi'], ['nan']],
 'Thanh_chắn_giường': [['thanh chắn'], ['cửa', 'cầu thang']],
 'Xe_đẩy': [['xe đẩy'], ['vali']],
 'Giuong': [['giường'], ['thanh chắn']],
 'Nôi': [['nôi'], ['giường']],
 'Thảm': [['thảm'], ['nan']],
 'Địu': [['địu'], ['nan']],
 'Yem': [['yếm'], ['nan']],
 'Ghế_đa_năng': [['ghế đa năng'], ['nan']],
 'Giấy_ướt': [['giấy ướt'], ['nan']],
 'Cọ_bình': [['cọ bình', 'chổi cọ'], ['ống hút']],
 'Balo': [['balo', 'ba lo'], ['nan']],
 'Cốc': [['cốc'], ['nan']],
 'Nước_giặt': [['nước giặt'], ['nan']],
 'Thú_nhún': [['thú nhún'], ['nan']],
 'Cầu_trượt': [['cầu trượt'], ['nan']],
 'Quây': [['quây'], ['nan']],
 'Thú_bông': [['thú bông'], ['nan']],
 'Chậu': [['chậu'], ['nan']],
 'Ghế_tắm': [['ghế tắm'], ['nan']],
 'Xích_đu': [['xích đu'], ['nan']],
 'Nhiệt_kế': [['nhiệt kế'], ['nan']],
 'Máy_tiệt_trùng': [['máy tiệt trùng'], ['nan']],
 'Máy_hâm_sữa': [['hâm sữa'], ['túi']],
 'Máy_hút_sữa': [['hút sữa'], ['nan']],
 'Máy_hút_sữa_phụ_kiện': [['van', 'dây tubing'], ['nan']],
 'Máy_đun_nước': [['máy đun', 'hâm nước', 'đun nước'], ['nan']],
 'Máy_chế_biến': [['chế biến'], ['nan']],
 'Máy_hút_mũi': [['hút mũi'], ['nan']],
 'Máy_dũa_móng': [['dũa móng'], ['nan']],
 'Máy_tạo_ẩm': [['tạo ẩm'], ['nan']],
 'Máy_xay': [['máy xay'], ['nan']],
 'máy_ủ_ấm': [['ủ ấm'], ['nan']],
 'Sách': [['sách'], ['giá sách']],
 'Đàn': [['đàn'], ['nan']],
 'Bàn_chải': [['bàn chải'], ['nan']],
 'Bàn': [['bàn'], ['bàn chải', 'bộ bàn', 'set bàn', 'sét bàn']],
 'Bể_bơi': [['bể bơi', 'bể dựng thành'], ['nan']],
 'Bô': [['bô'], ['nan']],
 'Chăn': [['chăn'], ['nan']],
 'Đệm': [['đệm'], ['nan']],
 'Gặm_nướu': [['gặm nước'], ['nan']],
 'Xúc_xắc': [['xúc xắc', 'súc sắc', 'xúc sắc', 'sắc xắc'], ['nan']],
 'Đai': [['đai'], ['nan']],
 'Khăn': [['khăn'], ['nan']],
 'Ghế_gội_đầu': [['ghế gội đầu'], ['nan']],
 'Ghế_nhún': [['ghế nhún', 'nhún nhảy'], ['nan']],
 'Ghế_hơi': [['ghế hơi'], ['nan']],
 'Bộ_bàn_ghế': [['bộ bàn', 'sét bàn', 'set bàn'], ['nan']],
 'Xe_chòi_chân': [['chòi chân', 'luddy', 'ludy'], ['xe đạp', 'vali']],
 'Vali_xe_chòi_chân': [['vali xe', 'va li xe'], ['xe đẩy']],
 'Nồi_nấu': [['nồi nấu'], ['nan']],
 'Tăm_bông': [['tăm bông'], ['nan']],
 'Sữa_tắm': [['sữa tắm', 'bọt tắm'], ['nan']],
 'Sữa_dưỡng': [['sữa dưỡng'], ['nan']],
 'Bông_tắm': [['bông tắm'], ['nan']],
 'Xe_3_bánh': [['3 bánh', 'ba bánh'], ['nan']],
 'Xe_nadle': [['xe nadle'], ['đai', 'chòi chân']],
 'Xe_cân_bằng': [['xe cân bằng', 'xe thăng bằng'], ['nan']],
 'xe_3_giai_đọan': [['xe 3 giai đoạn', 'xe ba giai đoạn'], ['nan']],
 'Gối': [['gối'], ['nan']],
 'Phơi_bình_sữa': [['phơi bình'], ['nan']],
 'Giàn_phơi': [['giàn phơi', 'giá phơi'], ['nan']],
 'Ru_ngủ': [['ru ngủ'], ['nan']],
 'Bộ_rối_ngón_tay': [['bộ gối', 'rối ngón tay'], ['nan']],
 'Phao': [['phao'], ['nan']],
 'Bộ_cánh': [['bộ cánh'], ['nan']],
 'Áo_hút_sữa': [['áo hút sữa'], ['nan']],
 'Nước_rửa': [['nước rửa', 'rửa bình'], ['nan']],
 'Nước_xả': [['nước xả'], ['nan']],
 'Lót_ngồi_toilet': [['lót ngồi', 'lót toilet'], ['nan']],
 'dung_dịch_vệ_sinh': [['dung dịch vệ sinh'], ['nan']],
 'Bình_tập_uống': [['bình tập uống'], ['nan']],
 'Bình_đun_nước': [['bình đun nước'], ['nan']],
 'Bình_thìa': [['bình thìa'], ['nan']],
 'Bình_sữa': [['bình sữa', 'bình silicone', 'bình silicon'], ['nan']],
 'Binh_uong_nước': [['bình uống nước'], ['nan']],
 'Bình_pha_sữa': [['bình pha sữa'], ['nan']],
 'bình_tiểu': [['bình tiểu'], ['nan']],
 'Ti_giả': [['ti giả', 'ty giả'], ['nan']],
 'Kệ': [['kệ'], ['kệ đựng']],
 'Thanh_nối_chặn': [['nối chặn', 'chặn cửa', 'chặn cầu thang'], ['nan']],
 'Lấy_dáy_tai': [['dáy tai', 'ráy tai'], ['nan']],
 'Mũ_gội_đầu': [['mũ gội đầu'], ['nan']],
 'Thang_hỗ_trợ': [['thang hỗ trợ', 'thang đi vệ sinh', 'thang vệ sinh'],
  ['nan']],
 'Túi_trữ_sữa': [['túi trữ sữa'], ['nan']],
 'Tấm': [['tấm chữ', 'tấm hình họa'], ['nan']],
 'Tông_đơ': [['tông đơ'], ['nan']],
 'Túi_giữ_nhiệt': [['túi giữ nhiệt'], ['nan']],
 'Chia_thức_ăn': [['chia thức ăn', 'chia đồ ăn'], ['nan']],
 'Chăm_sóc_răng': [['chăm sóc răng'], ['nan']],
 'Ngựa_bập_bệnh': [['ngựa bập bênh'], ['nan']],
 'Set_ăn_dặm': [['set ăn dặm', 'sét ăn dặm'], ['nan']],
 'Lục_lạc': [['lục lạc'], ['bóng']],
 'Bóng_lục_lạc': [['bóng lục lạc'], ['nan']],
 'ghế_tròn': [['ghế tròn'], ['nan']],
 'bộ_ghế': [['bộ ghế', 'bộ bốn ghế', 'bộ 4 ghế'], ['nan']],
 'ghế_nhảy': [['ghế nhảy'], ['nan']],
 'ghế_dê_nhỏ': [['ghế dê'], ['nan']],
 'ghế_gấu_trúc': [['ghế gấu trúc'], ['nan']],
 'ghế_tựa': [['ghế tựa'], ['nan']],
 'Hộp_đựng': [['hộp đựng'], ['nan']],
 'Thìa': [['thìa', 'muỗng'], ['bình thìa', 'bát thìa']],
 'Nồi_cơm_điện': [['nồi cơm điện', 'nấu cháo', 'cơm nát'], ['nan']],
 'U_cháo': [['ủ cháo'], ['nan']],
 'Túi_hâm_sữa': [['túi hâm sữa'], ['nan']],
 'Túi_nhai': [['túi nhai'], ['nan']],
 'Túi_ăn': [['túi ăn'], ['nan']],
 'Nước_hoa': [['nước hoa'], ['nan']],
 'Võng_dỡ': [['võng đỡ'], ['nan']],
 'làn': [['làn'], ['nan']],
 'móc_treo': [['móc treo'], ['nan']],
 'dập_núm': [['dập núm'], ['nan']],
 'Màn': [['màn'], ['xe đẩy']],
 'Chiếu_xe_đẩy': [['chiếu xe đẩy'], ['nan']],
 'Lót_thẩm_sữa': [['thấm sữa'], ['nan']],
 'Kem_đánh_răng': [['kem đánh răng'], ['nan']],
 'Kem_hăm': [['kem hăm'], ['nan']],
 'Kem_dưỡng_ẩm': [['kem dưỡng ẩm'], ['nan']],
 'Set_xe_đẩy_ghế': [['set xe đẩy', 'sét xe đẩy'], ['nan']],
 'Núm': [['núm'], ['nan']],
 'Tủ_úp_bình': [['tủ úp bình'], ['nan']],
 'Tủ_nhựa': [['tủ nhựa'], ['nan']],
 'Hộp_chia_sữa': [['hộp chia đồ'], ['nan']],
 'Bát': [['bát'], ['nan']],
 'Đồ_sơ_sinh': [['đồ sơ sinh', 'set sơ sinh'], ['nan']],
 'Kiện_bể_bơi': [['kiện bể bơi'], ['nan']],
 'Chăm_sóc_sức_khỏe': [['chăm sóc'], ['răng']],
 'Đĩa': [['đĩa'], ['nan']],
 'Khay_trữ_đông': [['khay trữ đông'], ['nan']],
 'Khay_ăn': [['khay ăn', 'i-cube', 'i cube'], ['nan']],
 'Tháp': [['tháp'], ['nan']],
 'Xe_đẩy_phụ_kiện': [['màn che', 'áo mưa'], ['nan']],
 'đồ_chơi_hỗ_trợ_học_tập': [['ipad học chữ', 'máy học tiếng anh'], ['nan']],
 'Vô_lăng': [['vô lăng'], ['nan']],
 'Quầy_đồ_chơi': [['quầy hàng', 'quầy bán'], ['nan']],
 'Vali_xe_đẩy': [['vali xe đẩy', 'vali pier'], ['nan']],
 'Treo_cũi': [['treo cũi'], ['thanh']],
 'Nhà_lều': [['nhà lều'], ['nan']],
 'Xếp_hình': [['xếp hình', 'puzzle', 'set thành phố'], ['nan']],
 'chổi_cọ': [['cọ ống hút'], ['nan']],
 'Kệ_đứng': [['kệ đựng'], ['nan']],
 'Thanh_đồ_chơi': [['thanh đồ chơi'], ['nan']],
 'Tủ_đồ_chơi': [['tủ đồ chơi', 'tủ đựng đồ chơi'], ['nan']],
 'Hộp_đồ_chơi': [['hộp đồ chơi', 'hộp âm nhạc', 'hộp thú'], ['nan']],
 'Bộ_đồ_chơi': [['bộ đồ chơi'], ['nan']],
 'úp_bình': [['úp bình'], ['tủ úp bình']],
 'nắp_bình': [['nắp bình'], ['nan']],
 'bấm_móng_tay': [['bấm móng tay'], ['nan']],
 'máy_pha_sữa': [['máy pha sữa'], ['nan']],
 'hộp_trang_điểm': [['hộp trang điểm'], ['nan']],
 'Quan_áo': [['quần áo'], ['nan']],
 'trợ_ti': [['trợ ti'], ['nan']],
 'đá_kho': [['đá khô', 'đá gel'], ['nan']],
 'giá_sách': [['giá sách'], ['nan']],
 'thước_đo': [['thước đo'], ['nan']],
 'bịt_ổ_điện': [['bịt ổ điện'], ['nan']],
 'phấn_rôm': [['phấn rôm'], ['nan']],
 'nắp_bồn_cầu': [['nắp bồn cầu', 'nắp thu nhỏ'], ['nan']],
 'xe_bí_ngô': [['xe bí ngô'], ['nan']]}
In [22]:
def count_object_type(object_type, list_keyword, list_keyword_ignore, df):
    object_type = str(object_type)
    list_keyword = ["\\b" + i + "\\b" for i in list_keyword]
        
    if list_keyword_ignore != ['nan']:
        list_keyword_ignore = ["\\b" + i + "\\b" for i in list_keyword_ignore]
        df[object_type] = (df["customer"].str.contains("|".join(list_keyword), case=False) == True) & (df["customer"].str.contains("|".join(list_keyword_ignore), case=False) == False)
    else:
        df[object_type] = df["customer"].str.contains("|".join(list_keyword), case=False)
        
    return {object_type: [df[df[object_type] == True].shape[0], df[df[object_type] == True]['label'].nunique()]}
In [23]:
final_dict = dict()
for k, v in tqdm(dict_obj_kw.items()):
    print('Working on object type:' + k)
    final_dict.update(count_object_type(k, v[0], v[1], df_))
0%| | 0/163 [00:00<?, ?it/s]
Working on object type:Ghế_ăn
1%|▌ | 1/163 [00:01<04:34, 1.70s/it]
Working on object type:Ghế_rung
1%|█ | 2/163 [00:03<04:29, 1.67s/it]
Working on object type:Ghế_ô_tô
2%|█▌ | 3/163 [00:04<04:25, 1.66s/it]
Working on object type:Xe_tập_đi
2%|██ | 4/163 [00:06<04:19, 1.63s/it]
Working on object type:Thanh_chắn_giường
3%|██▌ | 5/163 [00:09<05:36, 2.13s/it]
Working on object type:Xe_đẩy
4%|███ | 6/163 [00:13<06:30, 2.49s/it]
Working on object type:Giuong
4%|███▌ | 7/163 [00:16<06:58, 2.68s/it]
Working on object type:Nôi
5%|████ | 8/163 [00:19<07:29, 2.90s/it]
Working on object type:Thảm
6%|████▌ | 9/163 [00:21<06:35, 2.57s/it]
Working on object type:Địu
6%|████▉ | 10/163 [00:23<05:58, 2.34s/it]
Working on object type:Yem
7%|█████▍ | 11/163 [00:25<05:30, 2.17s/it]
Working on object type:Ghế_đa_năng
7%|█████▉ | 12/163 [00:26<04:58, 1.98s/it]
Working on object type:Giấy_ướt
8%|██████▍ | 13/163 [00:28<04:41, 1.88s/it]
Working on object type:Cọ_bình
9%|██████▉ | 14/163 [00:31<05:39, 2.28s/it]
Working on object type:Balo
9%|███████▍ | 15/163 [00:33<05:15, 2.13s/it]
Working on object type:Cốc
10%|███████▉ | 16/163 [00:35<05:00, 2.04s/it]
Working on object type:Nước_giặt
10%|████████▍ | 17/163 [00:36<04:38, 1.91s/it]
Working on object type:Thú_nhún
11%|████████▉ | 18/163 [00:38<04:25, 1.83s/it]
Working on object type:Cầu_trượt
12%|█████████▍ | 19/163 [00:39<04:13, 1.76s/it]
Working on object type:Quây
12%|█████████▉ | 20/163 [00:41<04:12, 1.77s/it]
Working on object type:Thú_bông
13%|██████████▍ | 21/163 [00:43<04:05, 1.73s/it]
Working on object type:Chậu
13%|██████████▉ | 22/163 [00:45<04:07, 1.76s/it]
Working on object type:Ghế_tắm
14%|███████████▍ | 23/163 [00:46<04:01, 1.73s/it]
Working on object type:Xích_đu
15%|███████████▉ | 24/163 [00:48<03:57, 1.71s/it]
Working on object type:Nhiệt_kế
15%|████████████▍ | 25/163 [00:50<03:53, 1.69s/it]
Working on object type:Máy_tiệt_trùng
16%|████████████▉ | 26/163 [00:51<03:42, 1.62s/it]
Working on object type:Máy_hâm_sữa
17%|█████████████▍ | 27/163 [00:54<04:51, 2.15s/it]
Working on object type:Máy_hút_sữa
17%|█████████████▉ | 28/163 [00:56<04:30, 2.00s/it]
Working on object type:Máy_hút_sữa_phụ_kiện
18%|██████████████▍ | 29/163 [00:58<04:37, 2.07s/it]
Working on object type:Máy_đun_nước
18%|██████████████▉ | 30/163 [01:01<04:41, 2.12s/it]
Working on object type:Máy_chế_biến
19%|███████████████▍ | 31/163 [01:02<04:21, 1.98s/it]
Working on object type:Máy_hút_mũi
20%|███████████████▉ | 32/163 [01:04<04:08, 1.89s/it]
Working on object type:Máy_dũa_móng
20%|████████████████▍ | 33/163 [01:06<03:55, 1.81s/it]
Working on object type:Máy_tạo_ẩm
21%|████████████████▉ | 34/163 [01:07<03:50, 1.79s/it]
Working on object type:Máy_xay
21%|█████████████████▍ | 35/163 [01:09<03:45, 1.76s/it]
Working on object type:máy_ủ_ấm
22%|█████████████████▉ | 36/163 [01:11<03:43, 1.76s/it]
Working on object type:Sách
23%|██████████████████▍ | 37/163 [01:14<04:45, 2.27s/it]
Working on object type:Đàn
23%|██████████████████▉ | 38/163 [01:16<04:27, 2.14s/it]
Working on object type:Bàn_chải
24%|███████████████████▍ | 39/163 [01:18<04:06, 1.99s/it]
Working on object type:Bàn
25%|███████████████████▉ | 40/163 [01:22<05:35, 2.73s/it]
Working on object type:Bể_bơi
25%|████████████████████▎ | 41/163 [01:24<04:56, 2.43s/it]
Working on object type:Bô
26%|████████████████████▊ | 42/163 [01:26<04:34, 2.27s/it]
Working on object type:Chăn
26%|█████████████████████▎ | 43/163 [01:28<04:16, 2.13s/it]
Working on object type:Đệm
27%|█████████████████████▊ | 44/163 [01:29<04:03, 2.04s/it]
Working on object type:Gặm_nướu
28%|██████████████████████▎ | 45/163 [01:31<03:47, 1.93s/it]
Working on object type:Xúc_xắc
28%|██████████████████████▊ | 46/163 [01:34<04:12, 2.16s/it]
Working on object type:Đai
29%|███████████████████████▎ | 47/163 [01:36<04:00, 2.07s/it]
Working on object type:Khăn
29%|███████████████████████▊ | 48/163 [01:37<03:49, 2.00s/it]
Working on object type:Ghế_gội_đầu
30%|████████████████████████▎ | 49/163 [01:39<03:32, 1.86s/it]
Working on object type:Ghế_nhún
31%|████████████████████████▊ | 50/163 [01:41<03:35, 1.91s/it]
Working on object type:Ghế_hơi
31%|█████████████████████████▎ | 51/163 [01:43<03:26, 1.84s/it]
Working on object type:Bộ_bàn_ghế
32%|█████████████████████████▊ | 52/163 [01:45<03:50, 2.07s/it]
Working on object type:Xe_chòi_chân
33%|██████████████████████████▎ | 53/163 [01:50<05:07, 2.80s/it]
Working on object type:Vali_xe_chòi_chân
33%|██████████████████████████▊ | 54/163 [01:53<05:19, 2.94s/it]
Working on object type:Nồi_nấu
34%|███████████████████████████▎ | 55/163 [01:55<04:37, 2.57s/it]
Working on object type:Tăm_bông
34%|███████████████████████████▊ | 56/163 [01:56<04:06, 2.30s/it]
Working on object type:Sữa_tắm
35%|████████████████████████████▎ | 57/163 [01:59<04:00, 2.27s/it]
Working on object type:Sữa_dưỡng
36%|████████████████████████████▊ | 58/163 [02:00<03:41, 2.11s/it]
Working on object type:Bông_tắm
36%|█████████████████████████████▎ | 59/163 [02:02<03:25, 1.98s/it]
Working on object type:Xe_3_bánh
37%|█████████████████████████████▊ | 60/163 [02:04<03:23, 1.98s/it]
Working on object type:Xe_nadle
37%|██████████████████████████████▎ | 61/163 [02:08<04:16, 2.52s/it]
Working on object type:Xe_cân_bằng
38%|██████████████████████████████▊ | 62/163 [02:09<03:45, 2.23s/it]
Working on object type:xe_3_giai_đọan
39%|███████████████████████████████▎ | 63/163 [02:11<03:20, 2.00s/it]
Working on object type:Gối
39%|███████████████████████████████▊ | 64/163 [02:13<03:14, 1.96s/it]
Working on object type:Phơi_bình_sữa
40%|████████████████████████████████▎ | 65/163 [02:14<03:02, 1.86s/it]
Working on object type:Giàn_phơi
40%|████████████████████████████████▊ | 66/163 [02:16<02:55, 1.81s/it]
Working on object type:Ru_ngủ
41%|█████████████████████████████████▎ | 67/163 [02:18<02:51, 1.78s/it]
Working on object type:Bộ_rối_ngón_tay
42%|█████████████████████████████████▊ | 68/163 [02:20<02:58, 1.88s/it]
Working on object type:Phao
42%|██████████████████████████████████▎ | 69/163 [02:22<02:54, 1.86s/it]
Working on object type:Bộ_cánh
43%|██████████████████████████████████▊ | 70/163 [02:23<02:49, 1.82s/it]
Working on object type:Áo_hút_sữa
44%|███████████████████████████████████▎ | 71/163 [02:25<02:41, 1.75s/it]
Working on object type:Nước_rửa
44%|███████████████████████████████████▊ | 72/163 [02:27<02:46, 1.83s/it]
Working on object type:Nước_xả
45%|████████████████████████████████████▎ | 73/163 [02:29<02:41, 1.79s/it]
Working on object type:Lót_ngồi_toilet
45%|████████████████████████████████████▊ | 74/163 [02:30<02:36, 1.75s/it]
Working on object type:dung_dịch_vệ_sinh
46%|█████████████████████████████████████▎ | 75/163 [02:32<02:24, 1.64s/it]
Working on object type:Bình_tập_uống
47%|█████████████████████████████████████▊ | 76/163 [02:33<02:19, 1.61s/it]
Working on object type:Bình_đun_nước
47%|██████████████████████████████████████▎ | 77/163 [02:35<02:15, 1.58s/it]
Working on object type:Bình_thìa
48%|██████████████████████████████████████▊ | 78/163 [02:36<02:16, 1.60s/it]
Working on object type:Bình_sữa
48%|███████████████████████████████████████▎ | 79/163 [02:38<02:16, 1.63s/it]
Working on object type:Binh_uong_nước
49%|███████████████████████████████████████▊ | 80/163 [02:40<02:12, 1.59s/it]
Working on object type:Bình_pha_sữa
50%|████████████████████████████████████████▎ | 81/163 [02:41<02:09, 1.58s/it]
Working on object type:bình_tiểu
50%|████████████████████████████████████████▋ | 82/163 [02:43<02:10, 1.61s/it]
Working on object type:Ti_giả
51%|█████████████████████████████████████████▏ | 83/163 [02:45<02:13, 1.67s/it]
Working on object type:Kệ
52%|█████████████████████████████████████████▋ | 84/163 [02:48<02:54, 2.20s/it]
Working on object type:Thanh_nối_chặn
52%|██████████████████████████████████████████▏ | 85/163 [02:50<02:52, 2.21s/it]
Working on object type:Lấy_dáy_tai
53%|██████████████████████████████████████████▋ | 86/163 [02:52<02:46, 2.17s/it]
Working on object type:Mũ_gội_đầu
53%|███████████████████████████████████████████▏ | 87/163 [02:54<02:32, 2.01s/it]
Working on object type:Thang_hỗ_trợ
54%|███████████████████████████████████████████▋ | 88/163 [02:56<02:21, 1.88s/it]
Working on object type:Túi_trữ_sữa
55%|████████████████████████████████████████████▏ | 89/163 [02:57<02:13, 1.80s/it]
Working on object type:Tấm
55%|████████████████████████████████████████████▋ | 90/163 [02:59<02:09, 1.78s/it]
Working on object type:Tông_đơ
56%|█████████████████████████████████████████████▏ | 91/163 [03:01<02:07, 1.77s/it]
Working on object type:Túi_giữ_nhiệt
56%|█████████████████████████████████████████████▋ | 92/163 [03:02<02:00, 1.70s/it]
Working on object type:Chia_thức_ăn
57%|██████████████████████████████████████████████▏ | 93/163 [03:04<01:58, 1.70s/it]
Working on object type:Chăm_sóc_răng
58%|██████████████████████████████████████████████▋ | 94/163 [03:06<01:54, 1.66s/it]
Working on object type:Ngựa_bập_bệnh
58%|███████████████████████████████████████████████▏ | 95/163 [03:07<01:50, 1.63s/it]
Working on object type:Set_ăn_dặm
59%|███████████████████████████████████████████████▋ | 96/163 [03:09<01:51, 1.66s/it]
Working on object type:Lục_lạc
60%|████████████████████████████████████████████████▏ | 97/163 [03:12<02:23, 2.18s/it]
Working on object type:Bóng_lục_lạc
60%|████████████████████████████████████████████████▋ | 98/163 [03:14<02:10, 2.00s/it]
Working on object type:ghế_tròn
61%|█████████████████████████████████████████████████▏ | 99/163 [03:16<02:02, 1.91s/it]
Working on object type:bộ_ghế
61%|█████████████████████████████████████████████████ | 100/163 [03:17<01:58, 1.87s/it]
Working on object type:ghế_nhảy
62%|█████████████████████████████████████████████████▌ | 101/163 [03:19<01:53, 1.82s/it]
Working on object type:ghế_dê_nhỏ
63%|██████████████████████████████████████████████████ | 102/163 [03:21<01:50, 1.81s/it]
Working on object type:ghế_gấu_trúc
63%|██████████████████████████████████████████████████▌ | 103/163 [03:22<01:44, 1.74s/it]
Working on object type:ghế_tựa
64%|███████████████████████████████████████████████████ | 104/163 [03:24<01:42, 1.74s/it]
Working on object type:Hộp_đựng
64%|███████████████████████████████████████████████████▌ | 105/163 [03:26<01:40, 1.73s/it]
Working on object type:Thìa
65%|████████████████████████████████████████████████████ | 106/163 [03:30<02:13, 2.35s/it]
Working on object type:Nồi_cơm_điện
66%|████████████████████████████████████████████████████▌ | 107/163 [03:32<02:10, 2.34s/it]
Working on object type:U_cháo
66%|█████████████████████████████████████████████████████ | 108/163 [03:34<01:59, 2.17s/it]
Working on object type:Túi_hâm_sữa
67%|█████████████████████████████████████████████████████▍ | 109/163 [03:35<01:48, 2.01s/it]
Working on object type:Túi_nhai
67%|█████████████████████████████████████████████████████▉ | 110/163 [03:37<01:42, 1.93s/it]
Working on object type:Túi_ăn
68%|██████████████████████████████████████████████████████▍ | 111/163 [03:39<01:38, 1.89s/it]
Working on object type:Nước_hoa
69%|██████████████████████████████████████████████████████▉ | 112/163 [03:41<01:33, 1.84s/it]
Working on object type:Võng_dỡ
69%|███████████████████████████████████████████████████████▍ | 113/163 [03:42<01:30, 1.82s/it]
Working on object type:làn
70%|███████████████████████████████████████████████████████▉ | 114/163 [03:44<01:30, 1.84s/it]
Working on object type:móc_treo
71%|████████████████████████████████████████████████████████▍ | 115/163 [03:46<01:26, 1.81s/it]
Working on object type:dập_núm
71%|████████████████████████████████████████████████████████▉ | 116/163 [03:48<01:24, 1.79s/it]
Working on object type:Màn
72%|█████████████████████████████████████████████████████████▍ | 117/163 [03:51<01:45, 2.30s/it]
Working on object type:Chiếu_xe_đẩy
72%|█████████████████████████████████████████████████████████▉ | 118/163 [03:53<01:34, 2.10s/it]
Working on object type:Lót_thẩm_sữa
73%|██████████████████████████████████████████████████████████▍ | 119/163 [03:55<01:27, 1.99s/it]
Working on object type:Kem_đánh_răng
74%|██████████████████████████████████████████████████████████▉ | 120/163 [03:56<01:20, 1.86s/it]
Working on object type:Kem_hăm
74%|███████████████████████████████████████████████████████████▍ | 121/163 [03:58<01:16, 1.83s/it]
Working on object type:Kem_dưỡng_ẩm
75%|███████████████████████████████████████████████████████████▉ | 122/163 [04:00<01:12, 1.76s/it]
Working on object type:Set_xe_đẩy_ghế
75%|████████████████████████████████████████████████████████████▎ | 123/163 [04:01<01:10, 1.76s/it]
Working on object type:Núm
76%|████████████████████████████████████████████████████████████▊ | 124/163 [04:03<01:10, 1.82s/it]
Working on object type:Tủ_úp_bình
77%|█████████████████████████████████████████████████████████████▎ | 125/163 [04:05<01:07, 1.77s/it]
Working on object type:Tủ_nhựa
77%|█████████████████████████████████████████████████████████████▊ | 126/163 [04:07<01:05, 1.77s/it]
Working on object type:Hộp_chia_sữa
78%|██████████████████████████████████████████████████████████████▎ | 127/163 [04:08<01:02, 1.73s/it]
Working on object type:Bát
79%|██████████████████████████████████████████████████████████████▊ | 128/163 [04:10<01:02, 1.79s/it]
Working on object type:Đồ_sơ_sinh
79%|███████████████████████████████████████████████████████████████▎ | 129/163 [04:12<01:03, 1.88s/it]
Working on object type:Kiện_bể_bơi
80%|███████████████████████████████████████████████████████████████▊ | 130/163 [04:14<00:59, 1.81s/it]
Working on object type:Chăm_sóc_sức_khỏe
80%|████████████████████████████████████████████████████████████████▎ | 131/163 [04:17<01:13, 2.28s/it]
Working on object type:Đĩa
81%|████████████████████████████████████████████████████████████████▊ | 132/163 [04:19<01:07, 2.17s/it]
Working on object type:Khay_trữ_đông
82%|█████████████████████████████████████████████████████████████████▎ | 133/163 [04:21<00:59, 1.99s/it]
Working on object type:Khay_ăn
82%|█████████████████████████████████████████████████████████████████▊ | 134/163 [04:24<01:03, 2.20s/it]
Working on object type:Tháp
83%|██████████████████████████████████████████████████████████████████▎ | 135/163 [04:25<00:59, 2.12s/it]
Working on object type:Xe_đẩy_phụ_kiện
83%|██████████████████████████████████████████████████████████████████▋ | 136/163 [04:28<00:57, 2.13s/it]
Working on object type:đồ_chơi_hỗ_trợ_học_tập
84%|███████████████████████████████████████████████████████████████████▏ | 137/163 [04:30<00:54, 2.09s/it]
Working on object type:Vô_lăng
85%|███████████████████████████████████████████████████████████████████▋ | 138/163 [04:31<00:49, 2.00s/it]
Working on object type:Quầy_đồ_chơi
85%|████████████████████████████████████████████████████████████████████▏ | 139/163 [04:33<00:45, 1.91s/it]
Working on object type:Vali_xe_đẩy
86%|████████████████████████████████████████████████████████████████████▋ | 140/163 [04:35<00:42, 1.86s/it]
Working on object type:Treo_cũi
87%|█████████████████████████████████████████████████████████████████████▏ | 141/163 [04:38<00:50, 2.31s/it]
Working on object type:Nhà_lều
87%|█████████████████████████████████████████████████████████████████████▋ | 142/163 [04:40<00:45, 2.16s/it]
Working on object type:Xếp_hình
88%|██████████████████████████████████████████████████████████████████████▏ | 143/163 [04:43<00:45, 2.28s/it]
Working on object type:chổi_cọ
88%|██████████████████████████████████████████████████████████████████████▋ | 144/163 [04:44<00:40, 2.11s/it]
Working on object type:Kệ_đứng
89%|███████████████████████████████████████████████████████████████████████▏ | 145/163 [04:46<00:36, 2.02s/it]
Working on object type:Thanh_đồ_chơi
90%|███████████████████████████████████████████████████████████████████████▋ | 146/163 [04:48<00:32, 1.91s/it]
Working on object type:Tủ_đồ_chơi
90%|████████████████████████████████████████████████████████████████████████▏ | 147/163 [04:49<00:29, 1.85s/it]
Working on object type:Hộp_đồ_chơi
91%|████████████████████████████████████████████████████████████████████████▋ | 148/163 [04:51<00:27, 1.82s/it]
Working on object type:Bộ_đồ_chơi
91%|█████████████████████████████████████████████████████████████████████████▏ | 149/163 [04:53<00:25, 1.79s/it]
Working on object type:úp_bình
92%|█████████████████████████████████████████████████████████████████████████▌ | 150/163 [04:56<00:28, 2.22s/it]
Working on object type:nắp_bình
93%|██████████████████████████████████████████████████████████████████████████ | 151/163 [04:58<00:24, 2.08s/it]
Working on object type:bấm_móng_tay
93%|██████████████████████████████████████████████████████████████████████████▌ | 152/163 [05:00<00:21, 1.95s/it]
Working on object type:máy_pha_sữa
94%|███████████████████████████████████████████████████████████████████████████ | 153/163 [05:01<00:18, 1.86s/it]
Working on object type:hộp_trang_điểm
94%|███████████████████████████████████████████████████████████████████████████▌ | 154/163 [05:03<00:15, 1.77s/it]
Working on object type:Quan_áo
95%|████████████████████████████████████████████████████████████████████████████ | 155/163 [05:05<00:14, 1.77s/it]
Working on object type:trợ_ti
96%|████████████████████████████████████████████████████████████████████████████▌ | 156/163 [05:06<00:12, 1.80s/it]
Working on object type:đá_kho
96%|█████████████████████████████████████████████████████████████████████████████ | 157/163 [05:08<00:10, 1.81s/it]
Working on object type:giá_sách
97%|█████████████████████████████████████████████████████████████████████████████▌ | 158/163 [05:10<00:09, 1.80s/it]
Working on object type:thước_đo
98%|██████████████████████████████████████████████████████████████████████████████ | 159/163 [05:12<00:07, 1.79s/it]
Working on object type:bịt_ổ_điện
98%|██████████████████████████████████████████████████████████████████████████████▌ | 160/163 [05:13<00:05, 1.77s/it]
Working on object type:phấn_rôm
99%|███████████████████████████████████████████████████████████████████████████████ | 161/163 [05:15<00:03, 1.76s/it]
Working on object type:nắp_bồn_cầu
99%|███████████████████████████████████████████████████████████████████████████████▌| 162/163 [05:17<00:01, 1.74s/it]
Working on object type:xe_bí_ngô
100%|████████████████████████████████████████████████████████████████████████████████| 163/163 [05:19<00:00, 1.96s/it]
In [24]:
final_dict
Out[24]:
{'Ghế_ăn': [5276, 3186],
 'Ghế_rung': [1156, 667],
 'Ghế_ô_tô': [787, 490],
 'Xe_tập_đi': [2281, 1404],
 'Thanh_chắn_giường': [3807, 2115],
 'Xe_đẩy': [7260, 4094],
 'Giuong': [4591, 2443],
 'Nôi': [7184, 3032],
 'Thảm': [18305, 6522],
 'Địu': [5136, 2233],
 'Yem': [1098, 550],
 'Ghế_đa_năng': [278, 213],
 'Giấy_ướt': [173, 99],
 'Cọ_bình': [115, 64],
 'Balo': [2985, 1541],
 'Cốc': [2962, 1382],
 'Nước_giặt': [157, 88],
 'Thú_nhún': [1031, 630],
 'Cầu_trượt': [3257, 1923],
 'Quây': [11372, 5082],
 'Thú_bông': [102, 65],
 'Chậu': [1475, 726],
 'Ghế_tắm': [44, 34],
 'Xích_đu': [2227, 1370],
 'Nhiệt_kế': [685, 392],
 'Máy_tiệt_trùng': [1120, 726],
 'Máy_hâm_sữa': [1392, 756],
 'Máy_hút_sữa': [4242, 2417],
 'Máy_hút_sữa_phụ_kiện': [2776, 1462],
 'Máy_đun_nước': [283, 182],
 'Máy_chế_biến': [257, 167],
 'Máy_hút_mũi': [1855, 1073],
 'Máy_dũa_móng': [44, 27],
 'Máy_tạo_ẩm': [482, 301],
 'Máy_xay': [1185, 749],
 'máy_ủ_ấm': [68, 51],
 'Sách': [833, 559],
 'Đàn': [840, 457],
 'Bàn_chải': [308, 170],
 'Bàn': [2413, 1482],
 'Bể_bơi': [4358, 2467],
 'Bô': [1476, 810],
 'Chăn': [973, 520],
 'Đệm': [2454, 1415],
 'Gặm_nướu': [3, 3],
 'Xúc_xắc': [395, 247],
 'Đai': [1664, 962],
 'Khăn': [1516, 799],
 'Ghế_gội_đầu': [127, 89],
 'Ghế_nhún': [154, 112],
 'Ghế_hơi': [164, 127],
 'Bộ_bàn_ghế': [812, 557],
 'Xe_chòi_chân': [1619, 989],
 'Vali_xe_chòi_chân': [19, 16],
 'Nồi_nấu': [194, 149],
 'Tăm_bông': [27, 13],
 'Sữa_tắm': [230, 133],
 'Sữa_dưỡng': [3, 3],
 'Bông_tắm': [10, 7],
 'Xe_3_bánh': [324, 250],
 'Xe_nadle': [370, 262],
 'Xe_cân_bằng': [237, 187],
 'xe_3_giai_đọan': [0, 0],
 'Gối': [4070, 1650],
 'Phơi_bình_sữa': [35, 28],
 'Giàn_phơi': [84, 59],
 'Ru_ngủ': [241, 176],
 'Bộ_rối_ngón_tay': [72, 52],
 'Phao': [5620, 2771],
 'Bộ_cánh': [21, 17],
 'Áo_hút_sữa': [365, 258],
 'Nước_rửa': [550, 290],
 'Nước_xả': [27, 15],
 'Lót_ngồi_toilet': [17, 14],
 'dung_dịch_vệ_sinh': [4, 4],
 'Bình_tập_uống': [53, 46],
 'Bình_đun_nước': [74, 52],
 'Bình_thìa': [63, 44],
 'Bình_sữa': [1834, 1229],
 'Binh_uong_nước': [21, 19],
 'Bình_pha_sữa': [205, 123],
 'bình_tiểu': [15, 10],
 'Ti_giả': [711, 420],
 'Kệ': [3545, 1749],
 'Thanh_nối_chặn': [488, 344],
 'Lấy_dáy_tai': [3, 3],
 'Mũ_gội_đầu': [24, 19],
 'Thang_hỗ_trợ': [4, 3],
 'Túi_trữ_sữa': [572, 304],
 'Tấm': [0, 0],
 'Tông_đơ': [383, 241],
 'Túi_giữ_nhiệt': [132, 97],
 'Chia_thức_ăn': [37, 27],
 'Chăm_sóc_răng': [15, 11],
 'Ngựa_bập_bệnh': [629, 472],
 'Set_ăn_dặm': [57, 48],
 'Lục_lạc': [148, 89],
 'Bóng_lục_lạc': [5, 4],
 'ghế_tròn': [22, 18],
 'bộ_ghế': [49, 40],
 'ghế_nhảy': [69, 50],
 'ghế_dê_nhỏ': [0, 0],
 'ghế_gấu_trúc': [42, 34],
 'ghế_tựa': [31, 23],
 'Hộp_đựng': [275, 206],
 'Thìa': [734, 414],
 'Nồi_cơm_điện': [462, 296],
 'U_cháo': [360, 246],
 'Túi_hâm_sữa': [297, 210],
 'Túi_nhai': [119, 71],
 'Túi_ăn': [25, 20],
 'Nước_hoa': [12, 10],
 'Võng_dỡ': [0, 0],
 'làn': [79, 60],
 'móc_treo': [33, 22],
 'dập_núm': [4, 3],
 'Màn': [1197, 670],
 'Chiếu_xe_đẩy': [3, 3],
 'Lót_thẩm_sữa': [155, 91],
 'Kem_đánh_răng': [44, 26],
 'Kem_hăm': [17, 12],
 'Kem_dưỡng_ẩm': [5, 4],
 'Set_xe_đẩy_ghế': [5, 4],
 'Núm': [1306, 608],
 'Tủ_úp_bình': [20, 16],
 'Tủ_nhựa': [174, 145],
 'Hộp_chia_sữa': [3, 3],
 'Bát': [1555, 857],
 'Đồ_sơ_sinh': [59, 49],
 'Kiện_bể_bơi': [0, 0],
 'Chăm_sóc_sức_khỏe': [52, 36],
 'Đĩa': [61, 50],
 'Khay_trữ_đông': [62, 39],
 'Khay_ăn': [239, 176],
 'Tháp': [725, 437],
 'Xe_đẩy_phụ_kiện': [143, 108],
 'đồ_chơi_hỗ_trợ_học_tập': [27, 20],
 'Vô_lăng': [219, 148],
 'Quầy_đồ_chơi': [3, 3],
 'Vali_xe_đẩy': [89, 78],
 'Treo_cũi': [218, 124],
 'Nhà_lều': [7, 7],
 'Xếp_hình': [81, 56],
 'chổi_cọ': [3, 3],
 'Kệ_đứng': [80, 66],
 'Thanh_đồ_chơi': [24, 16],
 'Tủ_đồ_chơi': [23, 21],
 'Hộp_đồ_chơi': [42, 34],
 'Bộ_đồ_chơi': [513, 400],
 'úp_bình': [237, 164],
 'nắp_bình': [42, 26],
 'bấm_móng_tay': [16, 12],
 'máy_pha_sữa': [1842, 1161],
 'hộp_trang_điểm': [20, 13],
 'Quan_áo': [244, 201],
 'trợ_ti': [50, 27],
 'đá_kho': [463, 281],
 'giá_sách': [94, 58],
 'thước_đo': [80, 55],
 'bịt_ổ_điện': [59, 31],
 'phấn_rôm': [6, 5],
 'nắp_bồn_cầu': [9, 8],
 'xe_bí_ngô': [0, 0]}
In [25]:
df_count = pd.DataFrame.from_dict(final_dict, orient='index')
In [26]:
df_count.reset_index(inplace=True)
In [27]:
df_count.rename(columns={'index':'Object_type', 0:'Count_of_chat', 1:'Count_of_customer'}, inplace=True)
In [28]:
df_count.head(20)
Out[28]:
In [29]:
total_chat = df_count['Count_of_chat'].sum()
total_customer = df_['label'].nunique()
In [30]:
total_chat, total_customer
Out[30]:
(152024, 55523)
In [31]:
df_count['percentage_of_customer'] = df_count['Count_of_customer']/total_customer*100
In [32]:
df_count.head()
Out[32]:
In [33]:
df_count.sort_values(by=['percentage_of_customer'], ascending=False)
Out[33]:

SUMMARIZED BY NUMBER OF CHAT SENTENCES

In [34]:
df_sen = df_count[['Object_type', 'Count_of_chat']].sort_values(by=['Count_of_chat'], ascending=False)
In [35]:
df_sen.head()
Out[35]:
In [36]:
trace=go.Pie(labels=df_sen['Object_type'], values=df_sen['Count_of_chat'], hole=.4)
layout = go.Layout(height=800)
    
fig = go.Figure(data=[trace], layout=layout)
fig.update_traces(hoverinfo='label+percent+value', textinfo='label+percent', textfont_size=12)
fig.update(layout_title_text='SUMMARIZED BY NUMBER OF CHAT SENTENCES',
           layout_showlegend=True)
fig.update_layout(    
    annotations=[dict(text='OBJECT TYPE RANKING', font_size=20, showarrow=False)])
fig.show()

PERCENTAGE OF CUSTOMERS ASK ABOUT AN OBJECT TYPE

Percentage of an object type = Number of customers asked about it / Total customer in chatlog

In [37]:
df_cus = df_count[['Object_type', 'Count_of_customer', 'percentage_of_customer']].sort_values(by=['percentage_of_customer'], ascending=False)
In [38]:
df_cus.head()
Out[38]:
In [39]:
df_cus_top_20 = df_cus[:20]
In [40]:
fig_2 = px.bar(df_cus_top_20, x='Object_type', y='percentage_of_customer', text="Count_of_customer")
fig_2.update(layout_title_text='TOP 20 OBJECT TYPE _ SUMMARIZED BY PERCENTAGE OF CUSTOMERS',
           layout_showlegend=True)
fig_2.show()
In [42]:
df_count.to_excel(r'C:\Users\Phuong Bio\Desktop\phuongpv\Working Data\chatbot\20191230_object type ranking\20191231_object_type_ranking_full_info.xlsx', index=False)
In [43]:
pd.set_option('display.max_rows', None)
In [44]:
df_count
Out[44]:
In [ ]: