Ich führe eine Schleife, um Sätze in meine Liste (benannt: Text), die alle (oder alle der angegebenen Tags) enthalten, anhängen, aber das Problem ist, dass ich doppelte Ausgaben seit der Schleife läuft auf allen Tags einzeln zur Identifizierung.Verhindern der Duplizierung innerhalb der Schleife
Gibt es einen Weg, als ob es einen Tag (von den 3 gegeben) in meinem Satz gibt, wird der Satz angehängt? Momentan bekomme ich jeden Ausgang 3 mal wegen dieser 'for'-Schleife in Tags (siehe "Current Output") dh insgesamt 4 * 3 = 12 Ausgänge statt 4. Wenn du meine "Required Output" siehst, die erste Es sind 3 Sätze vorhanden, da sie eines oder alle Tags enthalten und das letzte als "Nicht gefunden" angezeigt wird, da es kein Tag enthält.
Mein Code:
text=[]
tags=["_NN","_VB","_PRP"]
sentences =['Thanks_NNS sir_VBP','Oh_UH thanks_NNS to_TO remember_VB','Welcome_VB my_UH child_UH',"hi"]
for sentence in sentences:
for tag in tags:
if tag in sentence:
z = sentence.split(",")
k = " ".join(z)
text.append(k)
else:
text.append("Not found")
Stromausgang:
['Thanks_NNS sir_VBP',
'Thanks_NNS sir_VBP',
'Not found',
'Oh_UH thanks_NNS to_TO remember_VB',
'Oh_UH thanks_NNS to_TO remember_VB',
'Not found',
'Not found',
'Welcome_VB my_UH child_UH',
'Not found',
'Not found',
'Not found',
'Not found']
Erforderliche Leistung:
['Thanks_NNS sir_VBP',
'Oh_UH thanks_NNS to_TO remember_VB',
'Welcome_VB my_UH child_UH',
"Not found"]
Ihre Die erforderliche Ausgabe entspricht der von Ihnen initialisierten "Satz" -Liste, außer dass "hi" durch "Nicht erforderlich" ersetzt wird. Ist es? –
ja, das ist richtig, da es keine der oben genannten Tags enthält. –