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 CHANGED
@@ -3,9 +3,16 @@
3
3
  [![Actions Status](https://github.com/amanoese/yukichant/workflows/Node%20CI/badge.svg)](https://github.com/amanoese/yukichant/actions)
4
4
  [![npm version](http://img.shields.io/npm/v/yukichant.svg)](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 巫女よ五行に元に斬る。戦慄の貪欲使命を隠し。嵐は記憶の行く手を砕ける。 | chant -d
30
+ $ echo 氷結は悪鬼の乱舞照らし。死装束の竜王よ悪夢の立つ。三の無常に調べを折れ。 | chant -d
24
31
  Hello,World
25
32
 
26
- ## Random Geneate Magic Words.
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
- ## 厳密デコードモード(デフォルト: Jaro-Winklerアルゴリズム)
39
- $ echo 罹刹に烙印を秘術を帰ら。 | chant -d -s
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 罹刹に烙印を秘術を帰ら。 | chant -d -s --levenshtein
44
- # 異なるアルゴリズムで同様の修正を実行
55
+ $ echo 氷血は悪鬼の乱舞照らし。 | chant -d --levenshtein
45
56
 
46
57
  ## TF-IDF重み付けを無効化
47
- $ echo 罹刹に烙印を秘術を帰ら。 | chant -d -s --no-tfidf
58
+ $ echo 氷血は悪鬼の乱舞照らし。 | chant -d --no-tfidf
48
59
 
49
60
  ## 詳細モードで修正内容を表示
50
- $ echo 罹刹に烙印を秘術を帰ら。 | chant -d -s -v
61
+ $ echo 氷血は悪鬼の乱舞照らし。 | chant -d -v
51
62
  # どの単語が修正されたかを表示
52
63
 
53
64
  ## より詳細な出力
54
- $ echo 罹刹に烙印を秘術を帰ら。 | chant -d -s -vv
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 text = await chant.decode(spell, { s: true })
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, { s: true })
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: 'v3.0.5', // リリースタグを指定
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 for Developers
139
- [develop](/doc/develop.md)
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