当我试图嵌套这个for循环时,我不断收到一个缩进错误,我不明白为什么。当我将它与嵌套在搜索栏[i-3:i + 3]中的“for-l”相同时,它会运行:“我只是在学习,所以我明白它可能不是最简洁的代码。谢谢你的时间。缩进错误没有意义 - Python
ne=pd.DataFrame()
for word in keywordList:
for i, line in enumerate(searchlines):
if word in line:
for l in searchlines[i-3:i+3]: oFile.write(fileName + delim + word + delim +str(i) + delim +str(l)) ## prints Unused MidFile for Reference
### Creates normal case line for Named Entity recognition & all Lower Case line for flagging keywords
#normalCaseLine = str(searchlines[i-3] + searchlines[i-2] + searchlines[i-1] + searchlines[i] + searchlines[i+1] + searchlines[i+2] + searchlines[i+3]).replace('\n',' ')
normalCaseLine = searchlines[i-3].rstrip('\n') + searchlines[i-2].rstrip('\n') + searchlines[i-1].rstrip('\n') + searchlines[i].rstrip('\n') + searchlines[i+1].rstrip('\n') + searchlines[i+2].rstrip('\n') + searchlines[i+3].rstrip('\n')
lowerCaseLine = normalCaseLine.lower()
result = dict((key, len(list(group))) for key, group in groupby(sorted(lowerCaseLine.split())))
### Get Detail Keywords
cleanResult = {word: result[word] for word in result if word in detailKeywordList}
cleanNormLine = normalCaseLine.replace('\x92s',' ').replace('\x92s',' ').replace('\x96',' ').replace('\x95',' ')
### Enter here if we need to seperate words ex. Tech Keywords
ner_output = st.tag(str(cleanNormLine).split())
chunked, pos = [], prev_tag=[], ""
ERROR IS HERE!!
for i, word_pos in enumerate(ner_output):
word, pos = word_pos
if pos in ['PERSON', 'ORGANIZATION', 'LOCATION','DATE','MONEY'] and pos == prev_tag:
chunked[-1]+=word_pos
else:
chunked.append(word_pos)
prev_tag = pos
clean_chunkedd = [tuple([" ".join(wordpos[::2]), wordpos[-1]]) if len(wordpos)!=2 else wordpos for wordpos in chunked]
### Write Results to Combined file
midFile.write(fileName+'-'+str(i)+delim+word+delim+str(cleanNormLine)+delim+str(str(cleanResult).split(','))+'\n')
### Create NER DataFramez
nerTagDF = DataFrame(clean_chunkedd, columns = ['Word','Classification'])
nerTagDF['File_Name'] = fileName
nerTagDF['Line Key'] = str(i)
ne = ne.append(nerTagDF)
oFile.close()
midFile.close()
很抱歉,但你的代码是一个烂摊子,这是不必阅读所有的缩进不一致,而不是在同一深度的每一个控制点的线条清晰。例如立即:'在wordpress关键词列表中:对于i,在枚举行(searchlines)中为: 如果在一行中:'在第一个块缩进中有4个空格,但随后为2个空格,并且这贯穿整个其余的代码 – EdChum
是的,更不用说,这是缩进错误,而不是缩进:)只需将它重新写入/复制粘贴到新窗口/选项卡/文件中逐行。 – StefanK
每一层压痕应该是4个空格。看看这个部分,看起来它超过了4个,可能是8个或更多。 – mauve