yukichant 5.0.1 → 6.0.0
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.
- package/README.md +45 -24
- package/data/dousi.json +1000 -1000
- package/data/meisi.json +999 -999
- package/package.json +2 -2
- package/src/fuzzy-kanji-match.js +3 -2
- package/src/index.js +11 -2
package/README.md
CHANGED
|
@@ -3,9 +3,16 @@
|
|
|
3
3
|
[](https://github.com/amanoese/yukichant/actions)
|
|
4
4
|
[](https://npmjs.org/package/yukichant)
|
|
5
5
|
|
|
6
|
-
yukichant
|
|
6
|
+
yukichantは、テキストデータを詠唱呪文(魔法の言葉)に変換するコマンドです。
|
|
7
7
|
また変換した詠唱呪文は、元のテキストデータにデコードすることができます。
|
|
8
8
|
|
|
9
|
+
## 特徴
|
|
10
|
+
|
|
11
|
+
- **エンコード/デコード**: 任意のテキストを日本語の呪文風文章に変換し、復号できます。
|
|
12
|
+
- **誤字修正**: 類似度アルゴリズム(Jaro-Winkler / Levenshtein)を使用して、呪文のタイポを自動修正してデコードできます。
|
|
13
|
+
- **マルチプラットフォーム**: CLI、Node.js、ブラウザ環境で動作します。
|
|
14
|
+
- **カスタマイズ可能**: 独自の辞書データや形態素解析(kuromoji)を使用しています。
|
|
15
|
+
|
|
9
16
|
## Install
|
|
10
17
|
|
|
11
18
|
```bash
|
|
@@ -17,41 +24,45 @@ $ npm install -g yukichant
|
|
|
17
24
|
```bash
|
|
18
25
|
## encode text
|
|
19
26
|
$ echo Hello,World | chant
|
|
20
|
-
|
|
27
|
+
氷結は悪鬼の乱舞照らし。死装束の竜王よ悪夢の立つ。三の無常に調べを折れ。
|
|
21
28
|
|
|
22
29
|
## decode text
|
|
23
|
-
$ echo
|
|
30
|
+
$ echo 氷結は悪鬼の乱舞照らし。死装束の竜王よ悪夢の立つ。三の無常に調べを折れ。 | chant -d
|
|
24
31
|
Hello,World
|
|
25
32
|
|
|
26
|
-
## Random
|
|
33
|
+
## Random Generate Magic Words.
|
|
27
34
|
$ chant
|
|
28
35
|
水面も灰塵に蒼穹を抗え。
|
|
29
36
|
```
|
|
30
37
|
|
|
31
38
|
## 高度な使い方
|
|
32
39
|
|
|
33
|
-
###
|
|
40
|
+
### 誤字修正付きデコード
|
|
34
41
|
|
|
35
|
-
yukichant
|
|
42
|
+
yukichantは、類似度アルゴリズムを使用した誤字修正機能付きのデコードをサポートしています。
|
|
36
43
|
|
|
37
44
|
```bash
|
|
38
|
-
##
|
|
39
|
-
$ echo
|
|
40
|
-
# 自動的に誤字を修正:
|
|
45
|
+
## 誤字修正モード(デフォルト)
|
|
46
|
+
$ echo 氷血は悪鬼の乱舞照らし。死装束の竜王よ悪夢の立つ。三の無常に調べを折れ。 | chant -d
|
|
47
|
+
# 自動的に誤字を修正: 氷血 → 氷結
|
|
48
|
+
# => Hello,World
|
|
49
|
+
|
|
50
|
+
## 厳密デコードモード(誤字修正を無効化)
|
|
51
|
+
$ echo 氷血は悪鬼の乱舞照らし。死装束の竜王よ悪夢の立つ。三の無常に調べを折れ。 | chant -d -s
|
|
52
|
+
# 誤字修正が行われないため、正しくデコードできない
|
|
41
53
|
|
|
42
54
|
## Levenshtein距離アルゴリズムを使用
|
|
43
|
-
$ echo
|
|
44
|
-
# 異なるアルゴリズムで同様の修正を実行
|
|
55
|
+
$ echo 氷血は悪鬼の乱舞照らし。 | chant -d --levenshtein
|
|
45
56
|
|
|
46
57
|
## TF-IDF重み付けを無効化
|
|
47
|
-
$ echo
|
|
58
|
+
$ echo 氷血は悪鬼の乱舞照らし。 | chant -d --no-tfidf
|
|
48
59
|
|
|
49
60
|
## 詳細モードで修正内容を表示
|
|
50
|
-
$ echo
|
|
61
|
+
$ echo 氷血は悪鬼の乱舞照らし。 | chant -d -v
|
|
51
62
|
# どの単語が修正されたかを表示
|
|
52
63
|
|
|
53
64
|
## より詳細な出力
|
|
54
|
-
$ echo
|
|
65
|
+
$ echo 氷血は悪鬼の乱舞照らし。 | chant -d -vv
|
|
55
66
|
# 類似度スコアと使用されたアルゴリズムの詳細を表示
|
|
56
67
|
```
|
|
57
68
|
|
|
@@ -59,8 +70,8 @@ $ echo 罹刹に烙印を秘術を帰ら。 | chant -d -s -vv
|
|
|
59
70
|
|
|
60
71
|
yukichantは誤字修正のために2つの文字列類似度アルゴリズムを提供しています:
|
|
61
72
|
|
|
62
|
-
- **Jaro-Winkler(デフォルト)**:
|
|
63
|
-
- **Levenshtein**:
|
|
73
|
+
- **Jaro-Winkler(デフォルト)**: 日本語テキストに適しており、接頭辞の一致に高い重みを与えます。
|
|
74
|
+
- **Levenshtein**: 古典的な編集距離アルゴリズムで、必要な最小編集回数をカウントします。
|
|
64
75
|
|
|
65
76
|
用途に応じてアルゴリズムを選択してください:
|
|
66
77
|
- 一般的な日本語テキストには **Jaro-Winkler** を使用(推奨)
|
|
@@ -81,14 +92,18 @@ import chant from 'yukichant'
|
|
|
81
92
|
|
|
82
93
|
// エンコード
|
|
83
94
|
const spell = chant.encode('Hello,World')
|
|
84
|
-
// =>
|
|
95
|
+
// => 氷結は悪鬼の乱舞照らし。死装束の竜王よ悪夢の立つ。三の無常に調べを折れ。
|
|
85
96
|
|
|
86
97
|
// デコード
|
|
87
98
|
const text = await chant.decode(spell)
|
|
88
99
|
// => Hello,World
|
|
89
100
|
|
|
90
|
-
//
|
|
91
|
-
const
|
|
101
|
+
// 誤字修正付きデコード(デフォルトで有効)
|
|
102
|
+
const correctedText = await chant.decode(spell.replace('氷結', '氷血'))
|
|
103
|
+
// => Hello,World
|
|
104
|
+
|
|
105
|
+
// 誤字修正を無効化
|
|
106
|
+
const strictText = await chant.decode(spell.replace('氷結', '氷血'), { s: true })
|
|
92
107
|
|
|
93
108
|
// ランダム呪文生成
|
|
94
109
|
const random = chant.generate()
|
|
@@ -98,7 +113,7 @@ const random = chant.generate()
|
|
|
98
113
|
|
|
99
114
|
辞書データはGitHubリポジトリから自動的にfetchされるため、引数なしで利用できます。
|
|
100
115
|
|
|
101
|
-
####
|
|
116
|
+
#### 基本(エンコード/デコードのみ、誤字修正なし)
|
|
102
117
|
|
|
103
118
|
```js
|
|
104
119
|
import { createChantFromGitHub } from 'yukichant/browser'
|
|
@@ -117,7 +132,7 @@ import { initBrowser } from 'yukichant/browser'
|
|
|
117
132
|
const chant = await initBrowser()
|
|
118
133
|
|
|
119
134
|
const spell = chant.encode('Hello,World')
|
|
120
|
-
const text = await chant.decode(spell
|
|
135
|
+
const text = await chant.decode(spell) // デフォルトで誤字修正が有効
|
|
121
136
|
```
|
|
122
137
|
|
|
123
138
|
#### データURLのカスタマイズ
|
|
@@ -128,20 +143,26 @@ const text = await chant.decode(spell, { s: true })
|
|
|
128
143
|
import { initBrowser } from 'yukichant/browser'
|
|
129
144
|
|
|
130
145
|
const chant = await initBrowser({
|
|
131
|
-
version: '
|
|
146
|
+
version: 'v5.0.1', // リリースタグを指定
|
|
132
147
|
dataBaseUrl: '/local/data', // meisi.json, dousi.json の配置先
|
|
133
148
|
dicPath: '/local/dic/', // kuromoji辞書ファイルの配置先
|
|
134
149
|
kanji2radicalUrl: '/local/kanji2radical.json', // kanjivg-radical データ
|
|
135
150
|
})
|
|
136
151
|
```
|
|
137
152
|
|
|
138
|
-
## Documentation
|
|
139
|
-
|
|
153
|
+
## Documentation
|
|
154
|
+
|
|
155
|
+
- 開発時のテスト運用(`yukidic`更新手順・固定文字列テスト方針)は `docs/develop.md` を参照
|
|
156
|
+
- [開発者ガイド (Develop Guide)](/docs/develop.md)
|
|
157
|
+
- [誤字修正アルゴリズムの詳細 (Typo Correction Algorithm)](/docs/typo-correction-algorithm.md)
|
|
158
|
+
- [辞書生成について (Dictionary Generation)](/docs/dictionary-generation.md)
|
|
140
159
|
|
|
141
160
|
## Thanks
|
|
161
|
+
|
|
142
162
|
I named "yukichant" by Nagato Yuki-chan + chant .
|
|
143
163
|
because I want to chant magic words like her.
|
|
144
164
|
|
|
145
165
|
## LICENSE
|
|
166
|
+
|
|
146
167
|
Apache-2.0
|
|
147
168
|
|