我有一个csv文件,格式为:
text, class
text0,class0
text1,class1
..., ...
我导入文件,然后通过以下方式将列放入列表中
:textt=data['text']
classs=data['class']
然后我运行一个脚本,将每个文本分为两类。
for i in textt:
#classify text
text_class=#guessed_text_class
我想将text_class与每一行的类进行比较,然后执行:
if text_class==class:
print('correct')
编辑:例如: csv文件如下所示:
text, class
'I hate Billy', 'Joe'
'I love Joe', 'Joe'
'I love Billy', 'Billy'
文件导入:
with open('csv_file', 'rU') as infile:
reader=csv.DictReader(infile)
data={}
for row in reader:
for header, value in row.items():
try:
data[header].append(value)
except KeyError:
data[header]=[value]
textt = data ['Text'] classes = data ['Class']
“文本”列中的每个句子都进行了分类:
for i in textt:
#classifies text
text_class=#guessed text class
我尝试查找text_class是否正确是
for i in range(len(textt))
if i=text_class:
print('correct')
但是,这结束了将列表中的最后一个类别项目(在本例中为“ Billy”)与类别项目进行比较。因此最终看起来像:
猜测的类将是: '乔' '乔' “比利”
但不进行比较:
'Joe'=='Joe'
'Joe'=='Joe'
'Billy'=='Billy'
它将进行比较:
'Billy'=='Joe'
'Billy'=='Joe'
'Billy'=='Billy'
答案 0 :(得分:1)
如果使用enumerate
函数,则假设两个列表中的顺序相同,则可以在同一迭代中检查结果。
for counter,i in enumerate(textt):
#classify text
text_class=#guessed_text_class
if text_class == classs[counter]:
print('correct')
答案 1 :(得分:1)
假设列表的长度相同,并且顺序正确,那么您可以简单地运行从0
到length-1
的循环,并比较您的类。
for i in range(len(classs)):
if text_class == classs[i]:
print("yes")
在您的情况下,我假设您想猜测该类,然后在同一循环中进行比较。因此,您可以使用以下实现。
for i in range(len(classs)): # or len(textt). Since, I assume both would be same
text_class = guess(textt[i])
if text_class == classs[i]:
print("yes")
答案 2 :(得分:1)
这是您要完成的意思吗?
for txt, cls in zip(textt, classs):
if txt==cls:
print('correct')