streetaddressch 0.0.1 → 0.0.2
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/Manifest.txt +2 -0
- data/README.txt +5 -4
- data/config/hoe.rb +1 -1
- data/lib/streetaddressch.rb +0 -1
- data/lib/streetaddressch/chstatemachine.rb +60 -0
- data/lib/streetaddressch/version.rb +1 -1
- data/spec/simple_spec.rb +22 -0
- data/spec/spec.opts +3 -1
- metadata +6 -4
data/Manifest.txt
CHANGED
|
@@ -6,12 +6,14 @@ Rakefile
|
|
|
6
6
|
config/hoe.rb
|
|
7
7
|
config/requirements.rb
|
|
8
8
|
lib/streetaddressch.rb
|
|
9
|
+
lib/streetaddressch/chstatemachine.rb
|
|
9
10
|
lib/streetaddressch/version.rb
|
|
10
11
|
log/debug.log
|
|
11
12
|
script/destroy
|
|
12
13
|
script/generate
|
|
13
14
|
script/txt2html
|
|
14
15
|
setup.rb
|
|
16
|
+
spec/simple_spec.rb
|
|
15
17
|
spec/spec.opts
|
|
16
18
|
spec/spec_helper.rb
|
|
17
19
|
spec/streetaddressch_spec.rb
|
data/README.txt
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
== DESCRIPTION:
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Street Address Analyzer
|
|
8
8
|
|
|
9
9
|
== FEATURES/PROBLEMS:
|
|
10
10
|
|
|
11
|
-
*
|
|
11
|
+
* Street Address Analyzer
|
|
12
12
|
|
|
13
13
|
== SYNOPSIS:
|
|
14
14
|
|
|
@@ -16,11 +16,12 @@ FIX (describe your package)
|
|
|
16
16
|
|
|
17
17
|
== REQUIREMENTS:
|
|
18
18
|
|
|
19
|
-
*
|
|
19
|
+
* statemachine
|
|
20
|
+
* rmmseg
|
|
20
21
|
|
|
21
22
|
== INSTALL:
|
|
22
23
|
|
|
23
|
-
* sudo gem
|
|
24
|
+
* sudo gem installstreetaddressch
|
|
24
25
|
|
|
25
26
|
== LICENSE:
|
|
26
27
|
|
data/config/hoe.rb
CHANGED
|
@@ -2,7 +2,7 @@ require 'streetaddressch/version'
|
|
|
2
2
|
|
|
3
3
|
AUTHOR = 'David Ruan' # can also be an array of Authors
|
|
4
4
|
EMAIL = "ruanwz@gmail.com"
|
|
5
|
-
DESCRIPTION = "
|
|
5
|
+
DESCRIPTION = "Street Address Analyzer"
|
|
6
6
|
GEM_NAME = 'streetaddressch' # what ppl will type to install your gem
|
|
7
7
|
RUBYFORGE_PROJECT = 'streetaddressch' # The unix name for your project
|
|
8
8
|
HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
|
data/lib/streetaddressch.rb
CHANGED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
$KCODE = 'u'
|
|
2
|
+
require 'rubygems'
|
|
3
|
+
require 'jcode'
|
|
4
|
+
require 'strscan'
|
|
5
|
+
require 'statemachine'
|
|
6
|
+
module StreetAddressCh
|
|
7
|
+
class ChStatemachineContext
|
|
8
|
+
attr_accessor :statemachine
|
|
9
|
+
def shift_word(tmp)
|
|
10
|
+
@statemachine.result_list << tmp.to_s
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class ChStateMachine
|
|
16
|
+
attr_reader :text, :length
|
|
17
|
+
attr_accessor :result_list
|
|
18
|
+
def initialize(text)
|
|
19
|
+
@text = text
|
|
20
|
+
@length = text.jlength
|
|
21
|
+
@result_list = Array.new
|
|
22
|
+
@sm = Statemachine.build do
|
|
23
|
+
trans :start_st, :province_ev, :province_st, :shift_word
|
|
24
|
+
trans :start_st, :city_ev, :city_st, :shift_word
|
|
25
|
+
trans :province_st, :city_ev, :city_st, :shift_word
|
|
26
|
+
trans :province_st, :district_ev, :district_st, :shift_word
|
|
27
|
+
trans :city_st, :street_ev, :street_st, :shift_word
|
|
28
|
+
trans :city_st, :district_ev, :district_st, :shift_word
|
|
29
|
+
trans :district_st, :district_ev, :district_st, :shift_word
|
|
30
|
+
trans :district_st, :street_ev, :street_st, :shift_word
|
|
31
|
+
context ChStatemachineContext.new
|
|
32
|
+
end
|
|
33
|
+
@sm.context.statemachine = self
|
|
34
|
+
end
|
|
35
|
+
def is_english?
|
|
36
|
+
return @text.length == @text.jlength
|
|
37
|
+
end
|
|
38
|
+
def tokenize
|
|
39
|
+
tmp =Array.new
|
|
40
|
+
@text.each_char do |char|
|
|
41
|
+
tmp << char
|
|
42
|
+
case char
|
|
43
|
+
when '省'
|
|
44
|
+
@sm.province_ev tmp
|
|
45
|
+
tmp=[]
|
|
46
|
+
when '市'
|
|
47
|
+
@sm.city_ev tmp
|
|
48
|
+
tmp=[]
|
|
49
|
+
when '区'
|
|
50
|
+
@sm.district_ev tmp
|
|
51
|
+
tmp=[]
|
|
52
|
+
when '路'
|
|
53
|
+
@sm.street_ev tmp
|
|
54
|
+
tmp=[]
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
@result_list
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
data/spec/simple_spec.rb
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'spec_helper')
|
|
2
|
+
describe 'simple test' do
|
|
3
|
+
before do
|
|
4
|
+
simple_address = '广东省广州市天河区五山路49号'
|
|
5
|
+
@sm = StreetAddressCh::ChStateMachine.new simple_address
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'should return length of the address' do
|
|
9
|
+
@sm.length.should == 15
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'should return an array for the address string' do
|
|
14
|
+
@sm.tokenize.should == ['广东省','广州市','天河区','五山路']
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'should be able to tell it is not english address' do
|
|
18
|
+
@sm.is_english?.should == false
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
|
data/spec/spec.opts
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: streetaddressch
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- David Ruan
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2008-03-
|
|
12
|
+
date: 2008-03-18 00:00:00 -05:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
@@ -30,7 +30,7 @@ dependencies:
|
|
|
30
30
|
- !ruby/object:Gem::Version
|
|
31
31
|
version: 0.1.5
|
|
32
32
|
version:
|
|
33
|
-
description:
|
|
33
|
+
description: Street Address Analyzer
|
|
34
34
|
email:
|
|
35
35
|
- ruanwz@gmail.com
|
|
36
36
|
executables: []
|
|
@@ -52,12 +52,14 @@ files:
|
|
|
52
52
|
- config/hoe.rb
|
|
53
53
|
- config/requirements.rb
|
|
54
54
|
- lib/streetaddressch.rb
|
|
55
|
+
- lib/streetaddressch/chstatemachine.rb
|
|
55
56
|
- lib/streetaddressch/version.rb
|
|
56
57
|
- log/debug.log
|
|
57
58
|
- script/destroy
|
|
58
59
|
- script/generate
|
|
59
60
|
- script/txt2html
|
|
60
61
|
- setup.rb
|
|
62
|
+
- spec/simple_spec.rb
|
|
61
63
|
- spec/spec.opts
|
|
62
64
|
- spec/spec_helper.rb
|
|
63
65
|
- spec/streetaddressch_spec.rb
|
|
@@ -98,7 +100,7 @@ rubyforge_project: streetaddressch
|
|
|
98
100
|
rubygems_version: 1.0.1
|
|
99
101
|
signing_key:
|
|
100
102
|
specification_version: 2
|
|
101
|
-
summary:
|
|
103
|
+
summary: Street Address Analyzer
|
|
102
104
|
test_files:
|
|
103
105
|
- test/test_streetaddressch.rb
|
|
104
106
|
- test/test_helper.rb
|