chawan 0.0.3 → 0.0.4

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 (5) hide show
  1. data/README +15 -13
  2. data/Rakefile +1 -1
  3. data/lib/chawan/nodes.rb +4 -3
  4. data/spec/nodes_spec.rb +19 -18
  5. metadata +1 -1
data/README CHANGED
@@ -32,33 +32,35 @@ Class
32
32
  Example
33
33
  =======
34
34
 
35
- text = '本日はバリ晴天なりっす'
35
+ text = '登録された利用者'
36
36
 
37
37
  # 'parse' returns a Chawan::Nodes
38
38
  Chawan.parse(text)
39
- => [<名詞: '本日'>, <助詞: ''>, <名詞: 'バリ'>, <名詞: '晴天'>, <助動詞: 'なり'>, <助動詞: 'っす'>]
39
+ => [<名詞: '登録'>, <動詞: ''>, <動詞: ''>, <助動詞: ''>, <名詞: '利用'>, <名詞: ''>]
40
40
 
41
41
  # Chawan::Nodes is enumerable
42
42
  Chawan.parse(text).select{|node| node.category == '名詞'}
43
- => [<名詞: '本日'>, <名詞: 'バリ'>, <名詞: '晴天'>]
43
+ => [<名詞: '登録'>, <名詞: '利用'>, <名詞: ''>]
44
44
 
45
45
  # gateway interface: noun
46
46
  Chawan.parse(text).noun
47
- => [<名詞: '本日'>, <名詞: 'バリ'>, <名詞: '晴天'>]
47
+ => [<名詞: '登録'>, <名詞: '利用'>, <名詞: ''>]
48
48
 
49
49
  # gateway interface: verb
50
50
  Chawan.parse(text).verb
51
- => [<助動詞: 'なり'>, <助動詞: 'っす'>]
51
+ => [<動詞: ''>, <動詞: 'れ'>, <助動詞: ''>]
52
52
 
53
53
  # gateway interface: grep
54
- Chawan.parse(text).grep(/助/)
55
- => [<助詞: ''>, <助動詞: 'なり'>, <助動詞: 'っす'>]
54
+ Chawan.parse(text).grep(/動詞/)
55
+ => [<動詞: ''>, <動詞: ''>, <助動詞: ''>]
56
+ Chawan.parse(text).grep('動詞')
57
+ => [<動詞: 'さ'>, <動詞: 'れ'>]
56
58
 
57
59
  # gateway interface: compact
58
60
  Chawan.parse(text).compact
59
- => [<名詞: '本日'>, <助詞: ''>, <名詞: 'バリ晴天'>, <助動詞: 'なりっす'>]
60
- Chawan.parse(text).compact(/名詞/)
61
- => [<名詞: '本日'>, <助詞: ''>, <名詞: 'バリ晴天'>, <助動詞: 'なり'>, <助動詞: 'っす'>]
61
+ => [<名詞: '登録'>, <動詞: 'され'>, <助動詞: ''>, <名詞: '利用者'>]
62
+ Chawan.parse(text).compact(/動詞/)
63
+ => [<名詞: '登録'>, <動詞: 'された'>, <名詞: '利用'>, <名詞: ''>]
62
64
 
63
65
  # gateway interface is chainable
64
66
  Chawan.parse(text).noun.verb
@@ -66,11 +68,11 @@ Example
66
68
 
67
69
  # chainable is fun!
68
70
  Chawan.parse(text).noun
69
- => [<名詞: '本日'>, <名詞: 'バリ'>, <名詞: '晴天'>]
71
+ => [<名詞: '登録'>, <名詞: '利用'>, <名詞: ''>]
70
72
  Chawan.parse(text).compact.noun
71
- => [<名詞: '本日'>, <名詞: 'バリ晴天'>]
73
+ => [<名詞: '登録'>, <名詞: '利用者'>]
72
74
  Chawan.parse(text).noun.compact
73
- => [<名詞: '本日バリ晴天'>]
75
+ => [<名詞: '登録利用者'>]
74
76
 
75
77
 
76
78
  Analyzer
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ AUTHOR = "maiha"
6
6
  EMAIL = "maiha@wota.jp"
7
7
  HOMEPAGE = "http://github.com/maiha/chawan"
8
8
  SUMMARY = "A cup for chasen that provides an easy to use for extracting Japanese"
9
- GEM_VERSION = "0.0.3"
9
+ GEM_VERSION = "0.0.4"
10
10
 
11
11
  spec = Gem::Specification.new do |s|
12
12
  s.rubyforge_project = 'asakusarb'
@@ -34,11 +34,12 @@ module Chawan
34
34
  end
35
35
  end
36
36
 
37
- def compact(pattern = //)
37
+ def compact(pattern = nil)
38
38
  array = []
39
- prev = nil
40
39
  each do |node|
41
- if array.last and (pattern === node.category) and array.last.category == node.category
40
+ if array.last and (pattern ?
41
+ (pattern === node.category && pattern === array.last.category) :
42
+ (array.last.category == node.category))
42
43
  array.last.word << node.word.to_s
43
44
  else
44
45
  array << Node.new(node.vals.map(&:dup), node.keys)
@@ -25,16 +25,17 @@ end
25
25
  describe Chawan::Nodes do
26
26
  before do
27
27
  keys = ["表記","品詞"]
28
- @n1 = Chawan::Node.new(["本日","名詞"], keys)
29
- @p1 = Chawan::Node.new(["" ,"助詞"], keys)
30
- @n2 = Chawan::Node.new(["マジ","名詞"], keys)
31
- @n3 = Chawan::Node.new(["晴天","名詞"], keys)
32
- @v1 = Chawan::Node.new(["なり","助動詞"], keys)
33
- @v2 = Chawan::Node.new(["っす","助動詞"], keys)
34
- @nodes = Chawan::Nodes.new([@n1, @p1, @n2, @n3, @v1, @v2])
28
+ @n1 = Chawan::Node.new(["登録","名詞" ], keys)
29
+ @v1 = Chawan::Node.new(["" ,"動詞" ], keys)
30
+ @v2 = Chawan::Node.new(["" ,"動詞" ], keys)
31
+ @p1 = Chawan::Node.new(["" ,"助動詞"], keys)
32
+ @n2 = Chawan::Node.new(["利用","名詞" ], keys)
33
+ @n3 = Chawan::Node.new(["" ,"名詞" ], keys)
34
+ @nodes = Chawan::Nodes.new([@n1, @v1, @v2, @p1, @n2, @n3])
35
35
 
36
- @n23 = Chawan::Node.new(["マジ晴天","名詞"], keys)
37
- @v12 = Chawan::Node.new(["なりっす","助動詞"], keys)
36
+ @n23 = Chawan::Node.new(["利用者","名詞"], keys)
37
+ @v12 = Chawan::Node.new(["され","動詞"], keys)
38
+ @v12p1 = Chawan::Node.new(["された","動詞"], keys)
38
39
  end
39
40
 
40
41
  subject { @nodes }
@@ -43,21 +44,21 @@ describe Chawan::Nodes do
43
44
  ### Gateway Interface
44
45
 
45
46
  gateway_interface(:noun) { should == Chawan::Nodes.new([@n1, @n2, @n3]) }
46
- gateway_interface(:verb) { should == Chawan::Nodes.new([@v1, @v2]) }
47
+ gateway_interface(:verb) { should == Chawan::Nodes.new([@v1, @v2, @p1]) }
47
48
 
48
- gateway_interface(:compact) { should == Chawan::Nodes.new([@n1, @p1, @n23, @v12]) }
49
- it "#compact(/名詞/) should compact only nodes matched /名詞/" do
50
- subject.compact(/名詞/).should == Chawan::Nodes.new([@n1, @p1, @n23, @v1, @v2])
49
+ gateway_interface(:compact) { should == Chawan::Nodes.new([@n1, @v12, @p1, @n23]) }
50
+ it "#compact(/動詞/) should compact only nodes matched /動詞/" do
51
+ subject.compact(/動詞/).should == Chawan::Nodes.new([@n1, @v12p1, @n2, @n3])
52
+ end
53
+ it "#compact('動詞') should compact only nodes categoried '動詞'" do
54
+ subject.compact('動詞').should == Chawan::Nodes.new([@n1, @v12, @p1, @n2, @n3])
51
55
  end
52
56
 
53
57
  provide :grep
54
58
  describe "#grep" do
55
59
  it "should scope nodes by given category" do
56
- subject.grep(/名詞/).should == Chawan::Nodes.new([@n1, @n2, @n3])
57
- subject.grep('名詞').should == Chawan::Nodes.new([@n1, @n2, @n3])
58
-
59
- subject.grep(/助/).should == Chawan::Nodes.new([@p1, @v1, @v2])
60
- subject.grep('助').should == Chawan::Nodes.new([])
60
+ subject.grep(/動詞/).should == Chawan::Nodes.new([@v1, @v2, @p1])
61
+ subject.grep('動詞').should == Chawan::Nodes.new([@v1, @v2])
61
62
  end
62
63
  end
63
64
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chawan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - maiha