File size: 2,506 Bytes
fc9ae4e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import pandas as pd
import os
from typing import List

# --- 配置参数 ---
INPUT_CSV_PATH = "/home/hsichen/part_time/BERT_finetune/dataset_pretrain/Experiment_sentences_training_filtered_part1.csv"
# 输出的纯文本文件路径 (用于 DAPT 脚本中的 DOMAIN_TEXT_FILE)
OUTPUT_TXT_PATH = "/home/hsichen/part_time/BERT_finetune/dataset_pretrain/domain_corpus.txt"
# 纯文本文件的编码
ENCODING = 'utf-8'

def prepare_dapt_data(input_csv_path: str, output_txt_path: str, encoding: str):
    """
    从 CSV 文件中提取 'sentence' 列,并保存为纯文本文件,每行一个句子。
    
    Args:
        input_csv_path: 原始 CSV 文件的路径。
        output_txt_path: 目标纯文本文件的路径。
        encoding: 文件编码。
    """
    print(f"--- 1. 读取数据: {input_csv_path} ---")
    
    try:
        # 尝试读取 CSV 文件
        # 假设文件不含复杂编码问题,使用默认读取
        df = pd.read_csv(input_csv_path)
    except FileNotFoundError:
        print(f"错误:输入文件未找到在路径: {input_csv_path}")
        return
    except Exception as e:
        print(f"读取 CSV 文件时发生错误: {e}")
        return
        
    # --- 2. 数据处理与清洗 ---
    
    # 检查 'sentence' 列是否存在
    if 'sentence' not in df.columns:
        print("错误:CSV 文件中未找到 'sentence' 列。请检查列名是否正确。")
        return
        
    # 提取 'sentence' 列,并去除 NaN 值
    sentences: List[str] = df['sentence'].dropna().astype(str).tolist()
    
    if not sentences:
        print("警告:'sentence' 列中没有有效数据,无法生成语料库。")
        return
    
    # 简单清洗:去除多余的空格或换行符(如果有的话)
    sentences = [s.strip() for s in sentences]
    
    print(f"提取到 {len(sentences)} 条有效句子。")

    # --- 3. 保存为纯文本文件 ---
    print(f"--- 3. 保存至纯文本文件: {output_txt_path} ---")
    
    # 将句子列表写入文件,每行一个句子
    try:
        with open(output_txt_path, 'w', encoding=encoding) as f:
            f.write('\n'.join(sentences))
        
        print(f"数据成功保存!")
        
    except Exception as e:
        print(f"写入文件时发生错误: {e}")
        
# --- 运行主函数 ---
if __name__ == "__main__":
    # 请确保您已安装 pandas: pip install pandas
    prepare_dapt_data(INPUT_CSV_PATH, OUTPUT_TXT_PATH, ENCODING)