2016-01-05 5 views
0
s5=0 
for phrase in root.findall('./PHRASE'): 
    ens = {en.get('x'): en.text for en in phrase.findall('en')} 
    if 'ORG' in ens and 'PERS' in ens: 
     if (ens["ORG"] =="XYZ Corp" and ens["PERS"]=="John"): 
      print("ORG is: {}, PERS is: {} /".format(ens["ORG"], ens["PERS"])) 
      y="".join(phrase.itertext()) #print whats in between 
      print(y) 
      s5 = s5+1 
print("occurrence of fifth seed : ",s5) 

Здесь на каждой итерации Y печатается, Y - это текст в документе XML, если у меня есть теги «en», один ORG & 1 PERS.Обработка строк в python?

Так выход:

John cofounder of XYZ Corp. 
John works in XYZ Corp. 
John named his company XYZ Corp. 

Я пытался сохранить каждое предложение само по себе, так что я могу использовать его позже. Например, я хочу использовать второе предложение «Джон работает в XYZ Corp». Я не знаю, как это сделать, я попытался использовать переменную Y как 2d-массив, но я не смог.

+3

чем проблема, чтобы создать список и добавить результаты в 'for' цикл? 'l = []', а затем 'l.append (y)' перед операцией 'print' ... –

ответ

1

Как отметил выше:

sentences = [] 
    y="".join(phrase.itertext()) #print whats in between 
    print(y) 
    sentences.append(y) 

Затем получить предложения по индексации назад в к списку «предложения»:

print sentence[0] # first sentence 
    print sentence[1] # second sentence, etc. 
+0

Спасибо, что это сработало! –