tfidf_ja 0.1.1 → 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.
data/README.rdoc CHANGED
@@ -10,7 +10,7 @@ tfidf_jaには以下の特徴があります。
10
10
  * IPADIC辞書に収録されている日本語の形態素(約32万語)を使用し、TF値をYahoo!のインデックス数としてあらかじめ算出。
11
11
  * 算出したTF値からIDF値を算出し、IDF辞書としてライブラリに包含し、ライブラリ使用時の算出コストを減らしています。
12
12
  * 形態素解析
13
- * {igo-ruby}[https://rubygems.org/gems/igo-ruby]を使用した形態素解析を行なった上で、TF-IDFを算出することも可能です。
13
+ * {igo-ruby}[https://rubygems.org/gems/igo-ruby]を使用した形態素解析を行なった上で、TF-IDFを算出することをおすすめします。
14
14
 
15
15
  == インストール方法
16
16
 
@@ -26,59 +26,11 @@ tfidf_jaには以下の特徴があります。
26
26
  ti = TfIdf::Ja.new
27
27
  p ti.tfidf(['この', '文章', 'から', 'TFIDF', '値', 'を', '取得', 'する'])
28
28
 
29
- === 形態素解析を行なったあと、TF-IDFを取得
30
-
31
- require 'rubygems'
32
- require 'tfidf_ja'
33
- require 'tfidf_ja/igo_extension'
34
-
35
- dir = './ipadic' # igo-rubyに渡す辞書ファイルのディレクトリ
36
- tie = TfIdf::IgoExtension.new(dir)
37
- p tie.tfidf('この文章を形態素解析し、TFIDF値を取得する')
38
-
39
29
  === インスタンスを使い回し
40
30
 
41
31
  インスタンスを使い回すことにより、TF-IDF値は加算されていきます。
42
32
  複数のテキストから連続して算出する場合に便利です。
43
33
 
44
- tie = TfIdf::IgoExtension.new(dir)
45
- tie.tfidf('この文章を形態素解析し、TFIDF値を取得する').each_pair { |k, v|
46
- puts "#{k}=>#{v}"
47
- }
48
- # =>
49
- 解析=>7.33823815006559
50
- 値=>7.61579107203583
51
- TFIDF=>13.3689578610795
52
- 形態素=>13.0477195694085
53
- 文章=>7.2152399787301
54
- 取得=>7.24992553671799
55
-
56
- # インスタンスを使い回し
57
- tie.tfidf('インスタンスを使い回し、再度TFIDF値を取得する').each_pair { |k, v|
58
- puts "#{k}=>#{v}"
59
- }
60
- # =>
61
- 解析=>7.33823815006559
62
- 値=>15.2315821440717 # 両方のテキストに出現する形態素のTFIDFは大きくなる
63
- TFIDF=>26.737915722159 # 両方のテキストに出現する形態素のTFIDFは大きくなる
64
- 形態素=>13.0477195694085
65
- 文章=>7.2152399787301
66
- インスタンス=>11.7873551106461 # 両方のテキストに出現する形態素のTFIDFは大きくなる
67
- 取得=>14.499851073436 # 両方のテキストに出現する形態素のTFIDFは大きくなる
68
-
69
- リセットする場合はresetメソッドを使用します。
70
-
71
- # resetメソッドでリセット
72
- tie.reset
73
- tie.tfidf('インスタンスを使い回し、再度TFIDF値を取得する').each_pair { |k, v|
74
- puts "#{k}=>#{v}"
75
- }
76
- # =>
77
- 値=>7.61579107203583
78
- TFIDF=>13.3689578610795
79
- インスタンス=>11.7873551106461
80
- 取得=>7.24992553671799
81
-
82
34
  == 付録
83
35
  === 公開場所
84
36
 
data/Rakefile CHANGED
@@ -28,7 +28,7 @@ Jeweler::Tasks.new do |gem|
28
28
  # gem.add_development_dependency 'rspec', '> 1.2.3'
29
29
 
30
30
  # gems dependency
31
- gem.add_runtime_dependency 'igo-ruby', '> 0.1'
31
+ # gem.add_runtime_dependency 'igo-ruby', '> 0.1'
32
32
 
33
33
  # include files
34
34
  gem.files = Rake::FileList.new('lib/**/*.rb', '[A-Z]*', 'dic/idf.dic')
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.2.0
data/lib/dictionary.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # coding: utf-8
2
2
  #
3
- # Copyright:: Copyright (c) kyow, 2010
3
+ # Copyright:: Copyright (c) kyow, 2011
4
4
  # Authors:: K.Nishi
5
5
 
6
6
  module TfIdf
data/test/test.rb CHANGED
@@ -3,11 +3,8 @@
3
3
  #Copyright:: Copyright (c) kyow, 2011
4
4
  #Authors:: K.Nishi
5
5
 
6
- #require '../lib/tfidf_ja'
7
- #require '../lib/tfidf_ja/igo_extension'
8
6
  require 'rubygems'
9
7
  require 'tfidf_ja'
10
- require 'tfidf_ja/igo_extension'
11
8
 
12
9
  def output(h)
13
10
  h.each { |item|
@@ -16,19 +13,11 @@ def output(h)
16
13
  end
17
14
 
18
15
  tfidf = TfIdf::Ja.new
16
+ puts "-->1回目"
19
17
  output tfidf.tfidf(['この', '文章', 'から', 'TFIDF', '値', 'を', '取得', 'する'])
18
+ puts "-->2回目"
20
19
  output tfidf.tfidf(['文章', 'を', '連続', 'で', '渡す', 'と', 'TFIDF', '値', 'を', '追加', 'で', '算出', 'する'])
21
20
 
22
-
23
- # 以下はigo-rubyが必要
24
- dir = '../../ipadic'
25
- tie = TfIdf::IgoExtension.new(dir)
26
- puts s = "この文字列を形態素解析してTFIDF値を取得する"
27
- output tie.tfidf(s)
28
-
29
- puts s = "連続してインスタンスを使うと前回解析したTFIDF計算結果を加味する"
30
- output tie.tfidf(s)
31
-
32
- tie.reset
33
- puts s = "TfIdf::IgoExtension.resetでリセットする"
34
- output tie.tfidf(s)
21
+ puts "-->リセット"
22
+ tfidf.reset
23
+ output tfidf.tfidf(['TFIDF', '#', 'rest', 'で', 'リセット', 'する'])
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tfidf_ja
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease: false
4
+ hash: 23
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - K.Nishi
@@ -15,12 +15,12 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-11 00:00:00 +09:00
18
+ date: 2011-02-21 00:00:00 +09:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- prerelease: false
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
+ type: :development
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
25
25
  requirements:
26
26
  - - ~>
@@ -32,11 +32,11 @@ dependencies:
32
32
  - 0
33
33
  version: 2.1.0
34
34
  name: rspec
35
- requirement: *id001
36
- type: :development
37
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *id001
38
36
  prerelease: false
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
37
+ - !ruby/object:Gem::Dependency
38
+ type: :development
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -48,11 +48,11 @@ dependencies:
48
48
  - 0
49
49
  version: 1.0.0
50
50
  name: bundler
51
- requirement: *id002
52
- type: :development
53
- - !ruby/object:Gem::Dependency
51
+ version_requirements: *id002
54
52
  prerelease: false
55
- version_requirements: &id003 !ruby/object:Gem::Requirement
53
+ - !ruby/object:Gem::Dependency
54
+ type: :development
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
56
  none: false
57
57
  requirements:
58
58
  - - ~>
@@ -64,11 +64,11 @@ dependencies:
64
64
  - 1
65
65
  version: 1.5.1
66
66
  name: jeweler
67
- requirement: *id003
68
- type: :development
69
- - !ruby/object:Gem::Dependency
67
+ version_requirements: *id003
70
68
  prerelease: false
71
- version_requirements: &id004 !ruby/object:Gem::Requirement
69
+ - !ruby/object:Gem::Dependency
70
+ type: :development
71
+ requirement: &id004 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ">="
@@ -78,23 +78,8 @@ dependencies:
78
78
  - 0
79
79
  version: "0"
80
80
  name: rcov
81
- requirement: *id004
82
- type: :development
83
- - !ruby/object:Gem::Dependency
81
+ version_requirements: *id004
84
82
  prerelease: false
85
- version_requirements: &id005 !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
88
- - - ">"
89
- - !ruby/object:Gem::Version
90
- hash: 9
91
- segments:
92
- - 0
93
- - 1
94
- version: "0.1"
95
- name: igo-ruby
96
- requirement: *id005
97
- type: :runtime
98
83
  description: "\n tfidf_ja computes TF-IDF with a dictionary.\n This gem include a Japanese IDF dictionary that were prepared in Yahoo! API.\n "
99
84
  email: 24signals@gmail.com
100
85
  executables: []
@@ -114,7 +99,6 @@ files:
114
99
  - dic/idf.dic
115
100
  - lib/dictionary.rb
116
101
  - lib/tfidf_ja.rb
117
- - lib/tfidf_ja/igo_extension.rb
118
102
  - lib/utility.rb
119
103
  - spec/spec_helper.rb
120
104
  - spec/tfidf_ja_spec.rb
@@ -154,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
138
  requirements: []
155
139
 
156
140
  rubyforge_project:
157
- rubygems_version: 1.3.7
141
+ rubygems_version: 1.5.0
158
142
  signing_key:
159
143
  specification_version: 3
160
144
  summary: Computes TF-IDF with Japanese dictionary.
@@ -1,45 +0,0 @@
1
- # coding: utf-8
2
- #
3
- # Copyright:: Copyright (c) kyow, 2011
4
- # Authors:: K.Nishi
5
-
6
- $:.unshift(File.dirname(__FILE__))
7
-
8
- require 'rubygems'
9
- require 'igo-ruby'
10
-
11
- module TfIdf
12
- #
13
- # 形態素解析に{igo-ruby}[https://rubygems.org/gems/igo-ruby]を使用するための拡張クラス
14
- #
15
- class IgoExtension
16
- # コンストラクタ
17
- def initialize(dir)
18
- @tagger = Igo::Tagger.new(dir)
19
- @tfidf = TfIdf::Ja.new
20
- end
21
-
22
- # インスタンスのリセット
23
- def reset
24
- @tfidf.reset
25
- end
26
-
27
- # igo-rubyを利用して形態素解析を行ない、その結果のTF-IDFを返却する
28
- # text:: 形態素解析を行なうテキスト
29
- # return:: key=形態素、value=TF-IDFのハッシュテーブル
30
- def tfidf(text)
31
- t = @tagger.parse(text)
32
- words = []
33
-
34
- # 品詞が"名詞"の形態素を選択
35
- t.each{ |m|
36
- part = m.feature.split(',')[0]
37
- if(part == '名詞')
38
- words.push(m.surface)
39
- end
40
- }
41
-
42
- return @tfidf.tfidf(words)
43
- end
44
- end
45
- end