stanford_corenlp_xml_adapter 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.simplecov +7 -0
- data/.travis.yml +5 -3
- data/README.md +3 -0
- data/lib/stanford_corenlp_xml_adapter.rb +8 -4
- data/lib/stanford_corenlp_xml_adapter/coreference.rb +59 -0
- data/lib/stanford_corenlp_xml_adapter/dependency_parse.rb +56 -0
- data/lib/stanford_corenlp_xml_adapter/{nokogiri_mixins.rb → nokogiri_misc_mixins.rb} +1 -1
- data/lib/stanford_corenlp_xml_adapter/version.rb +1 -1
- data/stanford_corenlp_xml_adapter.gemspec +2 -0
- metadata +35 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2be2c79f133a2556c4fd2351b37ed383b537073
|
4
|
+
data.tar.gz: 3f0de226512b553bf5f6d9c190608934fd36d406
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b6fa7dd046a0a32c9b663ad9c135cda38c7cd0abd48f422d4d602891986d6d429c6486e960ee00c4d01c57a02e5062211ea6384bd2184e864494e30ae24ede6
|
7
|
+
data.tar.gz: f862e73ab5c4816790fe7914f90da9a75f8105d911355bdc56fd0a5cbe132581513648a87d02b2a4d676d0ba6a10e2c84f8f3a4c46291bdb1e3ab56712e107d5
|
data/.simplecov
ADDED
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
# stanford-corenlp-xml-adapter
|
2
|
+
|
3
|
+
[](https://travis-ci.org/joshweir/stanford-corenlp-xml-adapter) [](https://coveralls.io/github/joshweir/stanford-corenlp-xml-adapter?branch=master)
|
4
|
+
|
2
5
|
Nokogiri based Ruby adapter to the output returned by Stanford CoreNLP XML Server.
|
3
6
|
|
4
7
|
## Installation
|
@@ -1,13 +1,17 @@
|
|
1
|
-
require "stanford_corenlp_xml_adapter/version"
|
2
|
-
require "stanford_corenlp_xml_adapter/nokogiri_mixins"
|
3
1
|
require "nokogiri"
|
2
|
+
require "stanford_corenlp_xml_adapter/version"
|
3
|
+
require "stanford_corenlp_xml_adapter/nokogiri_misc_mixins"
|
4
|
+
require "stanford_corenlp_xml_adapter/coreference"
|
5
|
+
require "stanford_corenlp_xml_adapter/dependency_parse"
|
4
6
|
|
5
7
|
class Nokogiri::XML::Document
|
6
|
-
include
|
8
|
+
include NokogiriMiscellaneousMixins
|
9
|
+
include Coreference
|
7
10
|
end
|
8
11
|
|
9
12
|
class Nokogiri::XML::Element
|
10
|
-
include
|
13
|
+
include NokogiriMiscellaneousMixins
|
14
|
+
include DependencyParse
|
11
15
|
end
|
12
16
|
|
13
17
|
module StanfordCorenlpXmlAdapter
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Coreference
|
2
|
+
def coreferences
|
3
|
+
self.xpath("//coreference//coreference").map{|c| coref_nok_to_blob(c)}
|
4
|
+
end
|
5
|
+
|
6
|
+
def coref_nok_to_blob input
|
7
|
+
{
|
8
|
+
representative: coref_representative_nok_to_blob(input),
|
9
|
+
mentions: coref_mentions_nok_to_blob(input)
|
10
|
+
}
|
11
|
+
end
|
12
|
+
|
13
|
+
def coref_representative_nok_to_blob input
|
14
|
+
coref_mention_nok_to_blob(
|
15
|
+
input
|
16
|
+
.children
|
17
|
+
.select{|m|
|
18
|
+
m.name == 'mention' && m.attributes['representative']
|
19
|
+
}
|
20
|
+
.first
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
24
|
+
def coref_mentions_nok_to_blob input
|
25
|
+
input
|
26
|
+
.children
|
27
|
+
.select{|m|
|
28
|
+
m.name == 'mention'
|
29
|
+
}
|
30
|
+
.map{|m| coref_mention_nok_to_blob(m, true)}
|
31
|
+
end
|
32
|
+
|
33
|
+
def coref_mention_nok_to_blob input, add_representative_flag=nil
|
34
|
+
add_representative_flag ?
|
35
|
+
with_representative_flag(
|
36
|
+
coref_mention(input),
|
37
|
+
input
|
38
|
+
) :
|
39
|
+
coref_mention(input)
|
40
|
+
end
|
41
|
+
|
42
|
+
def coref_mention input
|
43
|
+
Hash[
|
44
|
+
input
|
45
|
+
.children
|
46
|
+
.select{|v| v.class == Nokogiri::XML::Element}
|
47
|
+
.map{|v| [v.name.to_sym, to_i_based_on_field_name(v.text, v.name)]}
|
48
|
+
]
|
49
|
+
end
|
50
|
+
|
51
|
+
def with_representative_flag input, parent
|
52
|
+
parent.name == 'mention' && parent.attributes['representative'] ?
|
53
|
+
input.merge({ representative: true }) : input
|
54
|
+
end
|
55
|
+
|
56
|
+
def to_i_based_on_field_name input, field_name
|
57
|
+
field_name == 'text' ? input : input.to_i
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module DependencyParse
|
2
|
+
def basic_dependencies
|
3
|
+
dependencies_for_type 'basic-dependencies'
|
4
|
+
end
|
5
|
+
|
6
|
+
def collapsed_dependencies
|
7
|
+
dependencies_for_type 'collapsed-dependencies'
|
8
|
+
end
|
9
|
+
|
10
|
+
def collapsed_ccprocessed_dependencies
|
11
|
+
dependencies_for_type 'collapsed-ccprocessed-dependencies'
|
12
|
+
end
|
13
|
+
|
14
|
+
def collapsed_ccprocessed_dependencies
|
15
|
+
dependencies_for_type 'collapsed-ccprocessed-dependencies'
|
16
|
+
end
|
17
|
+
|
18
|
+
def enhanced_dependencies
|
19
|
+
dependencies_for_type 'enhanced-dependencies'
|
20
|
+
end
|
21
|
+
|
22
|
+
def enhanced_plus_plus_dependencies
|
23
|
+
dependencies_for_type 'enhanced-plus-plus-dependencies'
|
24
|
+
end
|
25
|
+
|
26
|
+
def dependencies_for_type type
|
27
|
+
dependency_parse_nok_to_blob(
|
28
|
+
self.xpath(".//dependencies[@type=\"#{type}\"]")
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
def dependency_parse_nok_to_blob input
|
33
|
+
input
|
34
|
+
.children
|
35
|
+
.select{|dep| dep.name == 'dep'}
|
36
|
+
.map{|dep| dependency_nok_to_blob(dep)}
|
37
|
+
end
|
38
|
+
|
39
|
+
def dependency_nok_to_blob input
|
40
|
+
{
|
41
|
+
type: input.attributes['type'].value,
|
42
|
+
governor: dependency_slice_nok_to_blob('governor', input),
|
43
|
+
dependent: dependency_slice_nok_to_blob('dependent', input)
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
def dependency_slice_nok_to_blob name, input
|
48
|
+
dep = input.children
|
49
|
+
.select{|dep| dep.name == name}
|
50
|
+
.first
|
51
|
+
{
|
52
|
+
idx: dep.attributes['idx'].value.to_i,
|
53
|
+
value: dep.text
|
54
|
+
}
|
55
|
+
end
|
56
|
+
end
|
@@ -27,6 +27,8 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency "gem-release"
|
28
28
|
spec.add_development_dependency "rb-fsevent"
|
29
29
|
spec.add_development_dependency "guard-rspec"
|
30
|
+
spec.add_development_dependency "coveralls"
|
31
|
+
spec.add_development_dependency "simplecov"
|
30
32
|
spec.add_dependency "activesupport"
|
31
33
|
spec.add_dependency "nokogiri"
|
32
34
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stanford_corenlp_xml_adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- joshweir
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-11-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -108,6 +108,34 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: coveralls
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: simplecov
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
111
139
|
- !ruby/object:Gem::Dependency
|
112
140
|
name: activesupport
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -145,6 +173,7 @@ files:
|
|
145
173
|
- ".dockerignore"
|
146
174
|
- ".gitignore"
|
147
175
|
- ".rspec"
|
176
|
+
- ".simplecov"
|
148
177
|
- ".travis.yml"
|
149
178
|
- Dockerfile
|
150
179
|
- Gemfile
|
@@ -160,7 +189,9 @@ files:
|
|
160
189
|
- docker-compose.yml
|
161
190
|
- docker-entrypoint.sh
|
162
191
|
- lib/stanford_corenlp_xml_adapter.rb
|
163
|
-
- lib/stanford_corenlp_xml_adapter/
|
192
|
+
- lib/stanford_corenlp_xml_adapter/coreference.rb
|
193
|
+
- lib/stanford_corenlp_xml_adapter/dependency_parse.rb
|
194
|
+
- lib/stanford_corenlp_xml_adapter/nokogiri_misc_mixins.rb
|
164
195
|
- lib/stanford_corenlp_xml_adapter/version.rb
|
165
196
|
- stanford_corenlp_xml_adapter.gemspec
|
166
197
|
homepage: https://github.com/joshweir/stanford-corenlp-xml-adapter
|
@@ -183,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
214
|
version: '0'
|
184
215
|
requirements: []
|
185
216
|
rubyforge_project:
|
186
|
-
rubygems_version: 2.
|
217
|
+
rubygems_version: 2.5.2.3
|
187
218
|
signing_key:
|
188
219
|
specification_version: 4
|
189
220
|
summary: Ruby adapter to the output returned by Stanford CoreNLP XML Server.
|