使用简单的Python命令更新支持日志
在此博客中,我将说明如何使用简单的
机器学习概念来丰富我们自己的组织或客户组织中的呼叫中心/支持部门活动。该博客仅提供了关于如何以及如何使用ML改变当前环境的见解,以便为解决客户电话问题提供更好的服务时间,并避免由同一位客户的多个用户重复提出的相同问题而稍有差异因此增加了问题积压的数量。
该博客主要侧重于数据科学工具和技术的使用,并假定读者了解概念。在此博客的第一部分中,让我们看看如何开始创建有用的问题解决日志,这对于呼叫中心/支持L1,L2(1级和2级)人员非常方便,因为一旦产品置于生产/现场环境中。
但是,在进入解析日志之前,让我们首先快速查看所需的工具和技术,然后再次刷新我们的知识。
Python字典对象的功能
字典是集合的键,值对,它是无序的,可变的和索引的。在Python中,字典用大括号括起来。字典本身是可变的,因此可以随时添加,删除和更改条目。但是,由于条目是通过其键访问的,因此不能有两个键相同的条目。
字典的一些例子是-
empty_dictionary {}
person_age_dictionary {'Mahesh':'21','Suresh':'34','Naresh':'16'}
vehicle_names_dictionary {'Tata':('Nexson','Harrier'),'Maruti':('Ciaz','Alto','800')}
要访问字典,我们可以使用.items()方法,例如
person_age_dictionary.items()
输出:
dict_items([('Mahesh','21'),('Suresh','34'),('Naresh','16')])
同样,为了分别访问键和值,我们可以使用.key()
我们还可以创建一个嵌套字典,例如-
nested = {'Person_mobile':{'Mahesh':'Samsung','Suresh':'iPhone','Naresh':'Nakia'},
'mobile_model':{'samsung':'note20','iphone':'11 pro','Nakia':'7.1'}
}
在上面的代码中,nested ['Person_mobile'] ['Mahesh']将给出'samsung',nested ['mobile_model'] ['samsung']将返回'note20'。
要在字典中添加/添加新元素,我们可以
person_age_dictionary ['Ramesh'] ='40'
要从字典中删除特定元素,请执行以下操作:
person_age_dictionary.pop(i)
其中i是要删除的元素索引。.clear()方法删除所有元素。
现在,我们知道了使用python字典对象可以做的一切,让我们看看如何在日常工作中充分利用它,以发展我们自己组织中的支持部门。
对于本文,我正在使用我的私人数据,您可以通过类似的方式使用与您的工作有关的数据。
对于本文,我将介绍过去的银行领域产品(产品名称已屏蔽),该产品已在各种国有和私营部门银行中使用。在继续进行之前,典型的支持中心/数据中心以24×7的速度运行,并确保关键任务业务永不停止。
出现任何问题时,使用该产品的客户将联系呼叫中心,并且根据问题的性质,需要在服务水平协议内提供解决方案。一旦产品稳定下来,大多数呼叫将由L1(级别1)团队处理,如果遇到任何需要修复的新问题,L2(级别2团队)也会介入。
一位特定客户的历史问题数据集将包含以下详细信息:
产品
版
发行编号/票证编号
问题说明
优先级(1/2/3/4)-P1,P2呼叫由于某种原因中断了操作,因此需要立即解决
发布日期(提供修复程序时)
最终状态(打开/关闭/路线图/自定义)
采取的行动(所有未解决的问题都要提及发行计划)
公司备注(所有路线图备注)
测试日期(银行团队测试日期)
银行注释(用于自定义以及最后的结帐/承兑汇票)
解决方案(解决此问题的方法,此处将提及)
可以从Siebel或Jira等工具中以excel或CSV格式提取这些数据,如今大多数公司也使用这些数据
现在,我将仅使用“问题描述”和“解决方案”列
让我们使用以上内容创建所有必要的字典
使用以下代码从CSV文件(python代码)创建客户产品字典
导入csv
reader = csv.reader(open('filename.csv','r'))
d = {}
对于阅读器中的行:
   k,v =行
   d [k] = v
客户-产品字典样本结构
{C1:pv1,C2:pv2,C3:pv8,... C10:pv20-> cdict(客户名-键,产品版本-值。
(例如旁遮普国家银行xyz产品版本1.0)
样本结果:
{
“旁遮普国家银行”:“ xyz1.0”,
'印度联合银行':'xyz2.0',
“东方商业银行”:“ xyz2.5”,
“ ICICI银行”:“ xyz2.5”,
'Axis Bank':'xyz2.5',
'Baroda银行':'xyz2.5'
…..
}
上面的词典可以很容易地通过客户列表:C1,C2,C3….C10和产品版本列表:pv1,pv2,pv25,pv3,pv8,pv20来创建,支持团队将提供它们。下一个,
从csv文件创建版本问题字典(请参见上面的代码)
产品版本问题字典示例结构
verISS = {pv11:I1,pv2:I2….pv20300:I300}
在这里,pv11表示版本1,票号为1,I1同样是发行/票证的问题
样本结果:
{
'xyz2.0tkt1':'在“税收征收”的营业税方案中,该字段用于捕获
PAN / GIR编号/ Reg。没有?其他人只允许输入14位数字。而空间需要
增加到16位数字。”,
'xyz2.0tkt2':'将家庭养老金平均分配给
提供一位妻子。',
'xyz1.0tkt3':'在查询转出时,系统显示错误
:找不到404; 在此服务器上找不到/ xyz / jsp / bond / xyz_bond_transfer_out_selecting_jsp'
.....
}
从CSV文件创建问题解决字典(请参见上面的代码)
产品问题解决字典示例结构
issRES = {I11:R1,I12:R2 ......... I20300:R300}
在这里,I11表示版本1,票号为1,R1同样是提供的问题解决方案
样本结果:
{
“在税收征管的销售税计划中,该字段用于捕获PAN / GIR no / Reg的详细信息。没有?其他
只允许输入14位数字。而空间需要增加到16位数字。”:“执行
UAT环境中的ABC脚本,并验证营业税是否可以接受16位数字。执行
在生产环境中也是如此。服务需要停止并重新启动。系统停机时间必须
计划。',
“提供了向多于一名妻子同等支付家庭养老金的规定。”:
'目前,这需要在核心系统中解决。XYZ允许付款至
伴侣。养老金领取者指定的份额需要创建为两个信贷交易
(或由退休人员指定)在核心系统中。多配偶家庭养老金的这一特征
将在xyz8.0'中提供,
'在查询转出时,系统显示错误
:找不到404; 在此服务器上找不到/ xyz / jsp / bond / xyz_bond_transfer_out_selecting_jsp':
'将UAT环境中的xyz_bond_transfer_out_selecting_jsp复制到生产环境。请注意树脂
Web服务器需要重新启动。可以在营业时间之后执行,因为这只是查询
屏幕'
........
}
最后将创建一个customer_resolution_log作为嵌套字典
创建一个类似的嵌套字典(合并所有产品LTD-寿命的所有客户/版本的日期)
custIR = {'pvdict':{'pv11':'I1','pv12':'I2'.......'pv20300':'I300'}。
                 'irdict':{'I11':'R1','I12':'R2'.........'I20300':'R300'}}
现在,该词典包含了所有客户在不同地理位置,所有版本中使用该产品的所有问题。现在,每当提出新的生产票证时,要检查是否存在任何解决方案,
需要执行以下命令,
tktdesc = custIR ['verISS'] ['xyz2.0tkt1']
打印(tktdesc)
样本输出:'在“税收征管”中,该字段用于捕获
PAN / GIR编号/ Reg。没有?其他人只允许输入14位数字。而空间需要
增加到16位数字。”
b)tktres = custIR ['issRES'] [tktdesc]
示例输出:  '在您的UAT环境中执行ABC脚本,并验证营业税是否可以接受16位数字。在生产环境中执行相同的操作。服务需要停止并重新启动。需要计划系统停机时间。”
现在,当举起新票证以检查是否已为此票证提供任何解决方案时,
可以直接执行步骤b)。如果确实存在解决方案,那就是存在问题的关键,那么我们可以避免
可以再次提供同一张票证,同时还可以立即解决(可以减少时间)。
现在,我们可以将所有这些组合到一个简单的python程序中(少于10-12行代码),以提示票证说明作为字符串输入,并将其传递到customer_resolution_log词典以获得所需的输出。 此处的代码很普通,但是在解析服务时间以及避免来自多个用户的重复票证方面都产生了很大影响。
最后,我们可以将其捆绑为可执行文件,可以从终端或命令行运行
用于创建python可执行文件的代码
的Linux
从终端
$ chmod + x myscript.py
$ ./myfile.py
Windows 10(创建独立的exe文件)
1.pip install pyinstaller(如果尚未安装)
2.转到存在.py的文件夹
3.转到anaconda powershell终端4。
4.执行。\ pyinstaller –onefile -w'filename.py'
5.它将创建一个dist文件夹,并在其中创建exe文件
(如果在超过最大递归深度时遇到任何错误,请执行以下步骤)
pyinstaller filename.py(创建.spec文件)
导入sys(在.spec文件的开头添加)
sys.setrecursionlimit(5000)
pyinstaller文件名。规格
我在此博客的开头提到过机器学习吗?但是在本博客中,我仅使用了python字典。在本博客的下一部分中,我将撰写博客,介绍如何使用NLP来帮助识别跨客户位置提出的类似故障单,以及如何自动化故障单优先级。
题库