python代码实现测试集test按照训练集的19个类别的顺序将各个样本按照关系类别归类,即相同关系类型的数据放到一个文本文件中,同样生成19个类别的测试文件,格式仍旧和测试文件保持一致。存放在exp1_test文件夹下,每个类别的文件仍旧命名为1_test.txt,2_test.txt… 同时对每个样本在原测试集中出现的位置进行记录,和19个测试文件一一对应起来。比如第一类“传闻不和”的每个样本在原文中处于第几行,在索引文件中进行记录,保存在文件index1.txt,index2.txt….
时间: 2023-06-12 21:06:48 浏览: 108
数据挖掘与数据分析应用案例 数据挖掘算法实践 基于Python的最近邻分类算法实现.doc
以下是实现该功能的Python代码:
```python
import os
# 训练集中各个关系类型的名称
relation_names = ['其他相关', '夫妻', '兄弟姐妹', '父母', '师生', '情侣', '同学', '朋友', '亲戚', '夫妻反目', '父子', '母子', '父女', '母女', '兄弟', '姐妹', '上下级', '合作', '竞争']
# 测试集文件夹路径
test_folder = 'exp1_test'
# 记录每个样本在原测试集中出现的位置
test_sample_positions = [[] for _ in range(19)]
# 读取测试集文件,按照关系类型归类
for i in range(1, 21):
with open('test/{}.txt'.format(i), 'r', encoding='utf-8') as f:
lines = f.readlines()
for j, line in enumerate(lines):
relation = line.split('\t')[0]
relation_index = relation_names.index(relation) # 关系类型在训练集中的索引
test_sample_positions[relation_index].append((i, j+1)) # 记录测试样本在原测试集中的位置
with open('{}/{}_test.txt'.format(test_folder, relation_index+1), 'a', encoding='utf-8') as f1:
f1.write(line)
# 保存样本位置信息到索引文件中
for i, positions in enumerate(test_sample_positions):
with open('index{}.txt'.format(i+1), 'w', encoding='utf-8') as f:
for pos in positions:
f.write('{}\t{}\n'.format(pos[0], pos[1]))
```
代码中使用了训练集中各个关系类型的名称和索引,将测试集中的各个样本按照关系类型归类,并保存到指定的文件中。同时,记录每个样本在原测试集中出现的位置,并保存到对应的索引文件中。
阅读全文