kansi_valid 0.0.10 → 0.0.12
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/GPL +0 -0
- data/LICENSE.txt +2 -2
- data/README +46 -12
- data/kansi_valid.gemspec +24 -21
- data/lib/kansi_valid/_24hudou.rb +0 -0
- data/lib/kansi_valid/_3ren.rb +0 -0
- data/lib/kansi_valid/be_hyo.rb +0 -0
- data/lib/kansi_valid/be_soku.rb +0 -0
- data/lib/kansi_valid/bouin.rb +0 -0
- data/lib/kansi_valid/check_okosi.rb +0 -0
- data/lib/kansi_valid/check_ouin.rb +0 -0
- data/lib/kansi_valid/check_ryouin.rb +0 -0
- data/lib/kansi_valid/check_tuuin.rb +2 -2
- data/lib/kansi_valid/check_zekku.rb +0 -0
- data/lib/kansi_valid/hyousoku.rb +0 -0
- data/lib/kansi_valid/inji.rb +0 -0
- data/lib/kansi_valid/kanji.rb +1 -1
- data/lib/kansi_valid/kansi_anaryze.rb +0 -0
- data/lib/kansi_valid/kansi_comment.rb +0 -0
- data/lib/kansi_valid/kansi_generate.rb +0 -0
- data/lib/kansi_valid/kansi_htm.rb +0 -0
- data/lib/kansi_valid/kansi_organize.rb +0 -0
- data/lib/kansi_valid/kohyo.rb +0 -0
- data/lib/kansi_valid/kougo.rb +4 -4
- data/lib/kansi_valid/nihongo.rb +0 -0
- data/lib/kansi_valid/pick.rb +0 -0
- data/lib/kansi_valid/run.rb +41 -0
- data/lib/kansi_valid/sample.rb +1 -1
- data/lib/kansi_valid/search.rb +0 -0
- data/lib/kansi_valid/seikei.rb +0 -0
- data/lib/kansi_valid/version.rb +4 -2
- data/lib/kansi_valid/wiktionary.rb +0 -0
- data/lib/kansi_valid.rb +6 -6
- data/license.rb +26 -0
- data/readme.rb +165 -0
- data/test/tc_kansi_valid.rb +0 -0
- data/usual.rb +6 -0
- data/www/cgi-bin/jrb.cgi +69 -0
- data/www/cgi-bin/kougo.cgi +54 -0
- data/www/cgi-bin/post.cgi +50 -0
- data/www/cgi-bin/rb.cgi +61 -0
- data/www/cgi-bin/web.rb +36 -0
- data/{dic → www}/dic.txt +0 -0
- data/www/index.htm +19 -0
- data/{dic → www}/ji_s.txt +0 -0
- data/{dic → www}/jouyou_kanji.txt +0 -0
- data/{dic → www}/kanji_list.txt +0 -0
- metadata +24 -20
- data/dic/kaku.dic +0 -31
- data/dic/parts.dic +0 -1313
- data/dic/yomi.dic +0 -6404
data/GPL
CHANGED
File without changes
|
data/LICENSE.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
'kansi_valid' can easy to make Kanshi(Han-poet).
|
1
|
+
'kansi_valid' can easy to make Kanshi(Han-poet). {keywords: 漢詩 作り方 作成 基礎 平仄辞書 添削 rubygems.org}
|
2
2
|
|
3
|
-
Copyright (C) 2009-
|
3
|
+
Copyright (C) 2009-2014 Takayasu Hayashi(T_H) (email: joe.ko9ji@gmail.com )
|
4
4
|
|
5
5
|
This program is free software; you can redistribute it and/or modify
|
6
6
|
it under the terms of the GNU General Public License, version 2, as
|
data/README
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#coding:utf-8
|
2
|
-
===
|
2
|
+
=== 漢詩を作る、平仄や添削したりするのに役立つモジュール、関数をつくりました。
|
3
3
|
kansi_valid is a varidator of Han character poem(Kan si).
|
4
4
|
Author:: Takayasu Hayashi(林 貴康 joe.ko9ji@gmail.com )
|
5
5
|
License::GPL v2
|
@@ -12,6 +12,9 @@ License::GPL v2
|
|
12
12
|
requrie "rubyems" if "RUBY_VERSION"<"1.9"
|
13
13
|
require "kansi_valid"
|
14
14
|
include Kansi_valid
|
15
|
+
|
16
|
+
run(port=8880) # => see 127.0.0.1:8880
|
17
|
+
|
15
18
|
puts kv(generate)
|
16
19
|
|
17
20
|
#winXPなど、文字コードが shift-jisなどのとき
|
@@ -29,8 +32,16 @@ script内部で
|
|
29
32
|
をつかってみてください。(Fixed >=0.0.9)
|
30
33
|
|
31
34
|
=== 先ずは有名なサンプルで。
|
32
|
-
sample # =>"#偶成
|
33
|
-
|
35
|
+
sample # =>"#偶成 朱熹
|
36
|
+
少年易老学難成
|
37
|
+
一寸光陰不可軽
|
38
|
+
未覚池塘春草夢
|
39
|
+
階前梧葉已秋声
|
40
|
+
"
|
41
|
+
#other valid=>"少年易老学難成
|
42
|
+
一寸光陰不可軽
|
43
|
+
未覚池塘春草夢
|
44
|
+
階前梧葉已秋声"
|
34
45
|
#other valid=>"少年易老学難成 一寸光陰不可軽 未覚池塘春草夢 階前梧葉已秋声"
|
35
46
|
#other valid=>"少年易老学難成一寸光陰不可軽未覚池塘春草夢階前梧葉已秋声"
|
36
47
|
|
@@ -38,8 +49,14 @@ script内部で
|
|
38
49
|
samples(10) # =>make many 'Meaningless' poet.
|
39
50
|
|
40
51
|
* 七言絶句(7を指定)五言絶句(5を指定) make random 'Meaningless' poet(7or5 gon Zekku)
|
41
|
-
srand(0);str1 = generate(7) # => "
|
42
|
-
|
52
|
+
srand(0);str1 = generate(7) # => "戻里唆双差及援
|
53
|
+
罷傷脈拘序周元
|
54
|
+
家据弱役露宵屋
|
55
|
+
稚守途紅稿軸温"
|
56
|
+
srand(0);generate(5) # => "戻里唆双飯
|
57
|
+
差猫及硬温
|
58
|
+
除慌女収嫁
|
59
|
+
枢寂厄痴援"
|
43
60
|
* srand は同じ詩を生成するために使用していますので通常は不要
|
44
61
|
|
45
62
|
===kansi_valid(String) 絶句ならば禁則評価と辞書の結果表示、research dictionary and answer,validate
|
@@ -105,10 +122,17 @@ script内部で
|
|
105
122
|
Ji =["亜","唖",..,"禔","赶"]
|
106
123
|
|
107
124
|
===平仄韻からランダムに文字をあてはめます
|
108
|
-
poetter("
|
109
|
-
|
125
|
+
poetter("常国◇○●
|
126
|
+
◇○○●◎
|
127
|
+
○○●○●
|
128
|
+
○●●○◎",[Jouyou,inji[0]])
|
129
|
+
# =>"常国雇坪坂
|
130
|
+
飲戯眠分崇
|
131
|
+
諸番襲硝看
|
132
|
+
評緯越然籠"
|
110
133
|
zekku_list # =>絶句として適した文字を当てはめる配列
|
111
|
-
kougo("◇●常国○◎") # =>"
|
134
|
+
kougo("◇●常国○◎") # =>"囚故常国挑琴
|
135
|
+
#侵" 平仄式から字を充て、最後に韻をコメント。
|
112
136
|
# "◇不問 ●仄 ○平 ◎韻"
|
113
137
|
kougo() # =>無意味な香語調を生成します、make random 'Meaningless' "kougo".
|
114
138
|
|
@@ -151,7 +175,17 @@ script内部で
|
|
151
175
|
2、2、3(五言は2,3)の字で区切られているか
|
152
176
|
多少目をつむるなどの融通はきかない。
|
153
177
|
次は詩語表を登録したり、句のまとまりで当てはめられるようにしたい。
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
178
|
+
|
179
|
+
<h3>更新履歴</h3>
|
180
|
+
'0.0.12' checked windows.
|
181
|
+
'0.0.11' #Kansi_valid::run (add)
|
182
|
+
'0.0.10' 0.0.9 error in rdoc(win7)
|
183
|
+
'0.0.9' BugFixed kansi_valid.rb (RUBY >=1.9)ENCODING ERROR on Windows7(or later) console.
|
184
|
+
'0.0.8' kansi_valid Bug fixed.(_bouin word+=...)
|
185
|
+
'0.0.7' Also use NameSpace (module_function add).
|
186
|
+
'0.0.6' Rdoc error fixed. UnitTest add.
|
187
|
+
'0.0.5' search() add.
|
188
|
+
'0.0.4' Linux support. ,delete 'win32ole'
|
189
|
+
'0.0.3' for win 2009.2.6Takayasu_H
|
190
|
+
'0.0.2' some bug fix
|
191
|
+
'0.0.1' first on windows XP. Thanks Kantarou(Author:Jigen Konou),and its great dictionary.
|
data/kansi_valid.gemspec
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# coding:utf-8
|
2
2
|
if RUBY_VERSION<"1.9"
|
3
3
|
$KCODE="u"
|
4
|
+
require 'rubygems'
|
4
5
|
else
|
5
6
|
##for execute gemspec and build
|
6
7
|
#2013.2.7 Bug Fix on Windows7 console.(or later version)
|
@@ -8,19 +9,26 @@ else
|
|
8
9
|
Encoding.default_external = 'utf-8'
|
9
10
|
Encoding.default_internal = 'utf-8'
|
10
11
|
end
|
12
|
+
$:.unshift(File.dirname(__FILE__) + "/../lib/")
|
13
|
+
Dir.chdir(File.dirname(__FILE__))
|
11
14
|
|
12
|
-
require 'rubygems'
|
13
15
|
require './lib/kansi_valid/version'
|
14
|
-
|
16
|
+
require './license'
|
17
|
+
require './readme'
|
18
|
+
|
19
|
+
desc="'kansi_valid' can easy to make Kanshi(Han-poet). {keywords: 漢詩 作り方 作成 基礎 平仄辞書 添削 rubygems.org}"
|
20
|
+
open("./LICENSE.txt","w"){|io| io.print license(desc)}
|
21
|
+
open("./README","w"){|io| io.print readme()}
|
22
|
+
|
15
23
|
spec = Gem::Specification.new do |s|
|
16
24
|
s.platform = Gem::Platform::RUBY
|
17
|
-
s.summary = "
|
25
|
+
s.summary = "漢詩の作り方 補助ツール、添削。 Easy to make Kanshi(Zekku)(Han-poet)and validate it. run(port=8880);kansi_valid(str)"
|
18
26
|
s.author="Takayasu Hayashi"
|
19
27
|
s.email="joe.ko9ji@gmail.com"
|
20
28
|
#s.homepage="http://maru.selfip.com/mygem/"
|
21
29
|
s.name = "kansi_valid"
|
22
30
|
s.version = Kansi_valid::Version
|
23
|
-
|
31
|
+
s.license="GPLv2"
|
24
32
|
#s.requirements << 'rmagick'
|
25
33
|
#s.requirements << 'gruff'
|
26
34
|
#s.add_dependency('serialport','>= 1.0.4')
|
@@ -28,28 +36,23 @@ require './lib/kansi_valid/version'
|
|
28
36
|
s.has_rdoc=true
|
29
37
|
|
30
38
|
#s.files = Dir.glob("{test,lib}/**/*.rb")
|
31
|
-
s.files = Dir.glob("{lib}/**/*.{rb,txt,dic}")+
|
39
|
+
s.files = Dir.glob("{lib}/**/*.{rb,txt,dic,bat}")+
|
32
40
|
Dir.glob("test/{ts,tc}*.rb")+
|
33
|
-
Dir.glob("dic/*")+
|
34
|
-
|
35
|
-
["kansi_valid.gemspec","GPL","LICENSE.txt"]
|
41
|
+
#Dir.glob("dic/*")+
|
42
|
+
Dir.glob("www/**/*.{rb,cgi,txt,htm}")+
|
43
|
+
["kansi_valid.gemspec","GPL","LICENSE.txt","license.rb","usual.rb","readme.rb"]
|
36
44
|
s.test_file="test/tc_kansi_valid.rb"
|
37
45
|
s.extra_rdoc_files="README"
|
38
46
|
s.description = <<EOF
|
39
47
|
Usage:
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
kv(str1) # => same above
|
49
|
-
valid(str1) # => same above
|
50
|
-
|
51
|
-
valid?(str1) # =>true,false(nil)
|
52
|
-
kv_bool(str1) # => same above
|
48
|
+
require "kansi_valid" ;inclide Kansi_valid <br/>
|
49
|
+
run(port=7980) ##New!(遊び系「漢詩作り」サーバー)
|
50
|
+
kansi_valid(sample) # =>漢詩の評価、添削 kv(sample)
|
51
|
+
valid?(sample) # =>true (五言か七言絶句ならば)
|
52
|
+
generate(7) #無意味な七言絶句を生成(7,5のみ)
|
53
|
+
dic("漢字") #平仄を調べる
|
54
|
+
search("かえで") #辞書で文字検索(部首、つくり、意味、音訓、画数ほか)
|
55
|
+
poetter("常国◇○●\n◇○○●◎\n○○●○●\n○●●○◎",[Jouyou,inji[0]])
|
53
56
|
EOF
|
54
57
|
end
|
55
58
|
|
data/lib/kansi_valid/_24hudou.rb
CHANGED
File without changes
|
data/lib/kansi_valid/_3ren.rb
CHANGED
File without changes
|
data/lib/kansi_valid/be_hyo.rb
CHANGED
File without changes
|
data/lib/kansi_valid/be_soku.rb
CHANGED
File without changes
|
data/lib/kansi_valid/bouin.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding:utf-8
|
2
2
|
|
3
|
-
module Kansi_valid
|
3
|
+
module Kansi_valid
|
4
4
|
module_function
|
5
5
|
#通韻のチェック
|
6
6
|
def check_tuuin(a,zekku,ouIn)
|
@@ -17,7 +17,7 @@ module_function
|
|
17
17
|
elsif zekku==5
|
18
18
|
#p ouIn
|
19
19
|
#p a[1][8]
|
20
|
-
return (ouIn==a[1][8] && ouIn==a[3][8] && (ouIn==a[0][8]) or be_soku(a[0][
|
20
|
+
return (ouIn==a[1][8] && ouIn==a[3][8] && (ouIn==a[0][8]) or be_soku(a[0][8]))
|
21
21
|
#その他(false)
|
22
22
|
else
|
23
23
|
return false
|
File without changes
|
data/lib/kansi_valid/hyousoku.rb
CHANGED
File without changes
|
data/lib/kansi_valid/inji.rb
CHANGED
File without changes
|
data/lib/kansi_valid/kanji.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/kansi_valid/kohyo.rb
CHANGED
File without changes
|
data/lib/kansi_valid/kougo.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding:utf-8
|
2
|
-
|
3
|
-
module Kansi_valid
|
2
|
+
|
3
|
+
module Kansi_valid
|
4
4
|
module_function
|
5
5
|
def zekku_list
|
6
6
|
hyo_7=["◇○◇●●○◎
|
@@ -90,7 +90,7 @@ rule=x[rand(x.size)]
|
|
90
90
|
rule+="
|
91
91
|
|
92
92
|
茲惟
|
93
|
-
新帰元
|
93
|
+
新帰元 ◇◇◇◇信仁"
|
94
94
|
#八字称 人格・徳行
|
95
95
|
rule+="
|
96
96
|
◇◇◇◇
|
@@ -121,7 +121,7 @@ rule+="
|
|
121
121
|
rule+="
|
122
122
|
◇◇◇◇◇◇●
|
123
123
|
◇◇◇◇◇◇◎
|
124
|
-
|
124
|
+
喝"
|
125
125
|
end
|
126
126
|
#p rule
|
127
127
|
#p list
|
data/lib/kansi_valid/nihongo.rb
CHANGED
File without changes
|
data/lib/kansi_valid/pick.rb
CHANGED
File without changes
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require "webrick"
|
2
|
+
module Kansi_valid
|
3
|
+
module_function
|
4
|
+
def run(port=8880,root=File.dirname(__FILE__)+"/../../www")
|
5
|
+
Dir.chdir(File.dirname(__FILE__))
|
6
|
+
#File.expand_path(File.dirname(__FILE__) + '/../..')
|
7
|
+
#require "../kansi_valid"
|
8
|
+
if RUBY_PLATFORM.include?("mswin")
|
9
|
+
#p rubybin = `exec ./which.bat ruby`.chomp
|
10
|
+
list=ENV["PATH"].split(";")
|
11
|
+
ls=list.select{|f| f.include?("ruby") && f.include?("bin")}
|
12
|
+
rubybin=ls[0].gsub("\\","/")+"/ruby"
|
13
|
+
else#linux
|
14
|
+
rubybin = `which ruby`.chomp
|
15
|
+
end
|
16
|
+
|
17
|
+
document_root = root
|
18
|
+
server = WEBrick::HTTPServer.new({
|
19
|
+
:DocumentRoot => document_root,
|
20
|
+
:BindAddress => '0.0.0.0',
|
21
|
+
:CGIInterpreter => rubybin,
|
22
|
+
:Port => port
|
23
|
+
})
|
24
|
+
|
25
|
+
cgi_root=document_root + '/**/*.{cgi,rb}'
|
26
|
+
cgilist = Dir.glob(cgi_root)
|
27
|
+
cgilist.each {|cgi_file|
|
28
|
+
server.mount(cgi_file, WEBrick::HTTPServlet::CGIHandler, document_root + cgi_file)
|
29
|
+
}
|
30
|
+
|
31
|
+
['INT', 'TERM'].each {|signal|
|
32
|
+
Signal.trap(signal){ server.shutdown }
|
33
|
+
}
|
34
|
+
puts "See! # => 127.0.0.1:#{port.to_s}"
|
35
|
+
server.start
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
if $0==__FILE__
|
40
|
+
Kansi_valid::run()
|
41
|
+
end
|
data/lib/kansi_valid/sample.rb
CHANGED
data/lib/kansi_valid/search.rb
CHANGED
File without changes
|
data/lib/kansi_valid/seikei.rb
CHANGED
File without changes
|
data/lib/kansi_valid/version.rb
CHANGED
@@ -2,9 +2,11 @@
|
|
2
2
|
|
3
3
|
module Kansi_valid
|
4
4
|
module_function
|
5
|
-
Version = '0.0.
|
5
|
+
Version = '0.0.12'
|
6
6
|
|
7
|
-
CHENGE_LOG="'0.0.
|
7
|
+
CHENGE_LOG="'0.0.12' checked windows.
|
8
|
+
'0.0.11' #Kansi_valid::run (add)
|
9
|
+
'0.0.10' 0.0.9 error in rdoc(win7)
|
8
10
|
'0.0.9' BugFixed kansi_valid.rb (RUBY >=1.9)ENCODING ERROR on Windows7(or later) console.
|
9
11
|
'0.0.8' kansi_valid Bug fixed.(_bouin word+=...)
|
10
12
|
'0.0.7' Also use NameSpace (module_function add).
|
File without changes
|
data/lib/kansi_valid.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#coding:utf-8
|
2
|
-
if RUBY_VERSION<"1.9"
|
2
|
+
if RUBY_VERSION<"1.9"
|
3
3
|
$KCODE="u"
|
4
|
-
else
|
4
|
+
else
|
5
5
|
#2013.2.7 Bug Fix on Windows7 console.(or later version)
|
6
6
|
Encoding.default_external = 'utf-8'
|
7
7
|
Encoding.default_internal = 'utf-8'
|
@@ -20,10 +20,10 @@ module_function
|
|
20
20
|
#全辞書ハッシュ
|
21
21
|
Dic=kanji
|
22
22
|
#常用漢字の配列
|
23
|
-
Jouyou=File.read(File.dirname(__FILE__)+"/../
|
23
|
+
Jouyou=File.read(File.dirname(__FILE__)+"/../www/jouyou_kanji.txt").chomp.split(//)
|
24
24
|
|
25
25
|
#辞書の全ての漢字の配列(ひらがな等は、除外、国字は含む)
|
26
|
-
Ji =File.read(File.dirname(__FILE__)+"/../
|
26
|
+
Ji =File.read(File.dirname(__FILE__)+"/../www/kanji_list.txt").chomp.split(//)
|
27
27
|
|
28
28
|
#===kansi_valid(String) 絶句ならば禁則評価と辞書の結果表示、research dictionary and answer,validate
|
29
29
|
# kansi_valid(sample)
|
@@ -85,13 +85,13 @@ module_function
|
|
85
85
|
#二六対(挟み平(転句)はOK)
|
86
86
|
hudo=_24hudou(a,zekku)
|
87
87
|
unless hudo
|
88
|
-
warning+="#
|
88
|
+
warning+="# 違反・二四不同、二六対(又は両韻字)\n"
|
89
89
|
end
|
90
90
|
|
91
91
|
#下三連禁
|
92
92
|
_simo3ren=_3ren(a)
|
93
93
|
unless _simo3ren
|
94
|
-
warning+="#
|
94
|
+
warning+="# 警告・下三連禁(下平三連、下仄三連)(又は両韻字)\n"
|
95
95
|
end
|
96
96
|
|
97
97
|
#二弧平禁(七言は四弧平禁)
|
data/license.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
#!ruby
|
2
|
+
|
3
|
+
#write licence (with year)
|
4
|
+
def license_gplv2(desc)
|
5
|
+
year=Time.now.year
|
6
|
+
|
7
|
+
str=<<HEREDOC
|
8
|
+
#{desc}
|
9
|
+
|
10
|
+
Copyright (C) 2009-#{year} Takayasu Hayashi(T_H) (email: joe.ko9ji@gmail.com )
|
11
|
+
|
12
|
+
This program is free software; you can redistribute it and/or modify
|
13
|
+
it under the terms of the GNU General Public License, version 2, as
|
14
|
+
published by the Free Software Foundation.
|
15
|
+
|
16
|
+
This program is distributed in the hope that it will be useful,
|
17
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
18
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
19
|
+
GNU General Public License for more details.
|
20
|
+
|
21
|
+
You should have received a copy of the GNU General Public License
|
22
|
+
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
23
|
+
HEREDOC
|
24
|
+
|
25
|
+
end
|
26
|
+
alias license license_gplv2
|
data/readme.rb
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
#coding:utf-8
|
2
|
+
def readme
|
3
|
+
str=<<eos
|
4
|
+
#coding:utf-8
|
5
|
+
=== 漢詩を作る、平仄や添削したりするのに役立つモジュール、関数をつくりました。
|
6
|
+
kansi_valid is a varidator of Han character poem(Kan si).
|
7
|
+
Author:: Takayasu Hayashi(林 貴康 joe.ko9ji@gmail.com )
|
8
|
+
License::GPL v2
|
9
|
+
* 辞書の使用は自己責任でお願いします。辞書は漢太郎の作者、Jigen様の作成された辞書を御許可いただきUTF-8テキストにしてあります。Jigen様、ありがとうございます。間違いがありましたら修正したいと思いますのでご連絡ください。joe.ko9ji@gmail.com
|
10
|
+
* Dictionary saved "/dic/dic.txt"UTF-8,about 6800 chars ,made by Jigen Kanou.
|
11
|
+
If you resume this,please tell me.
|
12
|
+
* 文字コードは UTF-8 ですので、WinXPなどは出力をKconvで変換したり、対応のエディタで見てください。
|
13
|
+
===:Usage 使い方
|
14
|
+
# coding:utf-8
|
15
|
+
requrie "rubyems" if "RUBY_VERSION"<"1.9"
|
16
|
+
require "kansi_valid"
|
17
|
+
include Kansi_valid
|
18
|
+
|
19
|
+
run(port=8880) # => see 127.0.0.1:8880
|
20
|
+
|
21
|
+
puts kv(generate)
|
22
|
+
|
23
|
+
#winXPなど、文字コードが shift-jisなどのとき
|
24
|
+
require "kconv"
|
25
|
+
print Kconv.kconv(Kansi_valid::sample,Kconv::SJIS,Kconv::UTF8)
|
26
|
+
|
27
|
+
#追記Windows7以降のコンソールで、ruby1.9以降、エラーがでるなら、
|
28
|
+
ruby -Ku kansi_valid_script
|
29
|
+
や
|
30
|
+
ruby -U kansi_valid_script
|
31
|
+
|
32
|
+
script内部で
|
33
|
+
Encoding.default_external = 'utf-8'
|
34
|
+
Encoding.default_internal = 'utf-8'
|
35
|
+
をつかってみてください。(Fixed >=0.0.9)
|
36
|
+
|
37
|
+
=== 先ずは有名なサンプルで。
|
38
|
+
sample # =>"#偶成 朱熹\n少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声\n"
|
39
|
+
#other valid=>"少年易老学難成\n一寸光陰不可軽\n未覚池塘春草夢\n階前梧葉已秋声"
|
40
|
+
#other valid=>"少年易老学難成 一寸光陰不可軽 未覚池塘春草夢 階前梧葉已秋声"
|
41
|
+
#other valid=>"少年易老学難成一寸光陰不可軽未覚池塘春草夢階前梧葉已秋声"
|
42
|
+
|
43
|
+
===漢詩ではないサンプル漢詩を機械的に生成します
|
44
|
+
samples(10) # =>make many 'Meaningless' poet.
|
45
|
+
|
46
|
+
* 七言絶句(7を指定)五言絶句(5を指定) make random 'Meaningless' poet(7or5 gon Zekku)
|
47
|
+
srand(0);str1 = generate(7) # => "戻里唆双差及援\n罷傷脈拘序周元\n家据弱役露宵屋\n稚守途紅稿軸温"
|
48
|
+
srand(0);generate(5) # => "戻里唆双飯\n差猫及硬温\n除慌女収嫁\n枢寂厄痴援"
|
49
|
+
* srand は同じ詩を生成するために使用していますので通常は不要
|
50
|
+
|
51
|
+
===kansi_valid(String) 絶句ならば禁則評価と辞書の結果表示、research dictionary and answer,validate
|
52
|
+
str=kansi_valid(sample)
|
53
|
+
# =>#偶成 朱熹
|
54
|
+
少年易老学難成
|
55
|
+
一寸光陰不可軽
|
56
|
+
未覚池塘春草夢
|
57
|
+
階前梧葉已秋声
|
58
|
+
|
59
|
+
# 庚 平起
|
60
|
+
#篠●先○陌●皓●覚●寒◇庚○
|
61
|
+
#質●願●陽○侵◇物◇哿●庚◇
|
62
|
+
#未●覚●支○陽○真○皓●東◇
|
63
|
+
#佳○先○虞◇葉●紙●尤○庚○
|
64
|
+
#Valid 絶句(Ver0.0.6)
|
65
|
+
#2013-01-03 22:58:18 +0900
|
66
|
+
|
67
|
+
#少:●:篠:嘯:ショウ:すくない すこし わかい
|
68
|
+
#年:○:一先::ネン:とし よわい みのり
|
69
|
+
以下省略#
|
70
|
+
(ver 0.0.8よりValid表示基準を見直し)
|
71
|
+
|
72
|
+
kv(sample) # =>同上、 same above
|
73
|
+
valid(sample) # =>同上、 same above
|
74
|
+
|
75
|
+
==html化して、wiktionaryなどで文字を調べられるようにするなら、
|
76
|
+
wik=to_wiktionary(str)
|
77
|
+
open("kansi.htm","w"){|io| io.print wik}
|
78
|
+
などとすると、html埋め込みデータができます。(ヘッダ等は必要なら適宜入れてください。)
|
79
|
+
firefox kansi.htm
|
80
|
+
などして、見てください
|
81
|
+
|
82
|
+
=== 文字列が絶句であれば true を返す
|
83
|
+
valid?(sample) # =>true (絶句が正しいならtrue。)
|
84
|
+
(両韻・畳字はtrueを返せない)
|
85
|
+
kv_bool(sample) # =>同上、 same above
|
86
|
+
|
87
|
+
===漢詩でないものも第二水準漢字程度まで調べられます。日本の国字<峠辻>なども調べられますが、絶句の評価はできません。
|
88
|
+
dic("漢字辞典") # =>文字列を調べる。普通こちら、Simple dictionary using Dic[]
|
89
|
+
# =>"漢:●:翰::カン:国名 あや から
|
90
|
+
字:●:寘::ジ:あざ あざな じ
|
91
|
+
辞:○:四支::ジ:やめる ことば ことわる
|
92
|
+
典:●:銑::テン:ふみ のり つかさどる
|
93
|
+
"
|
94
|
+
Dic["漢"] # =>単漢字を調べる、Character Hash Dictionary(Author Jigen Kanou,in Kantarou)
|
95
|
+
# =>["漢", "413", "", "0", "●", "翰", "去声", "", "カン", "",
|
96
|
+
"国名 あや から", "3441", "2033", "13", "水艸口夫漢", "0"]
|
97
|
+
|
98
|
+
=== 辞書の音訓などから調べる場合は search を使います
|
99
|
+
search("かえで") # =>Dicの内容から該当する漢字のハッシュをつくる
|
100
|
+
# =>{"楓"=>["楓", "2440", "", "0", "○", "一東", "上平", "", "フウ", "",
|
101
|
+
"かえで", "4976", "4186", "13", "木風几丿虫", "0"],
|
102
|
+
"槭"=>["槭", "4166", "", "0", "●", "屋", "入声", "", "セキ", "",
|
103
|
+
"かえで", "5C65", "6069", "15", "木戚戈上小", "0"]}
|
104
|
+
===平韻の字表の配列です
|
105
|
+
inji # =>平韻の配列表(inji[x],x=0..29)
|
106
|
+
(inji[0]が一東です)
|
107
|
+
inji[29] # =>"咸銜鹹緘岩巌杉衫凡鑑函監讒帆"
|
108
|
+
===常用漢字の配列です(約1945字)
|
109
|
+
Jouyou=["哀","愛",..,"湾","腕"]
|
110
|
+
===辞書漢字の配列です(約6715字、国字など含む。かな・記号類は除外してあります。)
|
111
|
+
Ji =["亜","唖",..,"禔","赶"]
|
112
|
+
|
113
|
+
===平仄韻からランダムに文字をあてはめます
|
114
|
+
poetter("常国◇○●\n◇○○●◎\n○○●○●\n○●●○◎",[Jouyou,inji[0]])
|
115
|
+
# =>"常国雇坪坂\n飲戯眠分崇\n諸番襲硝看\n評緯越然籠"
|
116
|
+
zekku_list # =>絶句として適した文字を当てはめる配列
|
117
|
+
kougo("◇●常国○◎") # =>"囚故常国挑琴\n#侵" 平仄式から字を充て、最後に韻をコメント。
|
118
|
+
# "◇不問 ●仄 ○平 ◎韻"
|
119
|
+
kougo() # =>無意味な香語調を生成します、make random 'Meaningless' "kougo".
|
120
|
+
|
121
|
+
|
122
|
+
hyousoku("菩薩") # =>"虞◇曷●" (韻と平仄式を返す)
|
123
|
+
hyosoku("菩薩") # =>同上、 same above
|
124
|
+
|
125
|
+
===漢詩バリデータ(ルールどおりか評価する)ができるまで…
|
126
|
+
漢詩のルールにしたがっているかをチェックするスクリプト
|
127
|
+
記号
|
128
|
+
平=韻+○
|
129
|
+
仄=韻+●
|
130
|
+
両韻=◇
|
131
|
+
国字など=■
|
132
|
+
それ以外=?
|
133
|
+
|
134
|
+
チェック可能漢詩:
|
135
|
+
七言絶句
|
136
|
+
五言絶句
|
137
|
+
|
138
|
+
チェック項目
|
139
|
+
押韻、おういん(重複禁)、踏み落とし(三句目)
|
140
|
+
二四不動、にしふどう(挟み平(転句)はOK)
|
141
|
+
二六対、にろくつい(挟み平(転句)はOK)
|
142
|
+
下三連禁、あさんれんきん
|
143
|
+
挟み平(転句はOK)
|
144
|
+
二弧平禁(七言は四弧平禁)
|
145
|
+
冒韻禁,韻字の句内での重複(畳字なども未チェック)
|
146
|
+
|
147
|
+
他のチェック事項
|
148
|
+
韻
|
149
|
+
平起、仄起
|
150
|
+
|
151
|
+
やりたいこと
|
152
|
+
読みかた(音、訓)# =>漢字辞書などへ転送など。
|
153
|
+
できてないこと
|
154
|
+
対句,畳字など技法のチェック
|
155
|
+
両韻の振り分けなど(◇でしか対応できない。基本1字1韻対応となる。)
|
156
|
+
たぶんチェックできないこと
|
157
|
+
2、2、3(五言は2,3)の字で区切られているか
|
158
|
+
多少目をつむるなどの融通はきかない。
|
159
|
+
次は詩語表を登録したり、句のまとまりで当てはめられるようにしたい。
|
160
|
+
|
161
|
+
<h3>更新履歴</h3>
|
162
|
+
#{Kansi_valid::CHENGE_LOG}
|
163
|
+
eos
|
164
|
+
|
165
|
+
end
|
data/test/tc_kansi_valid.rb
CHANGED
File without changes
|