文章目录
- 完整代码
- 时间转化和提取
- 各种对象类型转换
- 时间序列
- 类属性
- 数据转换
完整代码
import jieba.analyse
import jieba.posseg as pseg
from wordcloud import WordCloud
import xlsxwriter
# encoding=gbk
import xlsxwriter
f = open('E:/data/xieyangteng/review.txt', 'r', encoding='utf-8')
s = f.read()
print(type(s))
# print(s)
def cut_sentences(content): # 实现分句的函数,content参数是传入的文本字符串
# 这个结束符号可以加中文的 , 但是暂时没有加
end_flag = ['?', '!', '.', '?', '!', '。'] # 结束符号,包含中文和英文的
content_len = len(content)
sentences = [] # 存储每一个句子的列表
tmp_char = ''
for idx, char in enumerate(content):
tmp_char += char # 拼接字符
if (idx + 1) == content_len: # 判断是否已经到了最后一位
sentences.append(tmp_char.strip().replace('\ufeff', ''))
break
if char in end_flag: # 判断此字符是否为结束符号
# 再判断下一个字符是否为结束符号,如果不是结束符号,则切分句子
next_idx = idx + 1
if not content[next_idx] in end_flag:
sentences.append(tmp_char.strip().replace('\ufeff', ''))
tmp_char = ''
return sentences # 函数返回一个包含分割后的每一个完整句子的列表
sentence_list = cut_sentences(s)
# 导入Excel
# 一:创建工作簿
workbook = xlsxwriter.Workbook('xieyangteng.xlsx') # 创建一个excel文件
# 二:创建工作表
worksheet1 = workbook.add_worksheet('test-sheet1') # 在文件中创建一个名为test-sheet1的sheet,不加名字默认为sheet1
worksheet2 = workbook.add_worksheet() # Sheet2
worksheet3 = workbook.add_worksheet('test-sheet2')
worksheet4 = workbook.add_worksheet() # Sheet4
# 三:设置单元格的值
worksheet1.write('A1', '对话语句') # 在A1单元格写上语句
worksheet1.write('B1', '分类的类别') # 在B1单元格写上要分类的label
# 使用行列方式,下标从0开始
j = 1
for i in sentence_list:
worksheet1.write(j, 0, i) # 第3行第1列(即A3) 写入100
worksheet1.set_column(j, 0, 120)
worksheet1.set_column(j, 1, 20)
print("success!")
j += 1
workbook.close()
时间转化和提取
00:01:30,050 --> 00:01:44,280
这样一个字符串,如何提取出时间序列。
泪目终于找到我要的代码了开心哭了。
这一串是正则匹配时间提取的核心技术。
各种对象类型转换
参考这个
时间序列
现在成功切分出了
start time 和 end time
start time 00:00:00
end time 00:00:02
格式是这个样子的,
但是 如何计算
参考正则匹配时间序列:
可以学学人家的代码写作思路。
类属性
初始化属性和不初始化属性的区别,
可以在这篇博客 体会一下
数据转换
提取的转为时间的字符串,保存为float 保留
a = 12.3456
a1 = round(a,2) # 保留小数点后两位
a2 = round(a,3) # 保留小数点后三位
print(a1)
print(a2)
时间分开合并的时候有报错
int() argument must be a string, a bytes-like object or a number, not 'built
我这打印过了 都是 str类型00:00:00
分了三个 每个都是str类型
先转成 int()之后在计算,成功解决!