Top Level Namespace
Defined Under Namespace
Modules: RsegEngine, RsegFilter
Classes: App, Rseg
Instance Method Summary
collapse
Instance Method Details
#build ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/builder/dict.rb', line 23
def build
tree = {}
dictionaries = ['cedict.zh_CN.utf8', 'wikipedia.zh.utf8']
dictionaries.each do |dictionary|
puts "Processing #{dictionary}..."
path = File.join(File.dirname(__FILE__), '../../dict', dictionary)
process(path, tree)
end
File.open(hash_path, "wb") {|io| Marshal.dump(tree, io)}
puts 'Done'
end
|
#hash_path ⇒ Object
37
38
39
|
# File 'lib/builder/dict.rb', line 37
def hash_path
File.join(File.dirname(__FILE__), '../../dict/dict.hash')
end
|
#process(path, tree) ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/builder/dict.rb', line 4
def process(path, tree)
File.open(path, 'r') do |file|
file.each_line do |line|
node = nil
line.chars.each do |c|
next if c == "\n" || c == "\r"
if node
node[c] ||= {}
node = node[c]
else
tree[c] ||= Hash.new
node = tree[c]
end
end
node[:end] = true
end
end
end
|