rbtagger 0.3.2 → 0.4.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.
Files changed (59) hide show
  1. data/README +44 -0
  2. data/Rakefile +78 -4
  3. data/ext/rule_tagger/registry.c +4 -4
  4. data/ext/rule_tagger/registry.h +1 -1
  5. data/ext/word_tagger/rtagger.cc +23 -1
  6. data/ext/word_tagger/tagger.cc +9 -4
  7. data/ext/word_tagger/tagger.h +2 -0
  8. data/ext/word_tagger/test.rb +2 -2
  9. data/lib/brill/brown/{LEXICON → Lexicon.rb} +0 -0
  10. data/lib/brill/tagger.rb +1 -1
  11. data/lib/rbtagger.rb +0 -3
  12. data/lib/rbtagger/version.rb +2 -2
  13. data/lib/word/tagger.rb +2 -1
  14. metadata +38 -101
  15. data/COPYING +0 -21
  16. data/History.txt +0 -4
  17. data/License.txt +0 -20
  18. data/Manifest.txt +0 -82
  19. data/PostInstall.txt +0 -1
  20. data/README.txt +0 -51
  21. data/config/hoe.rb +0 -74
  22. data/config/requirements.rb +0 -15
  23. data/ext/rule_tagger/mkmf.log +0 -46
  24. data/ext/word_tagger/mkmf.log +0 -24
  25. data/ext/word_tagger/test/Makefile +0 -22
  26. data/ext/word_tagger/test/doc.txt +0 -87
  27. data/lib/brill/brown/CONTEXTUALRULEFILE +0 -284
  28. data/lib/brill/brown/LEXICALRULEFILE +0 -148
  29. data/script/console +0 -10
  30. data/script/destroy +0 -14
  31. data/script/generate +0 -14
  32. data/script/txt2html +0 -82
  33. data/setup.rb +0 -1585
  34. data/tasks/deployment.rake +0 -34
  35. data/tasks/environment.rake +0 -7
  36. data/tasks/extconf.rake +0 -18
  37. data/tasks/extconf/rule_tagger.rake +0 -43
  38. data/tasks/extconf/word_tagger.rake +0 -43
  39. data/tasks/website.rake +0 -17
  40. data/test/docs/doc0.txt +0 -20
  41. data/test/docs/doc1.txt +0 -11
  42. data/test/docs/doc2.txt +0 -52
  43. data/test/docs/doc3.txt +0 -128
  44. data/test/docs/doc4.txt +0 -337
  45. data/test/docs/doc5.txt +0 -497
  46. data/test/docs/doc6.txt +0 -116
  47. data/test/docs/doc7.txt +0 -101
  48. data/test/docs/doc8.txt +0 -25
  49. data/test/docs/doc9.txt +0 -84
  50. data/test/fixtures/tags.txt +0 -976
  51. data/test/test_helper.rb +0 -5
  52. data/test/test_rule_tagger.rb +0 -151
  53. data/test/test_word_tagger.rb +0 -47
  54. data/tools/rakehelp.rb +0 -113
  55. data/website/index.html +0 -231
  56. data/website/index.txt +0 -70
  57. data/website/javascripts/rounded_corners_lite.inc.js +0 -285
  58. data/website/stylesheets/screen.css +0 -138
  59. data/website/template.html.erb +0 -184
data/README CHANGED
@@ -1,3 +1,9 @@
1
+ = rbtagger
2
+
3
+ * http://github.com/taf2/rb-brill-tagger/tree/master
4
+
5
+ == DESCRIPTION:
6
+
1
7
  A Simple Ruby Rule-Based Part of Speech Tagger
2
8
 
3
9
  This work is based on the work of Eric Brill
@@ -5,3 +11,41 @@ This work is based on the work of Eric Brill
5
11
  Credit for extracting Eric's work into a reusable library goes to Ken Williams as part of his work in creating the Lingua::BrillTagger perl module
6
12
 
7
13
  This software is made available under the MIT License, see LICENSE
14
+
15
+ == FEATURES/PROBLEMS:
16
+
17
+ * Rule based tagger
18
+ * Word matching tagger
19
+
20
+ == SYNOPSIS:
21
+
22
+ tagger = Brill::Tagger.new
23
+
24
+ == INSTALL:
25
+
26
+ * sudo gem install rbtagger
27
+
28
+ == LICENSE:
29
+
30
+ (The MIT License)
31
+
32
+ Copyright (c) 2008 Todd A. Fisher
33
+
34
+ Permission is hereby granted, free of charge, to any person obtaining
35
+ a copy of this software and associated documentation files (the
36
+ 'Software'), to deal in the Software without restriction, including
37
+ without limitation the rights to use, copy, modify, merge, publish,
38
+ distribute, sublicense, and/or sell copies of the Software, and to
39
+ permit persons to whom the Software is furnished to do so, subject to
40
+ the following conditions:
41
+
42
+ The above copyright notice and this permission notice shall be
43
+ included in all copies or substantial portions of the Software.
44
+
45
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
46
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
47
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
48
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
49
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
50
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
51
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile CHANGED
@@ -1,4 +1,78 @@
1
- require 'config/requirements'
2
- require 'config/hoe' # setup Hoe + all gem configuration
3
-
4
- Dir['tasks/**/*.rake'].each { |rake| load rake }
1
+ require 'rake/clean'
2
+ require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+
5
+ CLEAN.include '**/*.o'
6
+ CLEAN.include "**/*.#{Config::MAKEFILE_CONFIG['DLEXT']}"
7
+ CLOBBER.include 'doc'
8
+ CLOBBER.include '**/*.log'
9
+ CLOBBER.include '**/Makefile'
10
+ CLOBBER.include '**/extconf.h'
11
+
12
+ # Make tasks -----------------------------------------------------
13
+ make_program = (/mswin/ =~ RUBY_PLATFORM) ? 'nmake' : 'make'
14
+ MAKECMD = ENV['MAKE_CMD'] || make_program
15
+ MAKEOPTS = ENV['MAKE_OPTS'] || ''
16
+
17
+ RULE_SO = "ext/rule_tagger/rule_tagger.#{Config::MAKEFILE_CONFIG['DLEXT']}"
18
+ WORD_SO = "ext/word_tagger/word_tagger.#{Config::MAKEFILE_CONFIG['DLEXT']}"
19
+
20
+ def make(mod,target = '')
21
+ Dir.chdir("ext/#{mod}_tagger") do
22
+ pid = system("#{MAKECMD} #{MAKEOPTS} #{target}")
23
+ $?.exitstatus
24
+ end
25
+ end
26
+
27
+ file 'ext/word_tagger/Makefile' => 'ext/word_tagger/extconf.rb' do
28
+ Dir.chdir('ext/word_tagger') { ruby "extconf.rb #{ENV['EXTCONF_OPTS']}" }
29
+ end
30
+
31
+ file 'ext/rule_tagger/Makefile' => 'ext/rule_tagger/extconf.rb' do
32
+ Dir.chdir('ext/rule_tagger') { ruby "extconf.rb #{ENV['EXTCONF_OPTS']}" }
33
+ end
34
+
35
+ # Let make handle dependencies between c/o/so - we'll just run it.
36
+ file RULE_SO => (['ext/rule_tagger/Makefile','ext/rule_tagger/extconf.rb'] + Dir['ext/rule_tagger/*.cc'] + Dir['ext/rule_tagger/*.h']) do
37
+ m = make('rule')
38
+ fail "Make failed (status #{m})" unless m == 0
39
+ end
40
+
41
+ file WORD_SO => (['ext/word_tagger/Makefile','ext/rule_tagger/extconf.rb'] + Dir['ext/word_tagger/*.cc'] + Dir['ext/word_tagger/*.h']) do
42
+ m = make('word')
43
+ fail "Make failed (status #{m})" unless m == 0
44
+ end
45
+
46
+ desc "Compile the shared object"
47
+ task :compile => [RULE_SO, WORD_SO]
48
+
49
+ Rake::TestTask.new(:inttest) do |t|
50
+ t.test_files = FileList['test/test_*.rb']
51
+ t.verbose = false
52
+ end
53
+
54
+ desc "Test taggers"
55
+ task :test => [:compile, :inttest]
56
+
57
+ task :default => :test
58
+
59
+ desc 'Generate gem specification'
60
+ task :gemspec do
61
+ require 'erb'
62
+ tspec = ERB.new(File.read(File.join(File.dirname(__FILE__),'lib','rbtagger.gemspec.erb')))
63
+ File.open(File.join(File.dirname(__FILE__),'rbtagger.gemspec'),'wb') do|f|
64
+ f << tspec.result
65
+ end
66
+ end
67
+ require 'lib/rbtagger/version'
68
+ CURRENT_VERSION = RbTagger::VERSION::STRING
69
+ desc 'Build gem'
70
+ task :package => :gemspec do
71
+ require 'rubygems/specification'
72
+ spec_source = File.read File.join(File.dirname(__FILE__),'rbtagger.gemspec')
73
+ spec = nil
74
+ # see: http://gist.github.com/16215
75
+ Thread.new { spec = eval("$SAFE = 3\n#{spec_source}") }.join
76
+ spec.validate
77
+ Gem::Builder.new(spec).build
78
+ end
@@ -251,12 +251,12 @@ NORET Registry_destroy(dir)
251
251
 
252
252
  unsigned int Registry_ptrhash(ptr, htsize)
253
253
  CONSTVOIDP ptr;
254
- unsigned int htsize;
254
+ unsigned long htsize;
255
255
  {
256
- unsigned int uns_int_ptr = (unsigned int)ptr;
256
+ unsigned long uns_int_ptr = (unsigned long)ptr;
257
257
 
258
- if ((int)uns_int_ptr > 0)
259
- return htsize ? (int)uns_int_ptr % (int)htsize : 0;
258
+ if ((long)uns_int_ptr > 0)
259
+ return htsize ? (long)uns_int_ptr % (int)htsize : 0;
260
260
  else
261
261
  return htsize ? uns_int_ptr % htsize : 0;
262
262
  }
@@ -23,7 +23,7 @@ extern unsigned int Registry_entry_count(Registry);
23
23
  extern NORET Registry_fetch_contents(Registry, Darray, Darray);
24
24
  extern NORET Registry_destroy(Registry);
25
25
  extern int Registry_ptrcmp(CONSTVOIDP, CONSTVOIDP);
26
- extern unsigned int Registry_ptrhash(CONSTVOIDP, unsigned int);
26
+ extern unsigned int Registry_ptrhash(CONSTVOIDP, unsigned long);
27
27
  extern int Registry_strcmp(CONSTVOIDP, CONSTVOIDP);
28
28
  extern unsigned int Registry_strhash(CONSTVOIDP, unsigned int);
29
29
  extern int Registry_strcasecmp(CONSTVOIDP, CONSTVOIDP);
@@ -36,13 +36,35 @@ VALUE Tagger_execute( VALUE self, VALUE text )
36
36
  }
37
37
  return results;
38
38
  }
39
+ /*
40
+ * call-seq:
41
+ * tagger.freq(['word1','word2','word3',...,n]) => {'word1' => 5, 'word2' => 10, ... }
42
+ *
43
+ * run the tagger against a body of text either as an array or as a string. extract words of interest
44
+ * given the predefined set of tags.
45
+ */
39
46
  VALUE Tagger_execute_freq( VALUE self, VALUE text )
40
47
  {
41
48
  NWordTagger *tagger;
42
49
  Data_Get_Struct( self, NWordTagger, tagger );
43
50
  int max_count = 0;
44
51
  std::map<std::string,int> tags;
45
- tagger->execute_with_frequency( RSTRING_PTR(text), tags, max_count );
52
+ if( TYPE(text) == T_STRING) {
53
+ tagger->execute_with_frequency( RSTRING_PTR(text), tags, max_count );
54
+ }
55
+ else if( TYPE(text) == T_ARRAY ) {
56
+ // convert ruby array to std vector
57
+ std::vector<std::string> words;
58
+ unsigned int len = RARRAY_LEN(text);
59
+ words.reserve(len);
60
+ for( unsigned int i = 0; i < len; ++i ) {
61
+ words.push_back(std::string(RSTRING_PTR(rb_ary_entry(text,i))));
62
+ }
63
+ tagger->execute_with_frequency( words, tags, max_count );
64
+ }
65
+ else {
66
+ rb_raise(rb_eRuntimeError, "Must provide either a string or array as input");
67
+ }
46
68
  VALUE results = rb_hash_new();
47
69
  for( std::map<std::string,int>::const_iterator it = tags.begin(); it != tags.end(); ++it ) {
48
70
  rb_hash_aset( results, rb_str_new(it->first.c_str(), it->first.length()), rb_int_new(it->second) );
@@ -82,9 +82,8 @@ std::string NWordTagger::stemWord( const std::string &word )const
82
82
  return stemmed;
83
83
  }
84
84
 
85
- int NWordTagger::execute_with_frequency( const char *text, std::map<std::string,int> &matched_tags, int &max_count )const
85
+ int NWordTagger::execute_with_frequency( const std::vector<std::string> &words, std::map<std::string,int> &matched_tags, int &max_count )const
86
86
  {
87
- std::vector<std::string> words = word_split( text );
88
87
  std::string match_word;
89
88
  std::map<std::string,std::string>::const_iterator matched;
90
89
 
@@ -130,6 +129,11 @@ int NWordTagger::execute_with_frequency( const char *text, std::map<std::string,
130
129
  }
131
130
  return matched_tags.size();
132
131
  }
132
+ int NWordTagger::execute_with_frequency( const char *text, std::map<std::string,int> &matched_tags, int &max_count )const
133
+ {
134
+ std::vector<std::string> words = word_split( text );
135
+ return execute_with_frequency(words, matched_tags, max_count);
136
+ }
133
137
 
134
138
  int NWordTagger::execute( std::vector<std::string> &reduced_tags, const char *text, unsigned short max )const
135
139
  {
@@ -159,12 +163,13 @@ int NWordTagger::execute( std::vector<std::string> &reduced_tags, const char *te
159
163
  // sort the tags in frequency order
160
164
  std::sort( sorted_tags.begin(), sorted_tags.end(), WordComparitor() );
161
165
 
166
+
162
167
  std::vector< std::pair<std::string, int> >::iterator mloc;
163
168
  do {
164
169
  for(mloc = sorted_tags.begin(); mloc != sorted_tags.end(); ++mloc ) {
165
170
  std::pair< std::string, int > word_freq = *mloc;
166
- // printf( "word: %s, frequency: %d\n", word_freq.first.c_str(), word_freq.second );
167
- // printf( "word: %s, frequency: %d\n", mloc->first.c_str(), mloc->second );
171
+ printf( "word: %s, frequency: %d\n", word_freq.first.c_str(), word_freq.second );
172
+ printf( "word: %s, frequency: %d\n", mloc->first.c_str(), mloc->second );
168
173
  if( word_freq.second < max_count ) {
169
174
  sorted_tags.erase( mloc );
170
175
  break;
@@ -18,10 +18,12 @@ struct NWordTagger {
18
18
  // fill results with matching tags in the text body
19
19
  // keep the number of tags returned within the threshold of max. reducing tags by least frequent
20
20
  int execute( std::vector<std::string> &reduced_tags, const char *text, unsigned short max = 10 )const;
21
+ int execute( std::vector<std::string> &reduced_tags, const std::vector<std::string> &words, unsigned short max = 10 )const;
21
22
 
22
23
  // return the number of matched tags
23
24
  // result is updated with a mapping of matched tags with their individual term frequency count
24
25
  int execute_with_frequency( const char *text, std::map<std::string,int> &matched_tags, int &max_count )const;
26
+ int execute_with_frequency( const std::vector<std::string> &words, std::map<std::string,int> &matched_tags, int &max_count )const;
25
27
  private:
26
28
  short nwords;
27
29
  struct stemmer *stemmer;
@@ -1,12 +1,12 @@
1
1
  if $0 == __FILE__
2
2
  require 'test/unit'
3
- require 'tagger'
3
+ require 'word_tagger'
4
4
 
5
5
  class NWordTest < Test::Unit::TestCase
6
6
 
7
7
  def setup
8
8
  if !defined?($tagger)
9
- $tagger = Tagger::SimpleTagger.new
9
+ $tagger = Tagger::WordTagger.new
10
10
  $tagger.load_tags( File.read('../../tags.txt').split("\n") )
11
11
  $tagger.set_words( 4 );
12
12
  end
File without changes
data/lib/brill/tagger.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'rule_tagger'
1
+ require 'rule_tagger/rule_tagger'
2
2
 
3
3
  module Brill
4
4
  class Tagger
data/lib/rbtagger.rb CHANGED
@@ -1,6 +1,3 @@
1
- $:.unshift(File.dirname(__FILE__)) unless
2
- $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
-
4
1
  module RbTagger
5
2
  class << self
6
3
  def tags_from_file( file )
@@ -1,8 +1,8 @@
1
1
  module RbTagger #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 3
5
- TINY = 2
4
+ MINOR = 4
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/lib/word/tagger.rb CHANGED
@@ -1,5 +1,6 @@
1
+ require 'word_tagger/word_tagger'
2
+
1
3
  module Word
2
- require 'word_tagger'
3
4
  class Tagger < Tagger::WordTagger
4
5
  def initialize( tags, options = {} )
5
6
  if tags.is_a?(String) and File.exist?(tags)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbtagger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Todd A. Fisher
@@ -9,130 +9,69 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-07 00:00:00 -04:00
12
+ date: 2010-01-24 00:00:00 -05:00
13
13
  default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: hoe
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 2.3.2
24
- version:
14
+ dependencies: []
15
+
25
16
  description: A Simple Ruby Rule-Based Part of Speech Tagger
26
- email:
27
- - todd.fisher@gmail.com
17
+ email: todd.fisher@gmail.com
28
18
  executables: []
29
19
 
30
20
  extensions:
31
- - ext/word_tagger/extconf.rb
32
21
  - ext/rule_tagger/extconf.rb
22
+ - ext/word_tagger/extconf.rb
33
23
  extra_rdoc_files:
34
- - History.txt
35
- - License.txt
36
- - Manifest.txt
37
- - PostInstall.txt
38
- - README.txt
39
- - ext/word_tagger/test/doc.txt
40
- - website/index.txt
24
+ - LICENSE
25
+ - README
41
26
  files:
42
- - COPYING
43
- - History.txt
44
27
  - LICENSE
45
- - License.txt
46
- - Manifest.txt
47
- - PostInstall.txt
48
28
  - README
49
- - README.txt
50
29
  - Rakefile
51
- - config/hoe.rb
52
- - config/requirements.rb
53
- - ext/rule_tagger/bool.h
30
+ - lib/brill/brown/Lexicon.rb
31
+ - lib/brill/tagger.rb
32
+ - lib/rbtagger/version.rb
33
+ - lib/rbtagger.rb
34
+ - lib/word/tagger.rb
54
35
  - ext/rule_tagger/darray.c
55
- - ext/rule_tagger/darray.h
56
- - ext/rule_tagger/darrayP.h
57
- - ext/rule_tagger/extconf.rb
58
36
  - ext/rule_tagger/lex.c
59
- - ext/rule_tagger/lex.h
60
37
  - ext/rule_tagger/memory.c
61
- - ext/rule_tagger/memory.h
62
- - ext/rule_tagger/mkmf.log
63
38
  - ext/rule_tagger/rbtagger.c
64
39
  - ext/rule_tagger/registry.c
40
+ - ext/rule_tagger/rules.c
41
+ - ext/rule_tagger/tagger.c
42
+ - ext/rule_tagger/useful.c
43
+ - ext/word_tagger/porter_stemmer.c
44
+ - ext/word_tagger/rtagger.cc
45
+ - ext/word_tagger/tagger.cc
46
+ - ext/word_tagger/test/test.cc
47
+ - ext/rule_tagger/bool.h
48
+ - ext/rule_tagger/darray.h
49
+ - ext/rule_tagger/darrayP.h
50
+ - ext/rule_tagger/lex.h
51
+ - ext/rule_tagger/memory.h
65
52
  - ext/rule_tagger/registry.h
66
53
  - ext/rule_tagger/registryP.h
67
54
  - ext/rule_tagger/ruby-compat.h
68
- - ext/rule_tagger/rules.c
69
55
  - ext/rule_tagger/rules.h
70
56
  - ext/rule_tagger/sysdep.h
71
- - ext/rule_tagger/tagger.c
72
57
  - ext/rule_tagger/tagger.h
73
- - ext/rule_tagger/useful.c
74
58
  - ext/rule_tagger/useful.h
75
- - ext/word_tagger/extconf.rb
76
- - ext/word_tagger/mkmf.log
77
- - ext/word_tagger/porter_stemmer.c
78
59
  - ext/word_tagger/porter_stemmer.h
79
- - ext/word_tagger/rtagger.cc
80
- - ext/word_tagger/tagger.cc
81
60
  - ext/word_tagger/tagger.h
61
+ - ext/rule_tagger/extconf.rb
62
+ - ext/word_tagger/extconf.rb
82
63
  - ext/word_tagger/test.rb
83
- - ext/word_tagger/test/Makefile
84
- - ext/word_tagger/test/doc.txt
85
- - ext/word_tagger/test/test.cc
86
- - lib/brill/tagger.rb
87
- - lib/rbtagger.rb
88
- - lib/rbtagger/version.rb
89
- - lib/word/tagger.rb
90
- - lib/brill/brown/CONTEXTUALRULEFILE
91
- - lib/brill/brown/LEXICALRULEFILE
92
- - lib/brill/brown/LEXICON
93
- - script/console
94
- - script/destroy
95
- - script/generate
96
- - script/txt2html
97
- - setup.rb
98
- - tasks/deployment.rake
99
- - tasks/environment.rake
100
- - tasks/extconf.rake
101
- - tasks/extconf/rule_tagger.rake
102
- - tasks/extconf/word_tagger.rake
103
- - tasks/website.rake
104
- - test/docs/doc0.txt
105
- - test/docs/doc1.txt
106
- - test/docs/doc2.txt
107
- - test/docs/doc3.txt
108
- - test/docs/doc4.txt
109
- - test/docs/doc5.txt
110
- - test/docs/doc6.txt
111
- - test/docs/doc7.txt
112
- - test/docs/doc8.txt
113
- - test/docs/doc9.txt
114
- - test/fixtures/tags.txt
115
- - test/test_helper.rb
116
- - test/test_rule_tagger.rb
117
- - test/test_word_tagger.rb
118
- - tools/rakehelp.rb
119
- - website/index.html
120
- - website/index.txt
121
- - website/javascripts/rounded_corners_lite.inc.js
122
- - website/stylesheets/screen.css
123
- - website/template.html.erb
124
64
  has_rdoc: true
125
- homepage: http://rbtagger.rubyforge.org
126
- post_install_message: |
127
- For more information on rbtagger, see http://rbtagger.rubyforge.org
65
+ homepage: http://rbtagger.rubyforge.org/
66
+ licenses: []
128
67
 
68
+ post_install_message:
129
69
  rdoc_options:
130
70
  - --main
131
- - README.txt
71
+ - README
132
72
  require_paths:
133
73
  - lib
134
- - ext/word_tagger
135
- - ext/rule_tagger
74
+ - ext
136
75
  required_ruby_version: !ruby/object:Gem::Requirement
137
76
  requirements:
138
77
  - - ">="
@@ -147,12 +86,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
86
  version:
148
87
  requirements: []
149
88
 
150
- rubyforge_project: rbtagger
151
- rubygems_version: 1.3.1
89
+ rubyforge_project: curb
90
+ rubygems_version: 1.3.5
152
91
  signing_key:
153
- specification_version: 2
154
- summary: A Simple Ruby Rule-Based Part of Speech Tagger
155
- test_files:
156
- - test/test_rule_tagger.rb
157
- - test/test_helper.rb
158
- - test/test_word_tagger.rb
92
+ specification_version: 3
93
+ summary: Ruby libcurl bindings
94
+ test_files: []
95
+