tsukiko 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/data/bigram.data ADDED
Binary file
data/data/cn_tw.data ADDED
Binary file
data/data/words.data ADDED
Binary file
data/lib/tsukiko.rb ADDED
@@ -0,0 +1,91 @@
1
+ #require "tsukiko/version"
2
+
3
+ #encoding:utf-8
4
+ class Tsukiko
5
+ def initialize(dic_path=File.dirname(__FILE__))
6
+ @words=Hash.new
7
+ @han=Hash.new
8
+ @bigram=Hash.new
9
+ @words=Marshal.load(File.open(dic_path+"/../data/words.data","rb").read)
10
+ @han=Marshal.load(File.open(dic_path+"/../data/cn_tw.data","rb").read)
11
+ @bigram=Marshal.load(File.open(dic_path+"/../data/bigram.data","rb").read)
12
+ end
13
+ def convert_words(str)
14
+ @words.each{|cn,tw|
15
+ str.gsub!(cn," "+tw+" ")
16
+ }
17
+ @result=str
18
+ end
19
+ # call after convert_words
20
+ def convert_han(str)
21
+ tmpstr=str.clone
22
+ while tmpstr.sub!(/\S+/,"")
23
+ # matches=str.match(/(\S+)/)
24
+ tmp=$&.chomp
25
+ # puts tmp
26
+ tmpp=tmp.clone
27
+ for i in 0..tmp.length-1
28
+ #convert each character
29
+ if @han[tmp[i]]==1
30
+ tmpp[i]=@han[tmp[i]][0]
31
+ elsif @han[tmp[i]]==nil
32
+ tmpp[i]=tmp[i]
33
+ else
34
+ tmpp[i]=use_bigram(tmpp,i)
35
+ end
36
+ end
37
+ @result=str.gsub!(tmp,tmpp)
38
+ end
39
+ @result
40
+ end
41
+ # when there is a 1:n converation
42
+ def use_bigram(str,i)
43
+ max=@han[str[i]][0]
44
+ if i==0
45
+ @han[str[i]].each{|h|
46
+ if ref("$"+h)>ref("$"+max)
47
+ max=h
48
+ end
49
+
50
+ }
51
+ else
52
+ @han[str[i]].each{|h|
53
+ if ref(str[i-1]+h)>ref(str[i-1]+max)
54
+ max=h
55
+ end
56
+
57
+ }
58
+ end
59
+ return max
60
+
61
+ end
62
+
63
+ def ref(str)
64
+ # return @bigram[str]
65
+ # puts str
66
+ # puts @bigram[str]
67
+ return @bigram[str]
68
+ end
69
+
70
+ def convert(str)
71
+ @result=convert_han(convert_words(str))
72
+ # @result=convert_words(str)
73
+ @result.gsub!(" ","")
74
+ @result
75
+ end
76
+ # word=Marshal.load(File.open())
77
+ end
78
+ =begin
79
+ #test
80
+ converter=Tsukiko.new
81
+ puts converter.convert("2001年新年钟声即将敲响。人类社会前进的航船就要驶入21世纪的新航程。中国人民进入了向现代化建设第三步战略目标迈进的新征程。
82
+ 在这个激动人心的时刻,我很高兴通过中国国际广播电台、中央人民广播电台和中央电视台,向全国各族人民,向香港特别行政区同胞、澳门特别行政区同胞和台湾同胞、海外侨胞,向世界各国的朋友们,致以新世纪第一个新年的祝贺!
83
+ 过去的一年,是我国社会主义改革开放和现代化建设进程中具有标志意义的一年。在中国共产党的领导下,全国各族人民团结奋斗,国民经济继续保持较快的发展势头,经济结构的战略性调整顺利部署实施。西部大开发取得良好开端。精神文明建设和民主法制建设进一步加强。我们在过去几年取得成绩的基础上,胜利完成了第九个五年计划。我国已进入了全面建设小康社会,加快社会主义现代化建设的新的发展阶段。
84
+ 面对新世纪,世界各国人民的共同愿望是:继续发展人类以往创造的一切文明成果,克服20世纪困扰着人类的战争和贫困问题,推进和平与发展的崇高事业,创造一个美好的世界。
85
+ 我们希望,新世纪成为各国人民共享和平的世纪。在20世纪里,世界饱受各种战争和冲突的苦难。时至今日,仍有不少国家和地区的人民还在忍受战火的煎熬。中国人民真诚地祝愿他们早日过上和平安定的生活。中国人民热爱和平与自由,始终奉行独立自主的和平外交政策,永远站在人类正义事业的一边。我们愿同世界上一切爱好和平的国家和人民一道,为促进世界多极化,建立和平稳定、公正合理的国际政治经济新秩序而努力奋斗。
86
+ 我们希望,新世纪成为各国人民共同发展的世纪。在20世纪里,世界的生产力和科学技术取得了惊人的成就。但是,世界上仍有许多人民尚未摆脱贫穷和饥饿,有的甚至连基本生存条件都不具备,时刻面临着死亡的威胁。经济全球化对生产力发展的新推动,科学技术突飞猛进带来的新成果,应该造福于全人类,特别是应该用来促进发展中国家的发展,改善极度贫困人口的生活境遇,使他们得以具备自我发展的条件。中国人民将坚持不懈地为此作出自己的贡献。
87
+ 我们希望,新世纪成为各种文明共同进步的世纪。世界是丰富多彩的。世界各国的文明,都是人类的宝贵财富,应该相互尊重、相互学习。历史充分证明,各国人民自主选择各自的社会制度和发展道路,在继承和发展本民族文明的基础上吸取其他文明的精华,按照自己的意志创造并享受美好的生活,是世界发展的重要动力。只有加强各种文明之间的交流,推动各种文明共同进步,世界和平与发展的崇高事业才能真正实现。
88
+ 中国人民进入新世纪的主要任务,就是继续推进现代化建设,完成祖国统一,维护世界和平与促进共同发展。中国人民将坚持以邓小平理论为指导,坚定不移地推进改革开放和经济建设,坚定不移地贯彻“和平统一、一国两制”方针,坚定不移地奉行独立自主的和平外交政策,为不断推进建设有中国特色社会主义事业,最终实现祖国的完全统一,实现中华民族的伟大复兴而不懈奋斗,争取对人类作出新的更大的贡献。
89
+ 我相信,只要全世界人民以及所有关心人类前途和命运的政治家们共同努力,携手前进,我们居住的这个星球一定能够成为各国人民共享和平、共同发展和共同进步的美好世界!
90
+ 最后,我从北京祝大家新年快乐!")
91
+ =end
metadata ADDED
@@ -0,0 +1,50 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tsukiko
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - gyorou
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-12-20 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: a tool to convert simplified Chinsese into tradtional Chinese
15
+ email:
16
+ - gyorou@tjjtds.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/tsukiko.rb
22
+ - data/bigram.data
23
+ - data/cn_tw.data
24
+ - data/words.data
25
+ homepage: ''
26
+ licenses: []
27
+ post_install_message:
28
+ rdoc_options: []
29
+ require_paths:
30
+ - lib
31
+ - data
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ requirements: []
45
+ rubyforge_project:
46
+ rubygems_version: 1.8.24
47
+ signing_key:
48
+ specification_version: 3
49
+ summary: a tool to convert simplified Chinsese into tradtional Chinese
50
+ test_files: []