毕业设计中用到的列表应用

毕业设计中用到的列表应用

本人的毕业设计题目为“基于刑事电子卷宗分析的罪名与刑期预测”,在做毕设的过程中遇到了很多问题,走了很多弯路,最终将问题一一解决了。下面,我向大家分享一下我所遇到的问题和解决方案:
(1)列表的嵌套
毕业设计的第一步是数据整理,即把法律文档整理成DataFrame的形式。其中,
DataFrame的一列为法条标签,每个法律文本对应法条标签;这时候,需要将法条标签整理成嵌套列表的形式,即每条法律文本的法律标签保存在一个列表中,所有的列表汇集在一起,形成一个新的列表。形式如下:

a=[[1,2],[3,4,5],[6,7,8,9],[10]]

我们称这种形式的列表为嵌套列表,嵌套列表的处理方式与普通列表有些区别。下面进行详细介绍:

1.切片方式
与普通列表不同,嵌套列表的切片方式分为“一级切片”和“二级切片”,下面详细介绍用法:
一级切片”(返回列表):

a[3]

输出结果:10

a[0:3]

输出结果:[[1, 2], [3, 4, 5], [6, 7, 8, 9]]

二级切片”(返回列表或者一个数值):

a[1][0]

输出结果:3

a[1][0:2]

输出结果:[3,4]

a[0:2][0:3]

输出结果:[[1, 2], [3, 4, 5]]

2.遍历方式

与普通列表不同,嵌套列表的遍历方式需要用双重循环。我们先用通常的想法来进行列表的遍历,如下所示:

for i in a:
    for j in i:
        if j==1:
            j=11
print(a)

输出结果:[[1, 2], [3, 4, 5], [6, 7, 8, 9], [10]],这与我们预期的输出结果不符。所以,我们换一种遍历方式:

for i in range(0,len(a)):
    for j in range(0,len(a[i])):
        if a[i][j]==1:
            a[i][j]=11
print(a)

输出结果:[[11, 2], [3, 4, 5], [6, 7, 8, 9], [10]],完全正确。可见,range方法还是稳啊

(2)jieba分词器生成的列表

通过查阅资料可知,jieba.lcut可以对文本进行分词,并将分词后的结果保存在列表中,列表的每个元素就是分词后的每个词。示例如下:

b=jieba.lcut('元芳你怎么看?我就趴窗口上看呗!')
print(b)

输出结果:[‘元芳’, ‘你’, ‘怎么’, ‘看’, ‘?’, ‘我’, ‘就’, ‘趴’, ‘窗口’, ‘上’, ‘看’, ‘呗’, ‘!’]

分词后需要去停用词,并且需要用空格分隔列表中的元素。示例如下:

首先导入停用词列表文件

stopword=[line.strip() for line in open('C:/Users/hp/Desktop/毕业设计/毕设/minglue/publish/data/user_data/stopwords.txt','r',encoding='utf-8').readlines()]

然后去停用词,有两种方式

(1)用del方式直接去停用词:

result=[]
for i in range(0,len(b)):
    if b[i] in stopword:
        del b[i]
result.append(' '.join(b))
print(result)

输出结果:[‘元芳 趴 窗口’]

(2)先将停用词转化为空格,再遍历列表去空格

result=[]
for i in range(0,len(b)):
    if b[i] in stopword:
        b[i]=' '
while ' ' in b:
    b.remove(' ')
result.append(' '.join(b))
print(result)

输出结果:[‘元芳 趴 窗口’]
(ps:本人做毕业设计的时候,第一种方式总出bug,调试不通,被迫换第二种方式。可能是当时del用的不对,也可能是其他原因)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值