当前位置:   article > 正文

大模型 角色化生成 源码解析:/data/pre.py_大模型源代码

大模型源代码

https://github.com/ArtificialZeng/GuoDegang-Generation/blob/main/data/pre.py

  1. import os
  2. import re
  3. from tqdm import tqdm
  4. import thulac  # 导入thulac库,thulac是清华大学开发的一个用于中文文本分词和词性标注的工具。
  5. fout = open('crosstalk.txt', 'wb')  # 创建一个以二进制写模式('wb')打开的文件对象,用于写入处理后的内容。
  6. thu1 = thulac.thulac()  # 创建一个 thulac 对象,用于后续的文本分词操作。
  7. for fname in os.listdir('./data'):  # 遍历当前目录下 data 子目录内的所有文件。
  8.     fin = open('./data/' + fname, 'rb')  # 以二进制读模式('rb')打开一个文件,该文件的名字由 data 子目录和当前遍历到的文件名构成。
  9.     lst_line = None  # 初始化 lst_line 变量,用于存储前一行的数据。
  10.     for line in fin:  # 遍历当前打开的文件中的每一行。
  11.         line = line.decode('gbk')  # 将二进制格式的行内容解码为 'gbk' 编码的字符串。
  12.         line = line[line.find(':') + 1:].strip()  # 去掉每一行中 ':' 符号前的所有字符,然后使用 `strip()` 方法去除字符串两侧的空格。
  13.         line = ' '.join([x[0] for x in thu1.cut(line, text=False)]) + '\n'  # 使用 thulac 对每一行进行分词,然后将得到的分词结果用空格连接起来。
  14.         # pattern = re.compile('.')
  15.         # line = ' '.join(pattern.findall(line)) + '\n'
  16.         if lst_line is not None:  # 检查 lst_line 是否为 None,如果不是,说明已经处理过至少一行数据。
  17.             fout.write(lst_line.encode('utf-8'))  # 将 lst_line 和当前行的内容以 'utf-8' 编码格式写入到输出文件。
  18.             fout.write(line.encode('utf-8'))  # 将 lst_line 和当前行的内容以 'utf-8' 编码格式写入到输出文件。
  19.             lst_line = None  # 重置 lst_line 变量为 None,准备处理下一对行。
  20.         else:
  21.             lst_line = line  # 如果 lst_line 是 None,说明这是正在处理的第一行,或者上一对行已经写入输出文件。将当前行的内容保存到 lst_line,准备和下一行一起写入输出文件。


'''
这段代码主要用于处理存储在 './data' 文件夹下的文本文件,它执行以下步骤:

首先,该代码使用 thulac,一个中文文本分词和词性标注工具,初始化了一个 thulac 对象。

它遍历 './data' 文件夹中的所有文件。对于每个文件,它会逐行读取内容。

对于读取到的每一行,它先使用 'gbk' 编码进行解码,然后移除了字符串中 ":" 之前的所有字符,同时去除了字符串两端的空白字符。

接着,它使用 thulac 对字符串进行分词,并将分词后的结果用空格连接起来。

这段代码接着检查前一行(如果存在的话)是否已经写入输出文件,如果是,则重置 lst_line 变量为 None,否则,将当前行存储到 lst_line。

当 lst_line 不为 None 时,它会将 lst_line 和当前行的内容编码为 'utf-8',并写入输出文件 'crosstalk.txt'。

综上所述,这段代码主要用于处理 './data' 文件夹下的文件,使用 thulac 对文本进行分词,并将处理后的结果写入输出文件 'crosstalk.txt'。注意,它每次都是处理一对行,然后将这一对行写入到输出文件中。'''

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/374647
推荐阅读
相关标签
  

闽ICP备14008679号