igo 0.1.4.7 → 0.1.5.1
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.
- checksums.yaml +4 -4
- data/README.en.md +17 -4
- data/README.ja.md +17 -5
- data/README.md +24 -12
- data/README.zh.md +12 -5
- data/lib/igo/ja.rb +143 -12
- data/lib/igo/version.rb +1 -1
- data/lib/igo/zh.rb +3 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81b5f3fec925891f2ab69645a249aebd65c2e2cf1ae14957cb80d4c85861c138
|
4
|
+
data.tar.gz: 0aacd859a7c85dc0385be5630083b1862293c008214bf6c0c230ebd071a0a65e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d995a0dca73847507437bf4c33bf0e937f58ee4f8e959836cea94f643e2dff2ae4a9ffeb62dca790fc1aaf8a433fa7b16855f233c401be7cad6f73567718c5b
|
7
|
+
data.tar.gz: 04c947e5b3e0cb76b77afddb6f271fdfa998243bb4aea60a036073873c013a0435cdb59db62bb98c2b40cf7da360c7573e1ccc6d76013b7a6486ec59a6396378
|
data/README.en.md
CHANGED
@@ -35,17 +35,26 @@ require 'igo/ja'
|
|
35
35
|
|
36
36
|
j = Igo::Ja
|
37
37
|
|
38
|
-
|
38
|
+
j.cut "あー、合成は結合法則を満たすんでしたね"
|
39
39
|
#=> ["あー", "、", "合成", "は", "結合法則", "を", "満たす", "ん", "でした", "ね"]
|
40
40
|
|
41
|
-
|
42
|
-
#=>
|
41
|
+
j.kana ["無色で透明な私たちは互いに融合しながらも、", "他方で消えない血液と己の半身を希求する。"], s: "/", lr: "()"
|
42
|
+
#=> ["無色(むしょく)/で/透明な(とうめいな)/私たち(わたしたち)/は/互いに(たがいに)/融合し(ゆうごうし)/ながら/も/、", "他方(たほう)/で/消えない(きえない)/血液(けつえき)/と/己(おのれ)/の/半身(はんしん)/を/希求する(ききゅうする)/。"]
|
43
|
+
|
44
|
+
j.tag "ゆかりさんが勉強してる圏論に興味を持ったそして", s: "/", kana: 1, short: 4, lr: "[]"
|
45
|
+
|
46
|
+
# "ゆかり_prop/さん_suff/が_part/勉強してる[べんきょうしてる]_verb/圏論[けんろん]_noun/に_part/興味[きょうみ]_noun/を_part/持った[もった]_verb/そして_conj"
|
43
47
|
|
44
48
|
```
|
45
49
|
|
50
|
+
reference:
|
51
|
+
- UCEjVFAKrcjUWqBnHl_NlacQ - [【圏論】圏の圏を考えたい!そうだ関手を定義しよう!](https://www.youtube.com/watch?v=8ycVEcgH4bI&t=703s)
|
52
|
+
- ukiyojingu [「無色で透明な私たちは互いに融合しながらも、他方で消えない血液と己の半身を希求する。」](https://www.nicovideo.jp/watch/so40804464)
|
53
|
+
|
54
|
+
|
46
55
|
下ノ関数は、暫く未完成です、ごめんね:
|
47
56
|
|
48
|
-
`j.romaji
|
57
|
+
`j.romaji`
|
49
58
|
|
50
59
|
## 用法 :: Usage / Zh
|
51
60
|
|
@@ -64,6 +73,7 @@ z.pinyin "全世界的无产者,联合起来!"
|
|
64
73
|
#=> ["quan2", "shi4", "jie4", "de5", "wu2", "chan3", "zhe3", "lian2", "he2", "qi3", "lai2"]
|
65
74
|
z.pinyin "全世界的无产者,联合起来!", s: 1
|
66
75
|
#=> "quan2 shi4 jie4 de wu2 chan3 zhe3 lian2 he2 qi3 lai2"
|
76
|
+
|
67
77
|
```
|
68
78
|
|
69
79
|
### seperate word :: 分词
|
@@ -73,6 +83,8 @@ z.cut "全世界的无产者,联合起来!"
|
|
73
83
|
#=> ["全世界", "的", "無產階級", ",", "聯合", "起來", "!"]
|
74
84
|
z.cut "全世界的无产者,联合起来!", s: true
|
75
85
|
#=> "全世界 的 无产者 ! 联合 起来 !"
|
86
|
+
|
87
|
+
|
76
88
|
```
|
77
89
|
### Taging word :: 标注词类
|
78
90
|
|
@@ -83,6 +95,7 @@ z.tag "全世界的无产者,联合起来!"
|
|
83
95
|
#=> [["全世界", "n"], ["的", "uj"], ["无产者", "n"], ["!", "x"], ["联合", "v"], ["起来", "v"], ["!", "x"]]
|
84
96
|
z.tag "全世界的无产者,联合起来!", s: true
|
85
97
|
#=> "全世界_n 的_uj 无产者_n ,_x 联合_v 起来_v !_x"
|
98
|
+
|
86
99
|
```
|
87
100
|
### 词频统计
|
88
101
|
|
data/README.ja.md
CHANGED
@@ -22,7 +22,6 @@ gem install igo
|
|
22
22
|
__Python__ ノ `Thulac` 使いたいなら、以下の pip がインストール必要です:
|
23
23
|
|
24
24
|
```cmd
|
25
|
-
|
26
25
|
pip install thulac
|
27
26
|
```
|
28
27
|
|
@@ -34,17 +33,26 @@ require 'igo/ja'
|
|
34
33
|
|
35
34
|
j = Igo::Ja
|
36
35
|
|
37
|
-
|
36
|
+
j.cut "あー、合成は結合法則を満たすんでしたね"
|
38
37
|
#=> ["あー", "、", "合成", "は", "結合法則", "を", "満たす", "ん", "でした", "ね"]
|
39
38
|
|
40
|
-
|
41
|
-
#=>
|
39
|
+
j.kana ["無色で透明な私たちは互いに融合しながらも、", "他方で消えない血液と己の半身を希求する。"], s: "/", lr: "()"
|
40
|
+
#=> ["無色(むしょく)/で/透明な(とうめいな)/私たち(わたしたち)/は/互いに(たがいに)/融合し(ゆうごうし)/ながら/も/、", "他方(たほう)/で/消えない(きえない)/血液(けつえき)/と/己(おのれ)/の/半身(はんしん)/を/希求する(ききゅうする)/。"]
|
41
|
+
|
42
|
+
j.tag "ゆかりさんが勉強してる圏論に興味を持ったそして", s: "/", kana: 1, short: 4, lr: "[]"
|
43
|
+
|
44
|
+
# "ゆかり_prop/さん_suff/が_part/勉強してる[べんきょうしてる]_verb/圏論[けんろん]_noun/に_part/興味[きょうみ]_noun/を_part/持った[もった]_verb/そして_conj"
|
42
45
|
|
43
46
|
```
|
44
47
|
|
48
|
+
reference:
|
49
|
+
- UCEjVFAKrcjUWqBnHl_NlacQ - [【圏論】圏の圏を考えたい!そうだ関手を定義しよう!](https://www.youtube.com/watch?v=8ycVEcgH4bI&t=703s)
|
50
|
+
- ukiyojingu [「無色で透明な私たちは互いに融合しながらも、他方で消えない血液と己の半身を希求する。」](https://www.nicovideo.jp/watch/so40804464)
|
51
|
+
|
52
|
+
|
45
53
|
下ノ関数は、暫く未完成です、ごめんね:
|
46
54
|
|
47
|
-
`j.romaji
|
55
|
+
`j.romaji`
|
48
56
|
|
49
57
|
## 用法 :: Usage / Zh
|
50
58
|
|
@@ -63,6 +71,7 @@ z.pinyin "全世界的无产者,联合起来!"
|
|
63
71
|
#=> ["quan2", "shi4", "jie4", "de5", "wu2", "chan3", "zhe3", "lian2", "he2", "qi3", "lai2"]
|
64
72
|
z.pinyin "全世界的无产者,联合起来!", s: 1
|
65
73
|
#=> "quan2 shi4 jie4 de wu2 chan3 zhe3 lian2 he2 qi3 lai2"
|
74
|
+
|
66
75
|
```
|
67
76
|
|
68
77
|
### seperate word :: 分词
|
@@ -70,8 +79,10 @@ z.pinyin "全世界的无产者,联合起来!", s: 1
|
|
70
79
|
```ruby
|
71
80
|
z.cut "全世界的无产者,联合起来!"
|
72
81
|
#=> ["全世界", "的", "無產階級", ",", "聯合", "起來", "!"]
|
82
|
+
|
73
83
|
z.cut "全世界的无产者,联合起来!", s: true
|
74
84
|
#=> "全世界 的 无产者 ! 联合 起来 !"
|
85
|
+
|
75
86
|
```
|
76
87
|
### Taging word :: 标注词类
|
77
88
|
|
@@ -82,6 +93,7 @@ z.tag "全世界的无产者,联合起来!"
|
|
82
93
|
#=> [["全世界", "n"], ["的", "uj"], ["无产者", "n"], ["!", "x"], ["联合", "v"], ["起来", "v"], ["!", "x"]]
|
83
94
|
z.tag "全世界的无产者,联合起来!", s: true
|
84
95
|
#=> "全世界_n 的_uj 无产者_n ,_x 联合_v 起来_v !_x"
|
96
|
+
|
85
97
|
```
|
86
98
|
### 词频统计
|
87
99
|
|
data/README.md
CHANGED
@@ -22,9 +22,7 @@ gem install igo
|
|
22
22
|
for use `Thulac` in __Python__, you need to install:
|
23
23
|
|
24
24
|
```cmd
|
25
|
-
|
26
25
|
pip install thulac
|
27
|
-
|
28
26
|
```
|
29
27
|
|
30
28
|
## 使い方 :: Usage / Ja
|
@@ -35,17 +33,26 @@ require 'igo/ja'
|
|
35
33
|
|
36
34
|
j = Igo::Ja
|
37
35
|
|
38
|
-
|
36
|
+
j.cut "あー、合成は結合法則を満たすんでしたね"
|
39
37
|
#=> ["あー", "、", "合成", "は", "結合法則", "を", "満たす", "ん", "でした", "ね"]
|
40
38
|
|
41
|
-
|
42
|
-
#=>
|
39
|
+
j.kana ["無色で透明な私たちは互いに融合しながらも、", "他方で消えない血液と己の半身を希求する。"], s: "/", lr: "()"
|
40
|
+
#=> ["無色(むしょく)/で/透明な(とうめいな)/私たち(わたしたち)/は/互いに(たがいに)/融合し(ゆうごうし)/ながら/も/、", "他方(たほう)/で/消えない(きえない)/血液(けつえき)/と/己(おのれ)/の/半身(はんしん)/を/希求する(ききゅうする)/。"]
|
41
|
+
|
42
|
+
j.tag "ゆかりさんが勉強してる圏論に興味を持ったそして", s: "/", kana: 1, short: 4, lr: "[]"
|
43
|
+
|
44
|
+
# "ゆかり_prop/さん_suff/が_part/勉強してる[べんきょうしてる]_verb/圏論[けんろん]_noun/に_part/興味[きょうみ]_noun/を_part/持った[もった]_verb/そして_conj"
|
43
45
|
|
44
46
|
```
|
45
47
|
|
48
|
+
reference:
|
49
|
+
- UCEjVFAKrcjUWqBnHl_NlacQ - [【圏論】圏の圏を考えたい!そうだ関手を定義しよう!](https://www.youtube.com/watch?v=8ycVEcgH4bI&t=703s)
|
50
|
+
- ukiyojingu [「無色で透明な私たちは互いに融合しながらも、他方で消えない血液と己の半身を希求する。」](https://www.nicovideo.jp/watch/so40804464)
|
51
|
+
|
52
|
+
|
46
53
|
下ノ関数は、暫く未完成です、ごめんね:
|
47
54
|
|
48
|
-
`j.romaji
|
55
|
+
`j.romaji`
|
49
56
|
|
50
57
|
## 用法 :: Usage / Zh
|
51
58
|
|
@@ -62,8 +69,10 @@ z = Igo::Zh
|
|
62
69
|
```ruby
|
63
70
|
z.pinyin "全世界的无产者,联合起来!"
|
64
71
|
#=> ["quan2", "shi4", "jie4", "de5", "wu2", "chan3", "zhe3", "lian2", "he2", "qi3", "lai2"]
|
65
|
-
|
66
|
-
|
72
|
+
|
73
|
+
z.pinyin "全世界的无产者,联合起来!", s: " "
|
74
|
+
#=> "quan2 shi4 jie4 de5 wu2 chan3 zhe3 lian2 he2 qi3 lai2"
|
75
|
+
|
67
76
|
```
|
68
77
|
|
69
78
|
### seperate word :: 分词
|
@@ -71,8 +80,10 @@ z.pinyin "全世界的无产者,联合起来!", s: 1
|
|
71
80
|
```ruby
|
72
81
|
z.cut "全世界的无产者,联合起来!"
|
73
82
|
#=> ["全世界", "的", "無產階級", ",", "聯合", "起來", "!"]
|
74
|
-
|
75
|
-
|
83
|
+
|
84
|
+
z.cut "全世界的无产者,联合起来!", s: "/"
|
85
|
+
#=> "全世界/的/无产者/!/联合/起来/!"
|
86
|
+
|
76
87
|
```
|
77
88
|
### Taging word :: 标注词类
|
78
89
|
|
@@ -81,8 +92,10 @@ z.cut "全世界的无产者,联合起来!", s: true
|
|
81
92
|
```ruby
|
82
93
|
z.tag "全世界的无产者,联合起来!"
|
83
94
|
#=> [["全世界", "n"], ["的", "uj"], ["无产者", "n"], ["!", "x"], ["联合", "v"], ["起来", "v"], ["!", "x"]]
|
95
|
+
|
84
96
|
z.tag "全世界的无产者,联合起来!", s: true
|
85
97
|
#=> "全世界_n 的_uj 无产者_n ,_x 联合_v 起来_v !_x"
|
98
|
+
|
86
99
|
```
|
87
100
|
### 词频统计
|
88
101
|
|
@@ -90,9 +103,8 @@ z.tag "全世界的无产者,联合起来!", s: true
|
|
90
103
|
z.freq "全世界的无产者,联合起来!", 5
|
91
104
|
#=> [["无产者", 9.96885201925], ["全世界", 6.80147590842], ["联合", 5.64979650728], ["起来", 3.96134044655]]
|
92
105
|
|
93
|
-
# alias 拼音, 分词, 标记, 词频
|
94
|
-
|
95
106
|
```
|
107
|
+
所有方法都有别名:`拼音`, `分词`, `标记`, `词频`
|
96
108
|
|
97
109
|
## LINCENCE :: 协议
|
98
110
|
|
data/README.zh.md
CHANGED
@@ -35,18 +35,25 @@ require 'igo/ja'
|
|
35
35
|
|
36
36
|
j = Igo::Ja
|
37
37
|
|
38
|
-
|
38
|
+
j.cut "あー、合成は結合法則を満たすんでしたね"
|
39
39
|
#=> ["あー", "、", "合成", "は", "結合法則", "を", "満たす", "ん", "でした", "ね"]
|
40
40
|
|
41
|
-
|
42
|
-
#=>
|
41
|
+
j.kana ["無色で透明な私たちは互いに融合しながらも、", "他方で消えない血液と己の半身を希求する。"], s: "/", lr: "()"
|
42
|
+
#=> ["無色(むしょく)/で/透明な(とうめいな)/私たち(わたしたち)/は/互いに(たがいに)/融合し(ゆうごうし)/ながら/も/、", "他方(たほう)/で/消えない(きえない)/血液(けつえき)/と/己(おのれ)/の/半身(はんしん)/を/希求する(ききゅうする)/。"]
|
43
|
+
|
44
|
+
j.tag "ゆかりさんが勉強してる圏論に興味を持ったそして", s: "/", kana: 1, short: 4, lr: "[]"
|
43
45
|
|
46
|
+
# "ゆかり_prop/さん_suff/が_part/勉強してる[べんきょうしてる]_verb/圏論[けんろん]_noun/に_part/興味[きょうみ]_noun/を_part/持った[もった]_verb/そして_conj"
|
44
47
|
```
|
45
48
|
|
46
|
-
|
49
|
+
reference:
|
50
|
+
- UCEjVFAKrcjUWqBnHl_NlacQ - [【圏論】圏の圏を考えたい!そうだ関手を定義しよう!](https://www.youtube.com/watch?v=8ycVEcgH4bI&t=703s)
|
51
|
+
- ukiyojingu [「無色で透明な私たちは互いに融合しながらも、他方で消えない血液と己の半身を希求する。」](https://www.nicovideo.jp/watch/so40804464)
|
47
52
|
|
48
|
-
`j.romaji`, `j.kana`, `j.tag`。
|
49
53
|
|
54
|
+
下ノ関数は、暫く未完成です、ごめんね:
|
55
|
+
|
56
|
+
`j.romaji`
|
50
57
|
## 用法 :: Usage / Zh
|
51
58
|
|
52
59
|
Lack __Trad-Zh__ :: 暂不支持「正體中文」
|
data/lib/igo/ja.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'nokogiri'
|
2
2
|
require 'open-uri'
|
3
3
|
require 'uri'
|
4
|
+
require 'concurrent'
|
5
|
+
require 'timeout'
|
4
6
|
|
5
7
|
module Igo
|
6
8
|
|
@@ -37,26 +39,155 @@ module Igo
|
|
37
39
|
# #=> "あー/、/合成/は/結合法則/を/満たす/ん/でした/ね"
|
38
40
|
#
|
39
41
|
def cut str, s: false
|
40
|
-
str = URI.encode_www_form_component(str)
|
41
|
-
doc = Nokogiri::HTML(URI.open(SEARCH_URL + str).read)
|
42
|
-
cutted = doc.css(".japanese_word__text_wrapper").map{_1.text.strip}
|
43
|
-
# s ? cutted.join(s) : cutted
|
44
|
-
sep = s.is_a?(String) ? s : " "
|
45
|
-
s ? cutted.join(sep) : cutted
|
42
|
+
# str = URI.encode_www_form_component(str)
|
43
|
+
# doc = Nokogiri::HTML(URI.open(SEARCH_URL + str).read)
|
44
|
+
# cutted = doc.css(".japanese_word__text_wrapper").map{_1.text.strip}
|
45
|
+
# # s ? cutted.join(s) : cutted
|
46
|
+
# sep = s.is_a?(String) ? s : " "
|
47
|
+
# s ? cutted.join(sep) : cutted
|
48
|
+
|
49
|
+
tag(str, s: s, kana: false, tag: false)
|
46
50
|
end
|
47
51
|
# def romaji str
|
48
52
|
# end
|
49
53
|
|
50
54
|
# def kana str
|
51
55
|
# end
|
52
|
-
|
56
|
+
def kana str, s: false, lr: "()"
|
57
|
+
# str = URI.encode_www_form_component(str)
|
58
|
+
# doc = Nokogiri::HTML(URI.open(SEARCH_URL + str).read)
|
53
59
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
60
|
+
# cutted = doc.css(".japanese_word__furigana, .japanese_word__text_wrapper").select{_1.css(".japanese_word__text_with_furigana").empty?}
|
61
|
+
# cutted = cutted.map do kanji = _1.attr("data-text")
|
62
|
+
# (kanji.nil? or kanji.empty?) ? [_1.text] : [kanji, _1.text]
|
63
|
+
# end
|
64
|
+
|
65
|
+
# if s
|
66
|
+
# unless s.is_a?(String)
|
67
|
+
# s = " "
|
68
|
+
# end
|
69
|
+
# cutted.map(&:last).join(s)
|
70
|
+
# else cutted.map(&:last)
|
71
|
+
# end
|
72
|
+
|
73
|
+
tag(str, s: s, lr: lr, tag: false, kana: true, kana_only: true)
|
74
|
+
end
|
75
|
+
|
76
|
+
def ruby str, s: false, lr: "()"
|
77
|
+
# str = URI.encode_www_form_component(str)
|
78
|
+
# doc = Nokogiri::HTML(URI.open(SEARCH_URL + str).read)
|
79
|
+
|
80
|
+
# cutted = doc.css(".japanese_word__furigana, .japanese_word__text_wrapper").select{_1.css(".japanese_word__text_with_furigana").empty?}
|
81
|
+
# cutted = cutted.map do kanji = _1.attr("data-text")
|
82
|
+
# (kanji.nil? or kanji.empty?) ? [_1.text] : [kanji, _1.text]
|
83
|
+
# end
|
84
|
+
|
85
|
+
# if s
|
86
|
+
# unless s.is_a?(String)
|
87
|
+
# s = " "
|
88
|
+
# end
|
89
|
+
# left, right = case lr
|
90
|
+
# when String then (lr*2).split("").values_at(0, -1)
|
91
|
+
# when Array then lr
|
92
|
+
# end
|
93
|
+
# cutted.map{ _1.size >= 2 ? _1[0]+left+_1[1]+right : _1[0] }.join(s)
|
94
|
+
# else cutted
|
95
|
+
# end
|
96
|
+
|
97
|
+
tag(str, s: s, lr: lr, kana: true, tag: false)
|
98
|
+
|
99
|
+
end
|
100
|
+
# TODO: tag word function
|
101
|
+
#
|
102
|
+
def romaji str, s: false
|
59
103
|
|
104
|
+
end
|
105
|
+
|
106
|
+
def tag str, s: false, ns: 0, lr: "()", sp:"_", short: false, tag: true, kana: false, timeout: 10, kana_only: false
|
107
|
+
|
108
|
+
def async_query(arr, timeout=0, &block)
|
109
|
+
promises = arr.map do |element|
|
110
|
+
Concurrent::Promise.execute do
|
111
|
+
begin
|
112
|
+
Timeout.timeout(timeout) do # 设置最大执行时间为5秒
|
113
|
+
block.call(element)
|
114
|
+
end
|
115
|
+
rescue Timeout::Error
|
116
|
+
# 处理超时异常
|
117
|
+
puts "任务执行超时, #{timeout} 秒!关键词参数 timeout: 指定超时秒数!"
|
118
|
+
nil
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
# 等待所有任务完成
|
124
|
+
results = promises.map(&:value!)
|
125
|
+
|
126
|
+
# 获取结果数组
|
127
|
+
results
|
128
|
+
end
|
129
|
+
|
130
|
+
def _tag str
|
131
|
+
str = URI.encode_www_form_component(str)
|
132
|
+
doc = Nokogiri::HTML(URI.open(SEARCH_URL + str).read)
|
133
|
+
|
134
|
+
cutted = doc.css(".japanese_word")
|
135
|
+
.map do [_1.css(".japanese_word__text_wrapper, japanese_word__text_wrapper").text.strip, # text
|
136
|
+
_1&.css(".japanese_word__furigana").text||nil, # kana
|
137
|
+
_1.attr("data-pos")] # tag
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
def _stringify cutted, s: "/", lr: "()", sp:"_", short: false, vis_tag: true, vis_kana: true, kana_only: false
|
142
|
+
# cutted.each{ _1[1] = nil } unless vis_kana
|
143
|
+
# cutted.each{ _1[2] = nil } unless vis_tag
|
144
|
+
if kana_only
|
145
|
+
return cutted.map do
|
146
|
+
(_1[1].empty? ? _1[0] : _1[1]) +
|
147
|
+
((vis_kana && _1[2]) ? (sp + _1[2]) : "")
|
148
|
+
end.join(s)
|
149
|
+
else
|
150
|
+
unless s.is_a?(String)
|
151
|
+
s = " "
|
152
|
+
end
|
153
|
+
left, right = case lr
|
154
|
+
when String then (lr*2).split("").values_at(0, -1)
|
155
|
+
when Array then lr
|
156
|
+
end
|
157
|
+
cutted.map do
|
158
|
+
_1[0] +
|
159
|
+
((vis_tag && !_1[1]&.empty? )? (left + _1[1] + right) : "") +
|
160
|
+
((vis_kana && _1[2]) ? (sp + _1[2]) : "")
|
161
|
+
end.join(s)
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
def singo_proc str, s: false, ns: 0, lr: "()", sp:"_", short: false, vis_tag: true, vis_kana: true, kana_only: false
|
166
|
+
cutted = _tag str
|
167
|
+
if short
|
168
|
+
short = short.is_a?(Integer) ? short : 4
|
169
|
+
cutted = cutted.map{[ *_1[0,2], (_1[2][0, short].downcase rescue nil) ]}
|
170
|
+
end
|
171
|
+
|
172
|
+
if s
|
173
|
+
_stringify cutted, s: s, lr: lr, sp: sp, short: short, vis_tag: vis_kana, vis_kana: vis_tag, kana_only: kana_only
|
174
|
+
else
|
175
|
+
cutted = cutted.map{_1.values_at(* [0, vis_kana ? 1 : 0, vis_tag ? 2 : 0].uniq)}
|
176
|
+
cutted[0].size == 1 ? cutted.flatten : cutted
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
case str
|
181
|
+
when String
|
182
|
+
singo_proc str, s: s, ns: ns, lr: lr, sp: sp, short: short, vis_tag: tag, vis_kana: kana, kana_only: kana_only
|
183
|
+
when Array
|
184
|
+
async_query str, timeout do
|
185
|
+
singo_proc _1, s: s, ns: ns, lr: lr, sp: sp, short: short, vis_tag: tag, vis_kana: kana, kana_only: kana_only
|
186
|
+
end
|
187
|
+
end
|
188
|
+
# TODO
|
189
|
+
end
|
190
|
+
end
|
60
191
|
end
|
61
192
|
|
62
193
|
|
data/lib/igo/version.rb
CHANGED
data/lib/igo/zh.rb
CHANGED
@@ -127,11 +127,13 @@ module Igo
|
|
127
127
|
Keyword.extract string, num
|
128
128
|
end
|
129
129
|
|
130
|
+
alias 拼音 pinyin
|
130
131
|
alias 分词 cut
|
131
132
|
alias 标记 tag
|
133
|
+
alias 词频 termfreq
|
134
|
+
|
132
135
|
alias freq termfreq
|
133
136
|
alias tf termfreq
|
134
|
-
alias 词频 freq
|
135
137
|
alias freq_word freq
|
136
138
|
end
|
137
139
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: igo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- saisui
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-12-
|
11
|
+
date: 2023-12-25 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: It is easy.
|
14
14
|
email:
|