def parser(init): text = nltk.word_tokenize(init) posval = 0 negval = 0 count = 0 # remove stop words for word in text: if word in stopwords.words('english'): text.remove(word) temp = nltk.pos_tag(text) # print(temp) for i in range(len(temp)): if temp[i][1].find("JJ") != -1: JJresult = sr.get_scores(lemmatizer().lemmatize(temp[i][0].lower())) # print("adj", end="") # print(JJresult) posval += JJresult[0] negval += JJresult[1] count += 1 elif (temp[i][1].find("NN") != -1 and temp[i][1].find("NNP")): # print(lemmatizer().lemmatize(temp[i][0].lower())) NNresult = sr.get_scores(lemmatizer().lemmatize(temp[i][0].lower())) # print("noun", end="") # print(NNresult) posval += NNresult[0] negval += NNresult[1] count+=1 elif temp[i][1].find("VB") != -1: VBresult = sr.get_scores(lemmatizer().lemmatize(temp[i][0].lower())) # print("verb", end="") # print(VBresult) posval += VBresult[0] negval += VBresult[1] count+=1 elif temp[i][1].find("RB") != -1: RBresult = sr.get_scores(lemmatizer().lemmatize(temp[i][0].lower())) # print("adv", end="") # print(RBresult) posval += RBresult[0] negval += RBresult[1] count+=1 if count > 0: avgposval = posval/count avgnegval = negval/count else: avgposval=0 avgnegval=0 # print(avgposval,avgnegval) return avgposval,avgnegval,(1-avgnegval-avgposval) # raw = input("Enter the string: ") # parser(raw)
def parser(init): # t = treebank.init.parsed_sents('wsj_0001.mrg')[0] # t.draw() text = nltk.word_tokenize(init) posval = 0 negval = 0 count = 0 avgposval = 0 avgnegval = 0 # remove stop words for word in text: if word in stopwords.words('english'): text.remove(word) temp = nltk.pos_tag(text) for i in range(len(temp)): if (temp[i][1].find("JJ") != -1) or (temp[i][1].find("NN") != -1 and temp[i][1].find("NNP")) or \ (temp[i][1].find("VB") != -1 and temp[i][1].find("VBZ")) or (temp[i][1].find("RBS") != -1) \ or temp[i][1].find("RBR") != -1: JJresult = SentiReadernopos.get_scores(temp[i][0].lower()) if JJresult[0] != 0 or JJresult[1] != 0: posval += JJresult[0] negval += JJresult[1] count += 1 print(posval, negval) if count > 0: avgposval += posval/count avgnegval += negval/count else: avgposval = avgnegval = 0 objval = 1-avgposval-avgnegval # the result print(avgposval, avgnegval, objval)