-
Notifications
You must be signed in to change notification settings - Fork 0
/
gradeEntidade.py
93 lines (74 loc) · 3.13 KB
/
gradeEntidade.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# -*- coding: utf-8 -*-
#Programa le arquivo xml
#Danilo Martins Silverio Cardoso
#04/10/2017
#importa as funcoes para manipular XML
from xml.dom.minidom import parse, parseString
arquivo = parse('teste//xml//t1.xml') #abre o arquivo XML
grade = open('teste//gradeDeEntidade//t1.txt','w')
sentencas = arquivo.getElementsByTagName('s') # Recupera todas as sentencas que existem no arquivo
print len(sentencas)# imprime o tamanho da lista ( ou seja quantidade de sentencas)
w= 'teste'
p = {}
p['palavras'] = '--'
p['avião'] = '123'
p['p2'] = 'x'
p[w] = 'deu certo'
print p['palavras']
w = 'n2'
p[w] = 'outravez'
print p['p2']
pp = {}
pp['pq'] = p
p['p2'] = p['p2']+'--'
print p['p2']
print pp
palavras = {}
for i in range(len(sentencas)):
print "esse e o i", i
terminais = sentencas[i].getElementsByTagName('t')
naoterminais = sentencas[i].getElementsByTagName('nt')
print 'tamanho terminais = ', len(terminais)
print 'tamanho naoterminais = ', len(naoterminais)
for nterminal in naoterminais:
if str(nterminal.attributes['cat'].value) != 'pp':
linhas = nterminal.getElementsByTagName('edge')
for l in linhas:
att = l.attributes['label'].value
if att == 'Od' or att == 'S' or att == 'H':
idref = l.attributes['idref'].value
idint = int(idref[3:])-1
if idint <= len(terminais)+1:
classe = terminais[idint].attributes['pos'].value
#classegrid = '--'
if classe == 'n':
classegrid = 'S'
elif classe =='Od':
classegrid ='O'
else:
classegrid='X'
print '===================================================='
print 'valor do idint', idint
print terminais[idint].attributes['word'].value
print '++++++++++++++++++++++++++++++++++++++++++++++++++++'
#ident = str(terminais[idint].attributes['word'].value)
ident = terminais[idint].attributes['word'].value
if ident in palavras:
palavras[ident] += classegrid
else:
palavras[ident] = classegrid
for pl in palavras:
print 'teste de pl', len(palavras[pl])
if len(palavras[pl]) == i:
palavras[pl] += '-'
elif len(palavras[pl]) < i+1:
palavras[pl] = ('-'*i) + palavras[pl]
print palavras
gradecpl =''
for pl in palavras:
gradecpl += ' %30s %s\n' % (pl,palavras[pl])
print gradecpl
grade.write(gradecpl.encode(encoding='UTF-8',errors='strict'))
grade.close()
#for senteca in sentencas
print 'ok'# para debug