automated_metareview 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
@@ -0,0 +1,91 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="FacetManager">
4
+ <facet type="gem" name="Gem">
5
+ <configuration>
6
+ <option name="GEM_APP_ROOT_PATH" value="$MODULE_DIR$" />
7
+ <option name="GEM_APP_TEST_PATH" value="" />
8
+ <option name="GEM_APP_LIB_PATH" value="" />
9
+ </configuration>
10
+ </facet>
11
+ </component>
12
+ <component name="NewModuleRootManager">
13
+ <content url="file://$MODULE_DIR$" />
14
+ <orderEntry type="inheritedJdk" />
15
+ <orderEntry type="sourceFolder" forTests="false" />
16
+ <orderEntry type="library" scope="PROVIDED" name="RedCloth (v4.2.9, ruby-1.9.3-p392) [gem]" level="application" />
17
+ <orderEntry type="library" scope="PROVIDED" name="actionpack (v4.0.0, ruby-1.9.3-p392) [gem]" level="application" />
18
+ <orderEntry type="library" scope="PROVIDED" name="activemodel (v4.0.0, ruby-1.9.3-p392) [gem]" level="application" />
19
+ <orderEntry type="library" scope="PROVIDED" name="activerecord (v4.0.0, ruby-1.9.3-p392) [gem]" level="application" />
20
+ <orderEntry type="library" scope="PROVIDED" name="activerecord-deprecated_finders (v1.0.3, ruby-1.9.3-p392) [gem]" level="application" />
21
+ <orderEntry type="library" scope="PROVIDED" name="activesupport (v4.0.0, ruby-1.9.3-p392) [gem]" level="application" />
22
+ <orderEntry type="library" scope="PROVIDED" name="arel (v4.0.0, ruby-1.9.3-p392) [gem]" level="application" />
23
+ <orderEntry type="library" scope="PROVIDED" name="atomic (v1.1.14, ruby-1.9.3-p392) [gem]" level="application" />
24
+ <orderEntry type="library" scope="PROVIDED" name="bind-it (v0.2.7, ruby-1.9.3-p392) [gem]" level="application" />
25
+ <orderEntry type="library" scope="PROVIDED" name="builder (v3.1.4, ruby-1.9.3-p392) [gem]" level="application" />
26
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.3.5, ruby-1.9.3-p392) [gem]" level="application" />
27
+ <orderEntry type="library" scope="PROVIDED" name="capistrano (v3.0.0, ruby-1.9.3-p392) [gem]" level="application" />
28
+ <orderEntry type="library" scope="PROVIDED" name="childprocess (v0.3.9, ruby-1.9.3-p392) [gem]" level="application" />
29
+ <orderEntry type="library" scope="PROVIDED" name="columnize (v0.3.6, ruby-1.9.3-p392) [gem]" level="application" />
30
+ <orderEntry type="library" scope="PROVIDED" name="daemons (v1.1.9, ruby-1.9.3-p392) [gem]" level="application" />
31
+ <orderEntry type="library" scope="PROVIDED" name="debugger (v1.6.2, ruby-1.9.3-p392) [gem]" level="application" />
32
+ <orderEntry type="library" scope="PROVIDED" name="debugger-linecache (v1.2.0, ruby-1.9.3-p392) [gem]" level="application" />
33
+ <orderEntry type="library" scope="PROVIDED" name="debugger-ruby_core_source (v1.2.3, ruby-1.9.3-p392) [gem]" level="application" />
34
+ <orderEntry type="library" scope="PROVIDED" name="delayed_job (v4.0.0, ruby-1.9.3-p392) [gem]" level="application" />
35
+ <orderEntry type="library" scope="PROVIDED" name="delayed_job_active_record (v4.0.0, ruby-1.9.3-p392) [gem]" level="application" />
36
+ <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.2.4, ruby-1.9.3-p392) [gem]" level="application" />
37
+ <orderEntry type="library" scope="PROVIDED" name="edavis10-ruby-web-search (v0.0.2, ruby-1.9.3-p392) [gem]" level="application" />
38
+ <orderEntry type="library" scope="PROVIDED" name="engtagger (v0.1.2, ruby-1.9.3-p392) [gem]" level="application" />
39
+ <orderEntry type="library" scope="PROVIDED" name="erubis (v2.7.0, ruby-1.9.3-p392) [gem]" level="application" />
40
+ <orderEntry type="library" scope="PROVIDED" name="expertiza-authlogic (v3.2.0@09163c, ruby-1.9.3-p392) [gem]" level="application" />
41
+ <orderEntry type="library" scope="PROVIDED" name="fastercsv (v1.5.5, ruby-1.9.3-p392) [gem]" level="application" />
42
+ <orderEntry type="library" scope="PROVIDED" name="ffi (v1.9.0, ruby-1.9.3-p392) [gem]" level="application" />
43
+ <orderEntry type="library" scope="PROVIDED" name="ffi-aspell (v0.0.3, ruby-1.9.3-p392) [gem]" level="application" />
44
+ <orderEntry type="library" scope="PROVIDED" name="gchart (v1.0.0, ruby-1.9.3-p392) [gem]" level="application" />
45
+ <orderEntry type="library" scope="PROVIDED" name="gchartrb (v0.8, ruby-1.9.3-p392) [gem]" level="application" />
46
+ <orderEntry type="library" scope="PROVIDED" name="gdata (v1.1.2, ruby-1.9.3-p392) [gem]" level="application" />
47
+ <orderEntry type="library" scope="PROVIDED" name="hike (v1.2.3, ruby-1.9.3-p392) [gem]" level="application" />
48
+ <orderEntry type="library" scope="PROVIDED" name="hoptoad_notifier (v2.4.11, ruby-1.9.3-p392) [gem]" level="application" />
49
+ <orderEntry type="library" scope="PROVIDED" name="i18n (v0.6.5, ruby-1.9.3-p392) [gem]" level="application" />
50
+ <orderEntry type="library" scope="PROVIDED" name="jquery-rails (v3.0.4, ruby-1.9.3-p392) [gem]" level="application" />
51
+ <orderEntry type="library" scope="PROVIDED" name="json (v1.8.1, ruby-1.9.3-p392) [gem]" level="application" />
52
+ <orderEntry type="library" scope="PROVIDED" name="mini_portile (v0.5.2, ruby-1.9.3-p392) [gem]" level="application" />
53
+ <orderEntry type="library" scope="PROVIDED" name="minitest (v4.7.5, ruby-1.9.3-p392) [gem]" level="application" />
54
+ <orderEntry type="library" scope="PROVIDED" name="multi_json (v1.8.0, ruby-1.9.3-p392) [gem]" level="application" />
55
+ <orderEntry type="library" scope="PROVIDED" name="mysql (v2.9.1, ruby-1.9.3-p392) [gem]" level="application" />
56
+ <orderEntry type="library" scope="PROVIDED" name="net-scp (v1.1.2, ruby-1.9.3-p392) [gem]" level="application" />
57
+ <orderEntry type="library" scope="PROVIDED" name="net-ssh (v2.7.0, ruby-1.9.3-p392) [gem]" level="application" />
58
+ <orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.6.0, ruby-1.9.3-p392) [gem]" level="application" />
59
+ <orderEntry type="library" scope="PROVIDED" name="open-uri-cached (v0.0.5, ruby-1.9.3-p392) [gem]" level="application" />
60
+ <orderEntry type="library" scope="PROVIDED" name="rack (v1.5.2, ruby-1.9.3-p392) [gem]" level="application" />
61
+ <orderEntry type="library" scope="PROVIDED" name="rack-test (v0.6.2, ruby-1.9.3-p392) [gem]" level="application" />
62
+ <orderEntry type="library" scope="PROVIDED" name="railties (v4.0.0, ruby-1.9.3-p392) [gem]" level="application" />
63
+ <orderEntry type="library" scope="PROVIDED" name="rake (v10.1.0, ruby-1.9.3-p392) [gem]" level="application" />
64
+ <orderEntry type="library" scope="PROVIDED" name="rgl (v0.4.0, ruby-1.9.3-p392) [gem]" level="application" />
65
+ <orderEntry type="library" scope="PROVIDED" name="rjb (v1.4.8, ruby-1.9.3-p392) [gem]" level="application" />
66
+ <orderEntry type="library" scope="PROVIDED" name="rspec-core (v2.14.5, ruby-1.9.3-p392) [gem]" level="application" />
67
+ <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v2.14.3, ruby-1.9.3-p392) [gem]" level="application" />
68
+ <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v2.14.3, ruby-1.9.3-p392) [gem]" level="application" />
69
+ <orderEntry type="library" scope="PROVIDED" name="rspec-rails (v2.14.0, ruby-1.9.3-p392) [gem]" level="application" />
70
+ <orderEntry type="library" scope="PROVIDED" name="rubyzip (v1.0.0, ruby-1.9.3-p392) [gem]" level="application" />
71
+ <orderEntry type="library" scope="PROVIDED" name="rwordnet (v0.1.3, ruby-1.9.3-p392) [gem]" level="application" />
72
+ <orderEntry type="library" scope="PROVIDED" name="seer (v0.10.0, ruby-1.9.3-p392) [gem]" level="application" />
73
+ <orderEntry type="library" scope="PROVIDED" name="selenium-webdriver (v2.37.0, ruby-1.9.3-p392) [gem]" level="application" />
74
+ <orderEntry type="library" scope="PROVIDED" name="sprockets (v2.10.0, ruby-1.9.3-p392) [gem]" level="application" />
75
+ <orderEntry type="library" scope="PROVIDED" name="sqlite3 (v1.3.8, ruby-1.9.3-p392) [gem]" level="application" />
76
+ <orderEntry type="library" scope="PROVIDED" name="sqlite3-ruby (v1.3.3, ruby-1.9.3-p392) [gem]" level="application" />
77
+ <orderEntry type="library" scope="PROVIDED" name="sshkit (v1.1.0, ruby-1.9.3-p392) [gem]" level="application" />
78
+ <orderEntry type="library" scope="PROVIDED" name="stanford-core-nlp (v0.5.1, ruby-1.9.3-p392) [gem]" level="application" />
79
+ <orderEntry type="library" scope="PROVIDED" name="stream (v0.5, ruby-1.9.3-p392) [gem]" level="application" />
80
+ <orderEntry type="library" scope="PROVIDED" name="superfish-rails (v1.6.0.1, ruby-1.9.3-p392) [gem]" level="application" />
81
+ <orderEntry type="library" scope="PROVIDED" name="term-ansicolor (v1.2.2, ruby-1.9.3-p392) [gem]" level="application" />
82
+ <orderEntry type="library" scope="PROVIDED" name="thor (v0.18.1, ruby-1.9.3-p392) [gem]" level="application" />
83
+ <orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.1.3, ruby-1.9.3-p392) [gem]" level="application" />
84
+ <orderEntry type="library" scope="PROVIDED" name="tilt (v1.4.1, ruby-1.9.3-p392) [gem]" level="application" />
85
+ <orderEntry type="library" scope="PROVIDED" name="tins (v0.12.0, ruby-1.9.3-p392) [gem]" level="application" />
86
+ <orderEntry type="library" scope="PROVIDED" name="tzinfo (v0.3.38, ruby-1.9.3-p392) [gem]" level="application" />
87
+ <orderEntry type="library" scope="PROVIDED" name="websocket (v1.0.7, ruby-1.9.3-p392) [gem]" level="application" />
88
+ <orderEntry type="library" scope="PROVIDED" name="will_paginate (v3.0.5, ruby-1.9.3-p392) [gem]" level="application" />
89
+ </component>
90
+ </module>
91
+
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
4
+ </project>
5
+
data/.idea/misc.xml ADDED
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectRootManager" version="2" project-jdk-name="ruby-1.9.3-p392" project-jdk-type="RUBY_SDK" />
4
+ </project>
5
+
data/.idea/modules.xml ADDED
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/automated_metareview.iml" filepath="$PROJECT_DIR$/.idea/automated_metareview.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
9
+
@@ -0,0 +1,5 @@
1
+ <component name="DependencyValidationManager">
2
+ <state>
3
+ <option name="SKIP_IMPORT_STATEMENTS" value="false" />
4
+ </state>
5
+ </component>
data/.idea/vcs.xml ADDED
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="" />
5
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
6
+ </component>
7
+ </project>
8
+
data/Gemfile ADDED
@@ -0,0 +1,42 @@
1
+ source 'https://rubygems.org'
2
+
3
+
4
+
5
+ gem 'bind-it'
6
+ gem 'capistrano'
7
+ gem 'delayed_job_active_record'
8
+ gem 'edavis10-ruby-web-search'
9
+ gem 'engtagger'
10
+ gem 'expertiza-authlogic', git: 'https://github.com/expertiza/authlogic.git', :require => 'authlogic'
11
+ gem 'fastercsv'
12
+ gem 'ffi-aspell'
13
+ gem 'gchart'
14
+ gem 'gchartrb', :require => 'google_chart'
15
+ gem 'gdata', :require => false
16
+ gem 'hoptoad_notifier'
17
+ gem 'jquery-rails'
18
+ gem 'mysql'
19
+ gem 'nokogiri'
20
+ gem 'open-uri-cached'
21
+ gem 'rake'
22
+ gem 'RedCloth'
23
+ gem 'rgl', :require => 'rgl/adjacency'
24
+ gem 'rjb'
25
+ gem 'rubyzip', :require => 'zip/zip'
26
+ gem 'rwordnet'
27
+ gem 'seer'
28
+ gem 'sprockets'
29
+ gem 'stanford-core-nlp'
30
+ gem 'superfish-rails'
31
+ gem 'will_paginate'
32
+
33
+ group :development do
34
+ gem 'daemons'
35
+ gem 'debugger'
36
+ gem 'sqlite3-ruby', :require => 'sqlite3'
37
+ gem 'selenium-webdriver'
38
+ end
39
+
40
+ # Specify your gem's dependencies in automated_metareview.gemspec
41
+ gemspec
42
+
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 AMEETA MURALIDHARAN
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # AutomatedMetareview
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'automated_metareview'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install automated_metareview
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'automated_metareview/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "automated_metareview"
8
+ spec.version = AutomatedMetareview::VERSION
9
+ spec.authors = ["AMEETA MURALIDHARAN"]
10
+ spec.email = ["fameeta@ncsu.edu"]
11
+ spec.description = "automated metareview"
12
+ spec.summary = "creation of gem for automated metareview"
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "engtagger"
24
+ spec.add_development_dependency "rspec-rails"
25
+ spec.add_development_dependency "activerecord"
26
+
27
+ end
@@ -0,0 +1,18 @@
1
+ require 'automated_metareview/text_preprocessing'
2
+ require 'automated_metareview/predict_class'
3
+ require 'automated_metareview/degree_of_relevance'
4
+ require 'automated_metareview/plagiarism_check'
5
+ require 'automated_metareview/tone'
6
+ require 'automated_metareview/text_quantity'
7
+ require 'automated_metareview/constants'
8
+
9
+ #gem install edavis10-ruby-web-search
10
+ #gem install google-api-client
11
+
12
+ class AutomatedMetareview #< ActiveRecord::Base
13
+ #belongs_to :response, :class_name => 'Response', :foreign_key => 'response_id'
14
+ #has_many :scores, :class_name => 'Score', :foreign_key => 'response_id', :dependent => :destroy
15
+ def self.hi
16
+ puts "hello"
17
+ end
18
+ end
@@ -0,0 +1,208 @@
1
+ require 'wordnet'
2
+ #necessary to access the data.{po} files in the wordnet/dict folder of the rwordnet gem
3
+ include WordNet
4
+ WordNet::SynsetType = {"n" => "noun", "v" => "verb", "a" => "adj", "r" => "adv"}
5
+
6
+
7
+ # Create a parser object
8
+ #frequently used general constants
9
+ #prevtype tokens for graph generator
10
+ NOUN = 1
11
+ VERB = 2
12
+ ADJ = 3
13
+ ADV = 4
14
+ #------------------------------------------#------------------------------------------
15
+ #constants used by sentence state
16
+ POSITIVE = 0
17
+ SUGGESTIVE = 1
18
+ NEGATED = 2
19
+ NEGATIVE_WORD = 3
20
+ NEGATIVE_DESCRIPTOR = 4
21
+ NEGATIVE_PHRASE = 5
22
+ #------------------------------------------#------------------------------------------
23
+
24
+ #used by patternIdentify and predictClass and relevance, while comparing edges!
25
+ EQUAL = 1.0
26
+ DISTINCT = 2.0
27
+ #------------------------------------------#------------------------------------------
28
+
29
+ #constants used by graph generator
30
+ WORDS = 10000 #to control the number of tokens/vertices a graph contains
31
+ #thresholds for pruning edges during pattern selection
32
+ ALPHA_FREQ = 2 #alpha - the frequency threshold (lower)
33
+ BETA_FREQ = 10
34
+ #------------------------------------------#------------------------------------------
35
+
36
+ #threshold for tone
37
+ THRESHOLD = 3 #number of level synonyms to check for tone identification
38
+ #------------------------------------------#------------------------------------------
39
+
40
+ #constants used by WordnetBasedSimilarity
41
+ #initializing constants
42
+ NOMATCH = 0 #distinct
43
+ OVERLAPEXAM = 1 #overlapping examples
44
+ OVERLAPDEFIN = 1 #overlapping definitions
45
+ COMMONPARENTS = 2 #common parents
46
+ MERONYM = 3 #paraphrasing
47
+ HOLONYM = 3 #paraphrasing
48
+ HYPONYM = 4 #paraphrasing
49
+ HYPERNYM = 4 #paraphrasing
50
+ SYNONYM = 5 #paraphrasing
51
+ EXACT = 6 #exact strings
52
+
53
+ #negative matches
54
+ NEGOVERLAPEXAM = -1 #overlapping examples
55
+ NEGOVERLAPDEFIN = -1 #overlapping definitions
56
+ NEGCOMMONPARENTS = -2 #common parents
57
+ NEGMERONYM = -3 #paraphrasing
58
+ NEGHOLONYM = -3 #paraphrasing
59
+ NEGHYPONYM = -4 #paraphrasing
60
+ NEGHYPERNYM = -4 #paraphrasing
61
+ ANTONYM = -5 #antonyms
62
+ NEGEXACT = -6 #exact strings
63
+ #------------------------------------------#------------------------------------------
64
+
65
+ #for plgiarism checking - n-gram
66
+ NGRAM = 5 #5-gram matches
67
+ #other constants for plagiarism checking
68
+ ALL_RESPONSES_PLAGIARISED = 1
69
+ SOME_RESPONSES_PLAGIARISED = 2
70
+ #------------------------------------------#------------------------------------------
71
+
72
+ #constants from text_preprocessing
73
+ SIM_MATCH = 5
74
+ SENTENCES = 100 #assuming each review has upto 5 sentences max.
75
+ MAX = 3000
76
+ #------------------------------------------#------------------------------------------
77
+
78
+ =begin
79
+ THE FIRST TWO SETS ARE COMMON WORDS DURING OVERLAP ACROSS DEFINITIONS OR EXAMPLES.
80
+ THE THIRD SET IS TO PREVENT FREQUENT WORDS FROM BEING COMPARED WITH OTHER TOKENS.
81
+ =end
82
+ CLOSED_CLASS_WORDS = [".", ",", "THE",
83
+ "AND", "A", "\"", "IN", "I", ":", "YOU", "IS", "TO", "OF",
84
+ ")", "(", "IT", "FOR", "!", "?","THAT","ON", "WITH", "HAVE",
85
+ "BE", "...", "AS","THIS","WAS", "e.g.", "especially","BUT", "OR", "FROM","WHAT","NOT", "ARE",
86
+ "MY", "AT", "HE", "BY", "ONE","IF", "THEY", "YOUR","ALL",
87
+ "ME", "SO", "AN", "WE", "CAN", "WILL", "DO","ABOUT","JUST",
88
+ "OUT", "HIS", "WHO", "WOULD","THERE","LIKE", "HAS","MORE","UP","NO",
89
+ "THEM", "ANY", "THEIR", "IT'S", "ONLY", "WHEN","SOME","HAD", "DON'T",
90
+ ";", "I'M", "BEEN", "WHICH", "OTHER", "WERE", "HOW", "THEN", "NOW",
91
+ "HER", "SHE", "ALSO", "US", "VERY", "BECAUSE","THAN","WELL",
92
+ "AM", "HIM", "INTO", "OUR", "COULD", "EVEN","MUCH","HERE",
93
+ "TOO","THESE", "THOSE","MAY", "WHERE", "MOST","SHOULD", "OVER", "WANT", "DID",
94
+ "WHY", "OFF", "IT", "ITS", "I'VE","MANY","GOING", "THOSE", "DOES","PLEASE",
95
+ "THAT'S", "YOU'RE", "DOWN","ANOTHER", "AROUND","CAN'T","DIDN'T",
96
+ "MUST","YES", "EACH", "MAYBE","EVERY", "FEW", "DOESN'T",
97
+ "I'LL", "OH", "ELSE", "HE'S", "THERE'S", "HI", "AWAY", "DOING","ISN'T",
98
+ "OK", "THEY'RE", "YEAH", "MINE", "WE'RE", "WHAT'S", "SHALL","WON'T",
99
+ "SHE'S", "HELLO", "OKAY", "HERE'S", "-", "LESS", "USED", "use", "associated", "having", "certain",
100
+ "etc", "etc.", "act", "purpose"]
101
+
102
+ # @invisible
103
+ STOP_WORDS = ["a", "am", "an", "and", "any", "as", "at", "is", "it", "its","de", "by","i",
104
+ "ie", "if", "in","no","of", "off", "or", "eg", "the", "too", "are", "the", "he",
105
+ "about", "above", "across", "after", "afterwards", "again", "against",
106
+ "all", "almost", "alone", "along", "already", "also", "although", "always",
107
+ "among", "amongst", "amoungst", "amount", "another",
108
+ "anyhow", "anyone", "anything", "anyway", "anywhere", "are", "around",
109
+ "back", "be", "became", "because", "become", "becomes",
110
+ "becoming", "been", "before", "beforehand", "behind", "being", "below",
111
+ "beside", "besides", "between", "beyond", "bill", "both", "bottom", "call",
112
+ "can", "cannot", "cant", "co", "computer", "con", "could",
113
+ "couldnt", "cry", "describe", "detail", "do", "done", "does", "down",
114
+ "due", "during", "each", "eight", "either", "eleven", "else", "elsewhere",
115
+ "empty", "enough", "etc", "even", "ever", "every", "everyone", "everything",
116
+ "everywhere", "except", "few", "fifteen", "fify", "fill", "find",
117
+ "fire", "first", "five", "for", "former", "formerly", "forty", "found",
118
+ "four", "from", "front", "full", "further", "get", "give", "go",
119
+ "had", "has", "hasnt", "have", "he", "hence", "her", "here", "hereafter",
120
+ "hereby", "herein", "hereupon", "hers", "herself", "him", "himself", "his",
121
+ "how", "however", "hundred", "inc", "indeed",
122
+ "interest", "into", "itself", "keep", "last", "latter",
123
+ "latterly", "least", "less", "ltd", "made", "many", "may", "me",
124
+ "meanwhile", "might", "mill", "mine", "more", "moreover", "most", "mostly",
125
+ "move", "much", "must", "my", "myself", "name", "namely", "neither",
126
+ "never", "nevertheless", "next", "nine", "nobody", "none", "noone",
127
+ "nor", "not", "nothing", "now", "nowhere", "often", "on",
128
+ "once", "one", "only", "onto", "other", "others", "otherwise", "our",
129
+ "ours", "ourselves", "out", "over", "own", "part", "per", "perhaps",
130
+ "please", "put", "rather", "re", "same", "see", "seem", "seemed", "seeming",
131
+ "seems", "serious", "several", "she", "should", "show", "side", "since",
132
+ "sincere", "six", "sixty", "so", "some", "somehow", "someone", "something",
133
+ "sometime", "sometimes", "somewhere", "still", "such", "system", "take",
134
+ "ten", "than", "that", "the", "their", "them", "themselves", "then",
135
+ "thence", "there", "thereafter", "thereby", "therefore", "therein",
136
+ "thereupon", "these", "they", "thick", "thin", "third", "this", "those",
137
+ "though", "three", "through", "throughout", "thru", "thus", "to",
138
+ "together", "top", "toward", "towards", "twelve", "twenty", "two",
139
+ "un", "under", "until", "up", "upon", "us", "very", "via", "was", "we",
140
+ "well", "were", "what", "whatever", "when", "whence", "whenever", "where",
141
+ "whereafter", "whereas", "whereby", "wherein", "whereupon", "wherever",
142
+ "whether", "which", "while", "whither", "who", "whoever", "whole", "whom",
143
+ "whose", "why", "will", "with", "within", "without", "would", "yet",
144
+ "you", "your", "yours", "yourself", "yourselves", "individual","individually"]
145
+
146
+ #tokens containing these words aren't compared with other tokens, because they don't add any meaning
147
+ FREQUENT_WORDS = [ "a", "am", "an", "and", "any", "as",
148
+ "at", "are","be", "by", "can", "did", "do", "does", "is", "it", "its", "i", "ie", "if", "in","no",
149
+ "or", "eg", "me", "my","of", "off", "oh", "our", "ours", "was", "have", "has",
150
+ "so","she", "the", "too", "to","they", "their", "theirs", "that", "this", "then",
151
+ "there","than", "up", "us", "u", "his", "her", "hers",
152
+ "we", "with","were", "you", "your", "yours"]
153
+
154
+ #puts FREQUENT_WORDS
155
+ #------------------------------------------#------------------------------------------
156
+ #constants used by sentence state - for identifying negations and suggestive words
157
+
158
+ =begin
159
+ If negative words were found and a neg. descriptor is seen => (-)(-) = (+)
160
+ public static String[] NEGATIVE_DESCRIPTORS = new String[4879];
161
+ =end
162
+ NEGATIVE_DESCRIPTORS = [
163
+ #negated phrases (topical words I spotted in text)
164
+ "NOTHING", "nowhere", "scarcely", "scarce", "zero", "drawback",
165
+ "barely", "hardly", "deny", "refuse", "fail", "failed",
166
+ "without", "ambiguous", "ambiguity", "neither", "empty",
167
+ "deviation", "lacks", "lack", "lacking", "lacked", "abrupt", "abruptly", "somewhat", "copied", "copy",
168
+ "overbalanced", "missing", "poor",
169
+ "negative", "negatively", "underrepresented", "duplication", "wrong", "mistake", "mistakes","duplications",
170
+ "duplicate", "duplicated", "duplicating", "avoids", "messy", "deleted", "cumbersome", "strange",
171
+ "strangely", "misspell", "misspelling", "misspellings", "misspelt", "verbose", "confuse", "confusion", "confusing",
172
+ "confused", "confuses", "trivial", "triviality", "typo", "typos", "somewhat", "concerns", "concern",
173
+ "barring", "overuse", "repitition", "useless", "biased", "rushed", "absent", "wordy", "bad", "less",
174
+ "unclear", "difficult", "vague", "briefly", "hard", "broken","replicate","replicated", "digress", "clutter",
175
+ "cluttered", "inadequate", "deviation", "contrived", "contrive", "horrid", "trouble","uneven", "unevenly", "alot",
176
+ "incorrect", "nonsense", "insufficient"]
177
+ =begin
178
+ SENTENCE CLAUSE OR PHRASE FOLLOWING THESE WORDS CARRY A NEGATIVE MEANING (EITHER SUBTLE OR OVERT)
179
+ =end
180
+ NEGATED_WORDS = ["not", "n't", "WON'T", "DON'T", "DIDN'T",
181
+ "DOESN'T", "WOULDN'T", "COULDN'T", "SHOULDN'T", "WASN'T",
182
+ "WEREN'T", "AREN'T", "ISN'T", "HAVEN'T", "HASN'T", "HADN'T", "NOBODY",
183
+ "CAN'T","SHALLN'T", "MUSTN'T", "AIN'T", "cannot",
184
+ #without the apostrophe
185
+ "cant", "dont", "wont","isnt","hasnt", "hadnt", "havent","arent", "werent", "wouldnt",
186
+ "didnt", "couldnt", "shouldnt", "mustnt", "shallnt",
187
+ #other words that indicate negations (negative quantifiers)
188
+ "NO", "NEVER", "NONE"]
189
+
190
+ NEGATIVE_PHRASES = ["too concise",
191
+ "taken from", "been removed", "too long", "off topic",
192
+ "too short", "run on", "too much", "been directly", "similar to",
193
+ "at odds", "grammatical errors", "grammatical error", "available online",
194
+ "make up", "made up", "crammed up"]
195
+
196
+ SUGGESTIVE_WORDS = ["would", "could", "should",
197
+ "maybe", "perhaps", "might", "suggest", "suggests", "suggested", "advise", "advice","could've", "would've",
198
+ "should've", "might've", "may", #"will", "better", "can"
199
+ #when they provide sample examples
200
+ "eg",
201
+ #typos or colloqial
202
+ "I'd", "We'd", "they'd", "you'd"]
203
+
204
+ #suggestive phrases
205
+ SUGGESTIVE_PHRASES = ["for example","try adding", "instead of", #(explaining what isnt good and what potentially could be)
206
+ "little more", "try to", "need more", "needs to", "need to", "more detail",
207
+ "can be", "was expecting", "am expecting", "is required"]
208
+