暴力匹配(数据思维赛-安全文本信息抽取)

训练集有四列数据:

 id为序号,sentence_idx为语句的序号,words为从一条语句中解析出的单词,tag为每个word对应的tag标签。

 

test集给出前三列数据,求每一个word对应的tag数据。

 

经过观察,发现训练集和测试集有大量的重复数据,所以尝试使用硬匹配的方式给出一份数据:

 1 import pandas as pd
 2 import time
 3 
 4 train_data = pd.read_csv('train.csv',converters={i: str for i in range(0, 100)})
 5 test_data = pd.read_csv('test.csv',converters={i: str for i in range(0, 100)})
 6 
 7 train_words = train_data['words'].values.tolist()
 8 train_tag = train_data['tag'].values.tolist()
 9 test_words = test_data['words'].values.tolist()
10 
11 pred=[]
12 time_start=time.time()
13 for i in range(len(test_words)):
14     if i%10000==0:
15         print("***结束查找 ",i,"")
16         time_end=time.time()
17         print("---执行了 ",time_end - time_start," 秒\n")
18         time_start=time.time()
19     x=test_words[i].lower()
20     if x in train_words:
21         j=train_words.index(x)
22         pred.append(train_tag[j])
23     else:
24         pred.append(str(0))
25     
26 test_data['tag']=pred
27 
28 #test_data = pd.DataFrame({'id': test_data['id'], 'tag': pred})
29 test_data.to_csv('result.csv', index=False)

 

posted @ 2023-05-27 11:22  打铁老鱼  阅读(18)  评论(0)    收藏  举报