Presentation is loading. Please wait.

Presentation is loading. Please wait.

University of Sheffield NLP Opinion Mining in GATE Horacio Saggion & Adam Funk.

Similar presentations


Presentation on theme: "University of Sheffield NLP Opinion Mining in GATE Horacio Saggion & Adam Funk."— Presentation transcript:

1 University of Sheffield NLP Opinion Mining in GATE Horacio Saggion & Adam Funk

2 University of Sheffield NLP Opinion Mining Is interested in the opinion a particular piece of discourse expresses – Opinions are subjective statements reflecting people’s sentiments or perceptions on entities or events There are various problems associated to opinion mining – Identify if a piece of text is opinionated or not (factual news vs. Editorial) – Identify the entity expressing the opinion – Identify the polarity and degree of the opinion (in favour vs. against) – Identify the theme of the opinion (opinion about what?)

3 University of Sheffield NLP Extract Factual Data with Information Extraction from Company Web Site Extract Opinions using Opinion Mining from Web Fora

4 University of Sheffield NLP Application Combine information extraction from company Web site with OM findings – Given a review find company web pages and extract factual information from it including products and services – Associate the opinion to the found information Use information extraction to identify positive/negative phrases and the “object” of the opinion – Positive: correctly packed bulb, a totally free service, a very efficient management… – Negative: the same disappointing experience, unscrupulous double glazing sales, do not buy a sofa from DFS Poole or DFS anywhere, the utter inefficiency…

5 University of Sheffield NLP Opinions on the Web sentiment opinion

6 University of Sheffield NLP positive opinions negative opinions negative opinion, but less evident

7 University of Sheffield NLP OM as text classification Because we have access to documents which have already an associated class, we see OM as a classification problem – we consider our data “opinionated” We are interested in: – differentiate between positive opinion vs negative opinion “customer service is diabolical” “I have always been impressed with this company” – recognising fine grained evaluative texts (1-star to 5-star classification) “one of the easiest companies to order with” (5-stars) “STAY AWAY FROM THIS SUPPLIER!!!” (1-star) We use a supervised learning approach (Support Vector Machines) that uses linguistic features; the system decides which features are most valuable for classification We use precision, recall, and F-score to assess classification accuracy

8 University of Sheffield NLP Corpus We have a customisable crawling process to collect all texts from Web fora 92 texts from a Web Consumer forum – Each text contains a review about a particular company/service/product and a thumbs up/down – texts are short (one/two paragraphs) – 67% negative and 33% positive 600 texts from another Web forum containing reviews on companies or products – Each text is short and it is associated with a 1 to 5 stars review – * ~ 8%; ** ~ 2; *** ~ 3%; **** ~ 20%; ***** ~ 67% Each document is analysed to separate the commentary/review from the rest of the document and associate a class to each review After this, the documents are processed with GATE processing resources: – tokenisation; sentence identification; parts of speech tagging; morphological analysis; named entity recognition, and sentence parsing

9 University of Sheffield NLP SVMs for OM Support Vector Machines (SVM) are very good algorithms used for classification and have been also used in information extraction Learning in SVM is treated as a binary classification problem and a multiclass problem is transformed in a set of n binary classification problems Given a set of training examples, each is represented as a vector in a space of features and SVM tries to find an hyper plane which separates positive from negative instances Given a new instance SVM will identify in which side of the hyper plane the new instance lies and produce the classification accordingly The distance from the hyper plane to the positive and negative instances is the margin and we use SVM with uneven margins available in GATE In order to use them, we need to specify how instances are represented and decide on a number of parameters usually adjusted experimentally over training data

10 University of Sheffield NLP Bag-of-words binary- classification We decided to start investigating a very simple approach – word-based or bag of words approach (usually works very well in text classification) – the original word – the root or lemma of the word (for “running” we use “run”) – the parts of speech category of the word (determinant, noun, verb, etc.) – the orthography of the word (all uppercase, lowercase, etc.) Each sentence/text is represented as a vector of features and values – we carried out different combinations of features (different n-grams) – 10-fold cross validation experiments were run over the corpus with binary classifications (up/down) – the combination of root and orthography (unigram) provides the best classifier around 80% F-score – use of higher n-grams decreases performance of the classifier – use of more features not necessarily improves performance – a uninformed classifier would have a 67% accuracy

11 University of Sheffield NLP Bag-of-words fine-grained classification Same learning system used to produce the 5 stars classification over the fine-grained dataset Same feature combinations were studied: – 74% overall classification accuracy using word root only – other combinations degrade performance – 1* classification accuracy = 80%; 5* classification accuracy = 75% – 2* = 2%; 3*=3%; 4*=19% – 2*, 3*, 4* difficult to classify because or either share vocabulary with extreme cases or are vague

12 University of Sheffield NLP Relevant features according to the SVM models word-based binary classification – thumbs-down: !, not, that, will, … – thumbs-up: excellent, good, www, com, site, … word-based fine-grained classification – 1*: worst, not, cancelled, avoid,… – 2*: shirt, ball, waited,…. – 3*: another, didn’t, improve, fine, wrong, … – 4*: ok, test, wasn’t, but, however,… – 5*: very, excellent, future, experience, always, great,…

13 University of Sheffield NLP Sentiment-based Classifier Engineered features based on “linguistic” and sentiment information associated to words Linguistic features – word-based features are restricted to adjective and adverbs and their bigram combinations – “good”, “bad”, “rather”, “quite”, “not”, etc. Sentiment information – WordNet lexical database where words appear with their senses and synonyms chair = the furniture chair, professorship = the position chair, president, chairman, … = the officer chair, electric chair, … = execution instrument – SentiWordNet adds sentiment information to WordNet and has been used in opinion mining and sentiment analysis

14 University of Sheffield NLP Sentiment-based classifier SentiWordNet (cont.) – each word has three numerical scores (between 0 and 1): obj, pos, neg (obj+neg+pos=1) CatWNT #posnegsynonyms a10066450.250.375good well a10234480.3750.5good unspoilt unspoiled a10734460.6250.0good a10242620.01.0bad spoilt spoiled

15 University of Sheffield NLP Sentiment-base classifier Features deduced from SentiWordNet – word analysis: countP(w) : the word positivity score (#(pos(w)>neg(w))) countN(w) : the word negativity score (#(pos(w)<neg(w))) countF(w): the number of entries of w in SentiWordNet – sentence analysis sentiP: number of positive words in sentence – a word is positive if countP(w)>½countF(w) sentiN: number of negative words in sentence – a word is negative if countN(w)>½countF(w) senti: pos (sentiP > sentiN), neg (sentiN > sentiP), neutral (sentence feature) – text analysis : count_pos: number of pos sentences in text count_neg: number of neg sentences in text count_neutral: number of neutral sentences in text

16 University of Sheffield NLP Sentiment-based Classifier Each text is represented as a vector of features and values – combining the linguistic features (adjectives, adverbs, and their combinations) and the senti, count_pos, count_neg, count_neutral features – 10-fold cross validation experiments were run over the corpus with binary classifications (up/down) overall F-score 76% – 10-fold cross validation over the fine-grained corpus overall F-score 72% 1*=58%, 2*=24%, 3*=20%, 4*=19%, 5*=83% (better job in less extreme categories)

17 University of Sheffield NLP Relevant features according to the SVM models sentiment-based binary classification – thumbs-down: 8 neutral, never, 1 neutral, negative sentiment (senti feature), very late – thumbs-up: 1 negative, 0 negative, good, original, 0 neutral, fast sentiment-based fine-grained classification – 1*: still not, cancelled, incorrect,… – 2*: 9 neutral, disappointing, fine, down, … – 3*: likely, expensive, wrong, not able,…. – 4*: competitive, positive, ok, … – 5*: happily, always, 0 negative, so simple, very positive, …

18 University of Sheffield NLP Use of opinion words in OM Hatzivassiloglou&McKeown’97 note that conjunctions (and, or, but,…) help in classifying the semantic orientation of adjectives (excellent and useful; good but expensive;…); not used in classification experiments Riloff&al’03 create a list of subjective words by bootstrapping an initial set of 20 subjective words over a corpus; using the induced list and other features achieves 76% classification accuracy (objective vs subjective distinction) Turney’02 uses pair-wise mutual information to detect the polarity of words (mutual information wrt “excellent” and “poor”); using the list in a classifier he achieves 74% classification accuracy Devitt&Ahmad’07 use SentiWordNet for detecting the polarity of a piece of news (7-point scale) achieving 55% accuracy

19 University of Sheffield NLP The corpus for the exercises consists of 11 documents (already preprocessed and saved as GATE XML), which contain 81 reviews. (The original corpus contained 600 documents and 7300 reviews.) Each review is marked with a comment annotation that has a rating feature with a value from 1_Star_Review to 5_Star_Review (these are the 5 classes for ML). These annotations result from preprocessing the HTML mark-up. The machine-learning task is to use linguistic features from ANNIE to classify each comment with the appropriate rating. Corpus for exercises

20 University of Sheffield NLP Create an empty corpus and populate it with the training data files; create another one with the test data file. Load ANNIE and modify the Document Reset PR so it will not delete the “Key” AnnotationSet. Load Tools and create an Annotation Set Transfer PR to copy all the “comment” annotations from “Key” to the default AS. Put this PR in ANNIE just after the Document Reset. Run the modified ANNIE over the training corpus. Create a JAPE PR from the copy_comment_without_rating grammar. In ANNIE, substitute it for the AS Transfer PR, with Key as the inputAS. Run this pipeline over the test corpus. Load the “learning” plug-in and create a Batch Learning PR from the sample config.xml file. Create a pipeline for this PR. Exercise 1

21 University of Sheffield NLP In the training corpus, each document's default AS should contain comment annotations with the rating feature. In the test corpus, each one should contain comment annotations without this feature. Run the learning pipeline in “TRAINING” mode over the training corpus, then in “APPLICATION” mode over the test corpus. Examine the default AS in the test corpus now. Exercise 1 (cont'd)

22 University of Sheffield NLP The ML configuration file in Exercise 1 uses unigrams of Token.string. Modify the configuration to use a different feature, such as Token.root. (Edit and save the config.xml file, then re-initialize the learning PR to reload the configuration.) Modify the configuration to use more than one feature. Modify the configuration to use bigrams of a Token feature. Exercise 2

23 University of Sheffield NLP Modify the classification probabilities and margins in the configuration file, and observe their effects on the results. Exercise 3

24 University of Sheffield NLP Create an empty corpus and populate it from the “full” set of files. Modify ANNIE as in the first part of Exercise 1 (so the Document Reset PR does not delete the Key AS, and the AS Transfer copies the comment annotations from Key to default AS). Run the modified ANNIE pipeline, then the learning pipeline in “EVALUATION” mode. This carries out 5-fold cross-validation over the corpus and produces an averaged set of results. Examine the document annotations in the full corpus. Exercise 4


Download ppt "University of Sheffield NLP Opinion Mining in GATE Horacio Saggion & Adam Funk."

Similar presentations


Ads by Google