2016-04-26 7 views
0

Ich habe eine Datenbank mit gängigen englischen Wörtern. Ich möchte das Präfix jedes dieser Wörter finden und das Wort basierend auf dem Präfix bewerten. Ich habe 3 catorgoods für das Bewertungssystem postive, neutral und negativ. Ich habe jede Zelle in ein Array verwandelt. Im Moment spalte ich jedes Wort auseinander und möchte das mit jeder Liste vergleichen, um zu sehen, wo das Wort fällt.Suche nach einem Wort-Präfix in Python

Dies ist der Code, den ich bisher habe. import csv

negativePrefix = ['un', 'in', 'im','il','ir','non', 'mis','mal','dis','anti','de','under', 'semi', 'mini', 'ex', 'sub', 'infra'] 

postivePrefix = ['re', 'over', 'equi', 'micro','macro','mega','extra','prime', 'post','retro', 'bi','multi','pro','auto','co','con'] 

neutralPrefix = ['inter', 'super', 'super','peri', 'ante', 'pre','semi', 'mono', 'tri','quad','penta','hex','sept','oct','dec'] 

postive = 2 
neutral = 1 
negative = 0 

path = r'/Users/Valerie/Desktop/ClassCoding/gdi/javascript_2/common_words_Update_2.csv' 
fileName = 'common_words_Update_2' 
    with open(path, 'rb') as csvfile: 
    reader = csv.reader(csvfile, delimiter=' ', quotechar='|') 
    for row in reader: 
     word = ' '.join(''.join(row)) 
     print word 
     # check to see if the word matches one of the arrays 

Antwort

0
if any(word.startswith(prefix) for prefix in negativePrefix): 
    ... 
elif any(word.startswith(prefix) for prefix in posativePrefix): 
    ... 
elif any(word.startswith(prefix) for prefix in neutralPrefix): 
    ... 
+0

So einfach ist das! Vielen Dank! –

1
for row in reader: 
    for word in row: 
     if any([word.startswith(w) for w in negativePrefix]): 
      print("{} is negative!".format(word)) 
     elif any([word.startswith(w) for w in postivePrefix]): 
      print("{} is positive!".format(word)) 
     ...