Python CSV
Verfasst: Mittwoch 21. Dezember 2011, 11:15
Hallo liebe Gemeinde, ich versuche zur Zeit die Ausgaben in CSV zu speichern und habe zwei Probleme dabei.
speichert alle Spalten in eine
writer.writerow(['Sentence', 'Causal Mining'])
und mein zweites Problem er speichert nur die letzte Ausgabe und nicht ganze Schleife
hier ist mein Quellcode:
Dazu will ich noch Umsetzen, dass die Ausgaben von else auch zu den Ausgaben von if gespeichert werden, aber wie ich das mache habe ich keine Ahnung.
Wünsche euch noch schöne Weihnachten
speichert alle Spalten in eine
writer.writerow(['Sentence', 'Causal Mining'])
und mein zweites Problem er speichert nur die letzte Ausgabe und nicht ganze Schleife
hier ist mein Quellcode:
Code: Alles auswählen
def causal_mining (causal_relationship, encoding='utf-8'):
main_filename = causal_relationship + '.txt'
with codecs.open(main_filename, 'r') as main_file:
sentences = sent_tokenize(main_file.read())
print len(sentences)
grammar_hypothesis = r'''Causal Relationship:{<RB><VBG><.*>+<MD><.*>+}
{<VBG|DT|IN|JJ|NN.*>+<.*>+<MD><.*>+}
{<NN.*><MD><.*>+}'''
#Sentence: {<.*>+}'''
hp = nltk.RegexpParser(grammar_hypothesis)
cause = r'''Cause:{<VBG|DT|RB|JJ|NN.*>+<.*>+<MD>}
{<NN.*><MD>}
}<MD>{'''
cp = nltk.RegexpParser(cause)
impact = r'''Impact:{<MD><.*>+}
}<MD>{'''
ip = nltk.RegexpParser(impact)
writer = csv.writer(open("lern.csv", "wb"))
for sentence in sentences:
sent = nltk.pos_tag(word_tokenize(sentence))
tree = hp.parse(sent)
string = ''.join(str(i) for i in tree)
causal = re.compile('Causal Relationship')
sign = re.compile('cause|affect|affected|enhance|higher|better|more|negatively|sooner|increase|perceived|Perceived|will|may')
c = causal.match(string, 1, 20)
s = sign.search(sentence)
if c and s:
y = ' Yes'
print sentence + y
for chunk in tree.subtrees():
if chunk.node== 'Causal Relationship':
cau = cp.parse(sent)
for cause in cau.subtrees():
if cause.node== 'Cause': print cause
imp = ip.parse(sent)
for impact in imp.subtrees():
if impact.node== 'Impact': print impact
positive = re.compile('cause|positively|affect|affected|enhance|higher|better|more|increase')
negative = re.compile ('negatively|sooner')
unclear = re.compile ('perceived|Perceived')
p = positive.search(sentence)
n = negative.search(sentence)
u = unclear.search(sentence)
if p:
print 'positive'
if n:
print 'negative'
if u:
print 'unclear'
a = [sentence, y]
print a
print '\n'
#writer = csv.DictWriter(open("lernset.csv", "wb"),["Sentence", "Causal Mining"])
#writer.writerow({"Sentence" : "Sentence", "Causal Mining" : "Causal Mining"})
#daten = ({ 'Sentence' : sentence, 'Causal Mining' : y})
else:
n = ' No'
print sentence + n
print '\n'
writer.writerow(['Sentence', 'Causal Mining'])
daten = (a)
writer.writerows(daten)
#reader = csv.reader(open("lernset.csv", "rb"))
#for row in reader:
#print row
Wünsche euch noch schöne Weihnachten