如何将txt文件中英文、乌尔都语文本转换为两列结构DataFrame
TXT乌尔都语-标签数据集转Pandas DataFrame实现方案
前置说明
该方案适配你描述的数据集结构:单条样本由2行组成,第一行为乌尔都语自然文本,第二行为对应英文标签(取值范围为Real/politics/sarcasm/rise moral),代码自带空行过滤、标签合法性校验逻辑,避免行错位导致的数据污染。
实现步骤
- 安装依赖
首先确保环境中已安装pandas,未安装的话执行以下命令:pip install pandas - 运行解析代码
将代码中的文件路径替换为你本地txt数据集的实际路径后运行即可:import pandas as pd # 替换为你的txt文件实际存储路径 TXT_PATH = "your_urdu_dataset.txt" # 定义合法标签集合,用于校验行错位、异常值 LEGAL_LABELS = {"Real", "politics", "sarcasm", "rise moral"} # 读取文件 # 注意:必须指定支持乌尔都语字符集的编码格式,否则读取后会出现乱码 with open(TXT_PATH, "r", encoding="utf-8") as f: # 逐行清洗:去掉首尾换行、空白字符,过滤无内容空行 raw_lines = [line.strip() for line in f if line.strip()] urdu_col = [] en_label_col = [] # 每2行作为一组遍历解析 for idx in range(0, len(raw_lines), 2): current_urdu = raw_lines[idx] current_label = raw_lines[idx + 1] # 仅保留标签合法的样本,过滤错位异常数据 if current_label in LEGAL_LABELS: urdu_col.append(current_urdu) en_label_col.append(current_label) # 生成目标DataFrame,列名可按需调整 df = pd.DataFrame({ "乌尔都语内容": urdu_col, "英文标签内容": en_label_col }) # 校验:打印前5条数据确认解析正确 print(df.head()) # 可选:将解析结果保存为CSV文件方便后续使用 df.to_csv("parsed_urdu_dataset.csv", index=False, encoding="utf-8-sig")
异常情况适配
- 如果读取时出现乌尔都语乱码,将open函数的
encoding参数替换为utf-8-sig即可适配带BOM头的TXT文件。 - 如果你的乌尔都语文本存在跨多行的情况,可以先在不同样本之间加固定分隔符(比如
---),修改解析逻辑为:按分隔符切分样本块,每个块的最后一行为标签,其余行拼接为乌尔都语文本即可。 - 如果标签存在大小写不统一、前后多余空格的问题,可以在校验前对标签做标准化处理,比如
current_label = current_label.strip()后再做值映射匹配。
内容的提问来源于stack exchange,提问作者Ahmad Mahmood
相关产品推荐
相关产品推荐

