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