This basic function to detect negation while performing sentiment analysis. So that
not good kind of words can be considered a negative.
This code is working fine. Can someone help to improve it or find if any bug present?
def negate_sequence(self,text): """ Detects negations and transforms negated words into "not_" form. """ negation = False delims = "?.,!:;" result =  #Here rather then applying split, we can directly feed our extracted symptoms list words = text.split() prev = None pprev = None for word in words: # stripped = word.strip(delchars) stripped = word.strip(delims).lower() negated = "not_" + stripped if negation else stripped result.append(negated) if prev: bigram = prev + " " + negated result.append(bigram) if pprev: trigram = pprev + " " + bigram result.append(trigram) pprev = prev prev = negated if any(neg in word for neg in ["not", "n't", "no"]): negation = not negation if any(c in word for c in delims): negation = False return result