【发布时间】:2022-11-24 06:14:11
【问题描述】:
我试图从我的输入文件中获取所有行并将它们保存在列表dataset_texts 和dataset_labels 中。但是我只得到输入文件的最后一行。
变量text_str获取行中的文本序列,变量labels_str保存同一行文本序列对应的向量。变量label保存了1在vector中的位置。最后我想将这些行保存在两个列表dataset_texts 和dataset_labels 中,但出于某种我无法理解的原因,它只保存了最后一行。
请建议我如何获得包含我的所有行及其在向量中各自位置 1 的列表? 这是我到目前为止的代码,并逐行检查。
from transformers import BertTokenizer
import torch
import re
training_set_path = '../test.txt'
regexp = r'^(.*)\t(\d+)$'
dataset_texts = list()
dataset_labels = list()
input_file = open(training_set_path, 'rb' )
print("Dataset loaded")
num_labels = 0
print("Num_labels")
print(num_labels)
#labels_str = [] # added by me
for line in input_file:
line = line.decode( errors = 'replace' )
#print(line)
if re.match(regexp, line):
text_str = re.findall( regexp, line )[0][0] # getting the aa sequence
print("here text_str")
print(text_str)
labels_str = re.findall( regexp, line )[0][1] # getting the corresponding vector
print("here labels_str")
print(labels_str)
label = labels_str.index('1')
print("here label")
print(label)
dataset_texts.append( text_str )
dataset_labels.append( label )
num_labels = len(labels_str)
print("Here length num_labels")
print(num_labels)
counter += 1
# else:
# break
input_file.close()
print("______________________________________________________________________")
print("Here dataset_text")
print(dataset_texts)
print("Here dataset_labels")
print(dataset_labels)
output_file = open( logs_path, 'w')
num_labels = len(labels_str)
我的输出如下:
Dataset loaded
Num_labels
0
here text_str
Q Q L R K P A E E L G R E I T H Q L F L L G C G A Q M L K Y A S P P M A Q A W C Q V M L D T R G G V R L S E Q I Q N D L L
here labels_str
1000000000000000000000000000000000000000000000000000000000000
here label
0
Here length num_labels
61
______________________________________________________________________
Here dataset_text
['Q Q L R K P A E E L G R E I T H Q L F L L G C G A Q M L K Y A S P P M A Q A W C Q V M L D T R G G V R L S E Q I Q N D L L']
Here dataset_labels
[0]
【问题讨论】:
-
你能提供一些输入文本文件的样本吗?