new-value-analysis 0.1.0__tar.gz → 0.1.2__tar.gz
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.
- new_value_analysis-0.1.2/PKG-INFO +210 -0
- new_value_analysis-0.1.2/README.md +190 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/pyproject.toml +1 -1
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/action_finder/find_topicnum.py +3 -1
- new_value_analysis-0.1.2/src/new_value_analysis.egg-info/PKG-INFO +210 -0
- new_value_analysis-0.1.0/PKG-INFO +0 -42
- new_value_analysis-0.1.0/README.md +0 -22
- new_value_analysis-0.1.0/src/new_value_analysis.egg-info/PKG-INFO +0 -42
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/LICENSE +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/setup.cfg +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/__init__.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/action_finder/__init__.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/action_finder/select_action_number.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/action_finder/topic_modeling.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/actor_finder/__init__.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/actor_finder/doc2vec.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/actor_finder/find_right_silhouette.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/actor_finder/silhouette_plot.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/actor_finder/visualize_dendrogram.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/opportunity_area_analysis/__init__.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/opportunity_area_analysis/opportunity_plot.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/opportunity_area_analysis/satisfaction_scaling.py +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis.egg-info/SOURCES.txt +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis.egg-info/dependency_links.txt +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis.egg-info/requires.txt +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis.egg-info/top_level.txt +0 -0
- {new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/tests/test_imports.py +0 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: new_value_analysis
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: New Value Analysis: actor/action/opportunity 분석 유틸리티 패키지
|
|
5
|
+
Author: New Value Analysis contributors
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/smhrdGit/new_value_analysis
|
|
8
|
+
Project-URL: Repository, https://github.com/smhrdGit/new_value_analysis
|
|
9
|
+
Project-URL: Issues, https://github.com/smhrdGit/new_value_analysis/issues
|
|
10
|
+
Requires-Python: >=3.9
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: numpy>=1.21
|
|
14
|
+
Requires-Dist: pandas>=1.5
|
|
15
|
+
Requires-Dist: gensim>=4.3
|
|
16
|
+
Requires-Dist: scikit-learn>=1.2
|
|
17
|
+
Requires-Dist: matplotlib>=3.7
|
|
18
|
+
Requires-Dist: scipy>=1.10
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
|
|
21
|
+
# New Value Analysis
|
|
22
|
+
|
|
23
|
+
`new_value_analysis`는 **신규가치분석(New Value Analysis)**을 수행하기 위한
|
|
24
|
+
Python 기반 분석 유틸리티 라이브러리입니다.
|
|
25
|
+
|
|
26
|
+
텍스트 데이터 기반으로
|
|
27
|
+
**Action(행동) → Actor(행위자) → Opportunity Area(기회영역)** 분석 파이프라인을
|
|
28
|
+
일관된 구조로 수행할 수 있도록 설계되었습니다.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 📦 Installation
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pip install new_value_analysis
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
> Python 3.9 이상 권장
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 📚 Core Concept
|
|
43
|
+
|
|
44
|
+
본 라이브러리는 다음과 같은 **3단계 분석 흐름**을 전제로 합니다.
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
[Action Finder]
|
|
48
|
+
텍스트 데이터 → 토픽 모델링 → 행동(Action) 정의
|
|
49
|
+
|
|
50
|
+
[Actor Finder]
|
|
51
|
+
문서 임베딩 → 군집 분석 → 행위자(Actor) 유형화
|
|
52
|
+
|
|
53
|
+
[Opportunity Area Analysis]
|
|
54
|
+
중요도 × 만족도 → 기회영역(Opportunity Area) 도출
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 📁 Package Structure
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
new_value_analysis
|
|
63
|
+
├─ action_finder
|
|
64
|
+
│ ├─ topic_modeling.py # LDA 학습
|
|
65
|
+
│ ├─ find_topicnum.py # 토픽 수 탐색
|
|
66
|
+
│ └─ select_action_number.py # 문서별 Action 번호 할당
|
|
67
|
+
│
|
|
68
|
+
├─ actor_finder
|
|
69
|
+
│ ├─ doc2vec.py # Doc2Vec 임베딩
|
|
70
|
+
│ ├─ find_right_silhouette.py # 최적 군집 수 탐색
|
|
71
|
+
│ ├─ silhouette_plot.py # 실루엣 플롯
|
|
72
|
+
│ └─ visualize_dendrogram.py # 덴드로그램 시각화
|
|
73
|
+
│
|
|
74
|
+
└─ opportunity_area_analysis
|
|
75
|
+
├─ satisfaction_scaling.py # 점수 스케일링
|
|
76
|
+
└─ opportunity_plot.py # Opportunity Area 시각화
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 1️⃣ Action Finder
|
|
82
|
+
|
|
83
|
+
### 목적
|
|
84
|
+
|
|
85
|
+
* 텍스트 데이터에서 **행동(Action)**을 추출
|
|
86
|
+
* 문서별로 어떤 행동을 가장 강하게 드러내는지 식별
|
|
87
|
+
|
|
88
|
+
### 주요 기능
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
from new_value_analysis.action_finder import (
|
|
92
|
+
LDA_train,
|
|
93
|
+
assign_action_number
|
|
94
|
+
)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 예시 흐름
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
# 1. LDA 모델 학습
|
|
101
|
+
lda_model, corpus, dictionary = LDA_train(texts)
|
|
102
|
+
|
|
103
|
+
# 2. 문서별 Action 번호 할당
|
|
104
|
+
df["action_number"] = assign_action_number(lda_model, corpus)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 2️⃣ Actor Finder
|
|
110
|
+
|
|
111
|
+
### 목적
|
|
112
|
+
|
|
113
|
+
* 문서를 **행위자(Actor) 관점에서 군집화**
|
|
114
|
+
* “어떤 유형의 사람이 어떤 행동을 하는가?”를 구조화
|
|
115
|
+
|
|
116
|
+
### 주요 기능
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
from new_value_analysis.actor_finder import (
|
|
120
|
+
train_doc2vec_module,
|
|
121
|
+
agglomerative_silhouette_module,
|
|
122
|
+
visualize_silhouette,
|
|
123
|
+
plot_dendrogram
|
|
124
|
+
)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### 예시 흐름
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
# 1. Doc2Vec 임베딩
|
|
131
|
+
model, vectors, tagged_docs = train_doc2vec_module(
|
|
132
|
+
df,
|
|
133
|
+
token_col="tagged_review"
|
|
134
|
+
)
|
|
135
|
+
df["vector"] = vectors
|
|
136
|
+
|
|
137
|
+
# 2. 최적 군집 수 탐색
|
|
138
|
+
scores, best_k = agglomerative_silhouette_module(df)
|
|
139
|
+
|
|
140
|
+
# 3. 군집 품질 시각화
|
|
141
|
+
visualize_silhouette([2, 3, 4, 5], vectors)
|
|
142
|
+
|
|
143
|
+
# 4. 덴드로그램 확인
|
|
144
|
+
plot_dendrogram(df)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 3️⃣ Opportunity Area Analysis
|
|
150
|
+
|
|
151
|
+
### 목적
|
|
152
|
+
|
|
153
|
+
* 중요도 × 만족도 기반으로 **기회영역(Opportunity Area)** 도출
|
|
154
|
+
* “노력 대비 가치가 큰 영역”을 시각적으로 식별
|
|
155
|
+
|
|
156
|
+
### 주요 기능
|
|
157
|
+
|
|
158
|
+
```python
|
|
159
|
+
from new_value_analysis.opportunity_area_analysis import (
|
|
160
|
+
minmax_scale_scores,
|
|
161
|
+
plot_opportunity_area
|
|
162
|
+
)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 예시 흐름
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
# 1. 점수 스케일링
|
|
169
|
+
df_scaled = minmax_scale_scores(df)
|
|
170
|
+
|
|
171
|
+
# 2. Opportunity Area 시각화
|
|
172
|
+
plot_opportunity_area(
|
|
173
|
+
importance=df_scaled["importance"],
|
|
174
|
+
satisfaction=df_scaled["satisfaction"],
|
|
175
|
+
labels=df_scaled["action_label"]
|
|
176
|
+
)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 🧠 Recommended Workflow
|
|
182
|
+
|
|
183
|
+
```text
|
|
184
|
+
텍스트 수집
|
|
185
|
+
↓
|
|
186
|
+
전처리 / 토큰화
|
|
187
|
+
↓
|
|
188
|
+
Action Finder (행동 정의)
|
|
189
|
+
↓
|
|
190
|
+
Actor Finder (행위자 유형화)
|
|
191
|
+
↓
|
|
192
|
+
Opportunity Area Analysis (기회영역 도출)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 🎓 Use Cases
|
|
198
|
+
|
|
199
|
+
* AI 서비스 기획 / UX 리서치
|
|
200
|
+
* VOC / 리뷰 데이터 기반 서비스 개선
|
|
201
|
+
* 공공 데이터 기반 정책 기획
|
|
202
|
+
* 교육 과정(부트캠프) 분석 프로젝트
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
## ✨ Versioning
|
|
206
|
+
|
|
207
|
+
* **v0.1.0**
|
|
208
|
+
|
|
209
|
+
* Initial public release
|
|
210
|
+
* Action / Actor / Opportunity 분석 파이프라인 제공
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# New Value Analysis
|
|
2
|
+
|
|
3
|
+
`new_value_analysis`는 **신규가치분석(New Value Analysis)**을 수행하기 위한
|
|
4
|
+
Python 기반 분석 유틸리티 라이브러리입니다.
|
|
5
|
+
|
|
6
|
+
텍스트 데이터 기반으로
|
|
7
|
+
**Action(행동) → Actor(행위자) → Opportunity Area(기회영역)** 분석 파이프라인을
|
|
8
|
+
일관된 구조로 수행할 수 있도록 설계되었습니다.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 📦 Installation
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pip install new_value_analysis
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
> Python 3.9 이상 권장
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 📚 Core Concept
|
|
23
|
+
|
|
24
|
+
본 라이브러리는 다음과 같은 **3단계 분석 흐름**을 전제로 합니다.
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
[Action Finder]
|
|
28
|
+
텍스트 데이터 → 토픽 모델링 → 행동(Action) 정의
|
|
29
|
+
|
|
30
|
+
[Actor Finder]
|
|
31
|
+
문서 임베딩 → 군집 분석 → 행위자(Actor) 유형화
|
|
32
|
+
|
|
33
|
+
[Opportunity Area Analysis]
|
|
34
|
+
중요도 × 만족도 → 기회영역(Opportunity Area) 도출
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 📁 Package Structure
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
new_value_analysis
|
|
43
|
+
├─ action_finder
|
|
44
|
+
│ ├─ topic_modeling.py # LDA 학습
|
|
45
|
+
│ ├─ find_topicnum.py # 토픽 수 탐색
|
|
46
|
+
│ └─ select_action_number.py # 문서별 Action 번호 할당
|
|
47
|
+
│
|
|
48
|
+
├─ actor_finder
|
|
49
|
+
│ ├─ doc2vec.py # Doc2Vec 임베딩
|
|
50
|
+
│ ├─ find_right_silhouette.py # 최적 군집 수 탐색
|
|
51
|
+
│ ├─ silhouette_plot.py # 실루엣 플롯
|
|
52
|
+
│ └─ visualize_dendrogram.py # 덴드로그램 시각화
|
|
53
|
+
│
|
|
54
|
+
└─ opportunity_area_analysis
|
|
55
|
+
├─ satisfaction_scaling.py # 점수 스케일링
|
|
56
|
+
└─ opportunity_plot.py # Opportunity Area 시각화
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 1️⃣ Action Finder
|
|
62
|
+
|
|
63
|
+
### 목적
|
|
64
|
+
|
|
65
|
+
* 텍스트 데이터에서 **행동(Action)**을 추출
|
|
66
|
+
* 문서별로 어떤 행동을 가장 강하게 드러내는지 식별
|
|
67
|
+
|
|
68
|
+
### 주요 기능
|
|
69
|
+
|
|
70
|
+
```python
|
|
71
|
+
from new_value_analysis.action_finder import (
|
|
72
|
+
LDA_train,
|
|
73
|
+
assign_action_number
|
|
74
|
+
)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 예시 흐름
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
# 1. LDA 모델 학습
|
|
81
|
+
lda_model, corpus, dictionary = LDA_train(texts)
|
|
82
|
+
|
|
83
|
+
# 2. 문서별 Action 번호 할당
|
|
84
|
+
df["action_number"] = assign_action_number(lda_model, corpus)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 2️⃣ Actor Finder
|
|
90
|
+
|
|
91
|
+
### 목적
|
|
92
|
+
|
|
93
|
+
* 문서를 **행위자(Actor) 관점에서 군집화**
|
|
94
|
+
* “어떤 유형의 사람이 어떤 행동을 하는가?”를 구조화
|
|
95
|
+
|
|
96
|
+
### 주요 기능
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
from new_value_analysis.actor_finder import (
|
|
100
|
+
train_doc2vec_module,
|
|
101
|
+
agglomerative_silhouette_module,
|
|
102
|
+
visualize_silhouette,
|
|
103
|
+
plot_dendrogram
|
|
104
|
+
)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 예시 흐름
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
# 1. Doc2Vec 임베딩
|
|
111
|
+
model, vectors, tagged_docs = train_doc2vec_module(
|
|
112
|
+
df,
|
|
113
|
+
token_col="tagged_review"
|
|
114
|
+
)
|
|
115
|
+
df["vector"] = vectors
|
|
116
|
+
|
|
117
|
+
# 2. 최적 군집 수 탐색
|
|
118
|
+
scores, best_k = agglomerative_silhouette_module(df)
|
|
119
|
+
|
|
120
|
+
# 3. 군집 품질 시각화
|
|
121
|
+
visualize_silhouette([2, 3, 4, 5], vectors)
|
|
122
|
+
|
|
123
|
+
# 4. 덴드로그램 확인
|
|
124
|
+
plot_dendrogram(df)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 3️⃣ Opportunity Area Analysis
|
|
130
|
+
|
|
131
|
+
### 목적
|
|
132
|
+
|
|
133
|
+
* 중요도 × 만족도 기반으로 **기회영역(Opportunity Area)** 도출
|
|
134
|
+
* “노력 대비 가치가 큰 영역”을 시각적으로 식별
|
|
135
|
+
|
|
136
|
+
### 주요 기능
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
from new_value_analysis.opportunity_area_analysis import (
|
|
140
|
+
minmax_scale_scores,
|
|
141
|
+
plot_opportunity_area
|
|
142
|
+
)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 예시 흐름
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
# 1. 점수 스케일링
|
|
149
|
+
df_scaled = minmax_scale_scores(df)
|
|
150
|
+
|
|
151
|
+
# 2. Opportunity Area 시각화
|
|
152
|
+
plot_opportunity_area(
|
|
153
|
+
importance=df_scaled["importance"],
|
|
154
|
+
satisfaction=df_scaled["satisfaction"],
|
|
155
|
+
labels=df_scaled["action_label"]
|
|
156
|
+
)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 🧠 Recommended Workflow
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
텍스트 수집
|
|
165
|
+
↓
|
|
166
|
+
전처리 / 토큰화
|
|
167
|
+
↓
|
|
168
|
+
Action Finder (행동 정의)
|
|
169
|
+
↓
|
|
170
|
+
Actor Finder (행위자 유형화)
|
|
171
|
+
↓
|
|
172
|
+
Opportunity Area Analysis (기회영역 도출)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 🎓 Use Cases
|
|
178
|
+
|
|
179
|
+
* AI 서비스 기획 / UX 리서치
|
|
180
|
+
* VOC / 리뷰 데이터 기반 서비스 개선
|
|
181
|
+
* 공공 데이터 기반 정책 기획
|
|
182
|
+
* 교육 과정(부트캠프) 분석 프로젝트
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
## ✨ Versioning
|
|
186
|
+
|
|
187
|
+
* **v0.1.0**
|
|
188
|
+
|
|
189
|
+
* Initial public release
|
|
190
|
+
* Action / Actor / Opportunity 분석 파이프라인 제공
|
|
@@ -18,6 +18,7 @@ def lda_perplexity_coherence_plot(
|
|
|
18
18
|
from gensim.models import CoherenceModel
|
|
19
19
|
from tqdm.auto import tqdm
|
|
20
20
|
import matplotlib.pyplot as plt
|
|
21
|
+
import numpy as np
|
|
21
22
|
|
|
22
23
|
perplexity_values = []
|
|
23
24
|
coherence_values = []
|
|
@@ -43,7 +44,8 @@ def lda_perplexity_coherence_plot(
|
|
|
43
44
|
)
|
|
44
45
|
|
|
45
46
|
# 2. Perplexity 계산(perplexity_score 변수에 담아주기)
|
|
46
|
-
|
|
47
|
+
log_perplexity = ldamodel.log_perplexity(corpus)
|
|
48
|
+
perplexity_score = np.exp(log_perplexity)
|
|
47
49
|
|
|
48
50
|
# 3. 2번에서 구한 값 perplexity_values 에 추가하기
|
|
49
51
|
perplexity_values.append(perplexity_score)
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: new_value_analysis
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: New Value Analysis: actor/action/opportunity 분석 유틸리티 패키지
|
|
5
|
+
Author: New Value Analysis contributors
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/smhrdGit/new_value_analysis
|
|
8
|
+
Project-URL: Repository, https://github.com/smhrdGit/new_value_analysis
|
|
9
|
+
Project-URL: Issues, https://github.com/smhrdGit/new_value_analysis/issues
|
|
10
|
+
Requires-Python: >=3.9
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: numpy>=1.21
|
|
14
|
+
Requires-Dist: pandas>=1.5
|
|
15
|
+
Requires-Dist: gensim>=4.3
|
|
16
|
+
Requires-Dist: scikit-learn>=1.2
|
|
17
|
+
Requires-Dist: matplotlib>=3.7
|
|
18
|
+
Requires-Dist: scipy>=1.10
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
|
|
21
|
+
# New Value Analysis
|
|
22
|
+
|
|
23
|
+
`new_value_analysis`는 **신규가치분석(New Value Analysis)**을 수행하기 위한
|
|
24
|
+
Python 기반 분석 유틸리티 라이브러리입니다.
|
|
25
|
+
|
|
26
|
+
텍스트 데이터 기반으로
|
|
27
|
+
**Action(행동) → Actor(행위자) → Opportunity Area(기회영역)** 분석 파이프라인을
|
|
28
|
+
일관된 구조로 수행할 수 있도록 설계되었습니다.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 📦 Installation
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pip install new_value_analysis
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
> Python 3.9 이상 권장
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 📚 Core Concept
|
|
43
|
+
|
|
44
|
+
본 라이브러리는 다음과 같은 **3단계 분석 흐름**을 전제로 합니다.
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
[Action Finder]
|
|
48
|
+
텍스트 데이터 → 토픽 모델링 → 행동(Action) 정의
|
|
49
|
+
|
|
50
|
+
[Actor Finder]
|
|
51
|
+
문서 임베딩 → 군집 분석 → 행위자(Actor) 유형화
|
|
52
|
+
|
|
53
|
+
[Opportunity Area Analysis]
|
|
54
|
+
중요도 × 만족도 → 기회영역(Opportunity Area) 도출
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 📁 Package Structure
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
new_value_analysis
|
|
63
|
+
├─ action_finder
|
|
64
|
+
│ ├─ topic_modeling.py # LDA 학습
|
|
65
|
+
│ ├─ find_topicnum.py # 토픽 수 탐색
|
|
66
|
+
│ └─ select_action_number.py # 문서별 Action 번호 할당
|
|
67
|
+
│
|
|
68
|
+
├─ actor_finder
|
|
69
|
+
│ ├─ doc2vec.py # Doc2Vec 임베딩
|
|
70
|
+
│ ├─ find_right_silhouette.py # 최적 군집 수 탐색
|
|
71
|
+
│ ├─ silhouette_plot.py # 실루엣 플롯
|
|
72
|
+
│ └─ visualize_dendrogram.py # 덴드로그램 시각화
|
|
73
|
+
│
|
|
74
|
+
└─ opportunity_area_analysis
|
|
75
|
+
├─ satisfaction_scaling.py # 점수 스케일링
|
|
76
|
+
└─ opportunity_plot.py # Opportunity Area 시각화
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 1️⃣ Action Finder
|
|
82
|
+
|
|
83
|
+
### 목적
|
|
84
|
+
|
|
85
|
+
* 텍스트 데이터에서 **행동(Action)**을 추출
|
|
86
|
+
* 문서별로 어떤 행동을 가장 강하게 드러내는지 식별
|
|
87
|
+
|
|
88
|
+
### 주요 기능
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
from new_value_analysis.action_finder import (
|
|
92
|
+
LDA_train,
|
|
93
|
+
assign_action_number
|
|
94
|
+
)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 예시 흐름
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
# 1. LDA 모델 학습
|
|
101
|
+
lda_model, corpus, dictionary = LDA_train(texts)
|
|
102
|
+
|
|
103
|
+
# 2. 문서별 Action 번호 할당
|
|
104
|
+
df["action_number"] = assign_action_number(lda_model, corpus)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 2️⃣ Actor Finder
|
|
110
|
+
|
|
111
|
+
### 목적
|
|
112
|
+
|
|
113
|
+
* 문서를 **행위자(Actor) 관점에서 군집화**
|
|
114
|
+
* “어떤 유형의 사람이 어떤 행동을 하는가?”를 구조화
|
|
115
|
+
|
|
116
|
+
### 주요 기능
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
from new_value_analysis.actor_finder import (
|
|
120
|
+
train_doc2vec_module,
|
|
121
|
+
agglomerative_silhouette_module,
|
|
122
|
+
visualize_silhouette,
|
|
123
|
+
plot_dendrogram
|
|
124
|
+
)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### 예시 흐름
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
# 1. Doc2Vec 임베딩
|
|
131
|
+
model, vectors, tagged_docs = train_doc2vec_module(
|
|
132
|
+
df,
|
|
133
|
+
token_col="tagged_review"
|
|
134
|
+
)
|
|
135
|
+
df["vector"] = vectors
|
|
136
|
+
|
|
137
|
+
# 2. 최적 군집 수 탐색
|
|
138
|
+
scores, best_k = agglomerative_silhouette_module(df)
|
|
139
|
+
|
|
140
|
+
# 3. 군집 품질 시각화
|
|
141
|
+
visualize_silhouette([2, 3, 4, 5], vectors)
|
|
142
|
+
|
|
143
|
+
# 4. 덴드로그램 확인
|
|
144
|
+
plot_dendrogram(df)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 3️⃣ Opportunity Area Analysis
|
|
150
|
+
|
|
151
|
+
### 목적
|
|
152
|
+
|
|
153
|
+
* 중요도 × 만족도 기반으로 **기회영역(Opportunity Area)** 도출
|
|
154
|
+
* “노력 대비 가치가 큰 영역”을 시각적으로 식별
|
|
155
|
+
|
|
156
|
+
### 주요 기능
|
|
157
|
+
|
|
158
|
+
```python
|
|
159
|
+
from new_value_analysis.opportunity_area_analysis import (
|
|
160
|
+
minmax_scale_scores,
|
|
161
|
+
plot_opportunity_area
|
|
162
|
+
)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 예시 흐름
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
# 1. 점수 스케일링
|
|
169
|
+
df_scaled = minmax_scale_scores(df)
|
|
170
|
+
|
|
171
|
+
# 2. Opportunity Area 시각화
|
|
172
|
+
plot_opportunity_area(
|
|
173
|
+
importance=df_scaled["importance"],
|
|
174
|
+
satisfaction=df_scaled["satisfaction"],
|
|
175
|
+
labels=df_scaled["action_label"]
|
|
176
|
+
)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 🧠 Recommended Workflow
|
|
182
|
+
|
|
183
|
+
```text
|
|
184
|
+
텍스트 수집
|
|
185
|
+
↓
|
|
186
|
+
전처리 / 토큰화
|
|
187
|
+
↓
|
|
188
|
+
Action Finder (행동 정의)
|
|
189
|
+
↓
|
|
190
|
+
Actor Finder (행위자 유형화)
|
|
191
|
+
↓
|
|
192
|
+
Opportunity Area Analysis (기회영역 도출)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 🎓 Use Cases
|
|
198
|
+
|
|
199
|
+
* AI 서비스 기획 / UX 리서치
|
|
200
|
+
* VOC / 리뷰 데이터 기반 서비스 개선
|
|
201
|
+
* 공공 데이터 기반 정책 기획
|
|
202
|
+
* 교육 과정(부트캠프) 분석 프로젝트
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
## ✨ Versioning
|
|
206
|
+
|
|
207
|
+
* **v0.1.0**
|
|
208
|
+
|
|
209
|
+
* Initial public release
|
|
210
|
+
* Action / Actor / Opportunity 분석 파이프라인 제공
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: new_value_analysis
|
|
3
|
-
Version: 0.1.0
|
|
4
|
-
Summary: New Value Analysis: actor/action/opportunity 분석 유틸리티 패키지
|
|
5
|
-
Author: New Value Analysis contributors
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/smhrdGit/new_value_analysis
|
|
8
|
-
Project-URL: Repository, https://github.com/smhrdGit/new_value_analysis
|
|
9
|
-
Project-URL: Issues, https://github.com/smhrdGit/new_value_analysis/issues
|
|
10
|
-
Requires-Python: >=3.9
|
|
11
|
-
Description-Content-Type: text/markdown
|
|
12
|
-
License-File: LICENSE
|
|
13
|
-
Requires-Dist: numpy>=1.21
|
|
14
|
-
Requires-Dist: pandas>=1.5
|
|
15
|
-
Requires-Dist: gensim>=4.3
|
|
16
|
-
Requires-Dist: scikit-learn>=1.2
|
|
17
|
-
Requires-Dist: matplotlib>=3.7
|
|
18
|
-
Requires-Dist: scipy>=1.10
|
|
19
|
-
Dynamic: license-file
|
|
20
|
-
|
|
21
|
-
# New Value Analysis
|
|
22
|
-
|
|
23
|
-
`new_value_analysis`는 신규가치분석(New Value Analysis)을 위한 파이썬 유틸리티 패키지입니다.
|
|
24
|
-
|
|
25
|
-
## 구성
|
|
26
|
-
- `action_finder`: 토픽 모델링(LDA) 기반 Action(행동) 추출/할당
|
|
27
|
-
- `actor_finder`: Doc2Vec 임베딩 + 군집 진단(실루엣/덴드로그램)
|
|
28
|
-
- `opportunity_area_analysis`: Opportunity Area 스케일링/시각화
|
|
29
|
-
|
|
30
|
-
## 설치(로컬 개발 모드)
|
|
31
|
-
```bash
|
|
32
|
-
pip install -U pip
|
|
33
|
-
pip install -e .
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## 사용 예시
|
|
37
|
-
```python
|
|
38
|
-
from new_value_analysis import action_finder, actor_finder, opportunity_area_analysis
|
|
39
|
-
|
|
40
|
-
# 예: actor_finder 내부 함수 사용
|
|
41
|
-
# model, vectors, tagged = actor_finder.train_doc2vec_module(df, token_col="tagged_review")
|
|
42
|
-
```
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# New Value Analysis
|
|
2
|
-
|
|
3
|
-
`new_value_analysis`는 신규가치분석(New Value Analysis)을 위한 파이썬 유틸리티 패키지입니다.
|
|
4
|
-
|
|
5
|
-
## 구성
|
|
6
|
-
- `action_finder`: 토픽 모델링(LDA) 기반 Action(행동) 추출/할당
|
|
7
|
-
- `actor_finder`: Doc2Vec 임베딩 + 군집 진단(실루엣/덴드로그램)
|
|
8
|
-
- `opportunity_area_analysis`: Opportunity Area 스케일링/시각화
|
|
9
|
-
|
|
10
|
-
## 설치(로컬 개발 모드)
|
|
11
|
-
```bash
|
|
12
|
-
pip install -U pip
|
|
13
|
-
pip install -e .
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## 사용 예시
|
|
17
|
-
```python
|
|
18
|
-
from new_value_analysis import action_finder, actor_finder, opportunity_area_analysis
|
|
19
|
-
|
|
20
|
-
# 예: actor_finder 내부 함수 사용
|
|
21
|
-
# model, vectors, tagged = actor_finder.train_doc2vec_module(df, token_col="tagged_review")
|
|
22
|
-
```
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: new_value_analysis
|
|
3
|
-
Version: 0.1.0
|
|
4
|
-
Summary: New Value Analysis: actor/action/opportunity 분석 유틸리티 패키지
|
|
5
|
-
Author: New Value Analysis contributors
|
|
6
|
-
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/smhrdGit/new_value_analysis
|
|
8
|
-
Project-URL: Repository, https://github.com/smhrdGit/new_value_analysis
|
|
9
|
-
Project-URL: Issues, https://github.com/smhrdGit/new_value_analysis/issues
|
|
10
|
-
Requires-Python: >=3.9
|
|
11
|
-
Description-Content-Type: text/markdown
|
|
12
|
-
License-File: LICENSE
|
|
13
|
-
Requires-Dist: numpy>=1.21
|
|
14
|
-
Requires-Dist: pandas>=1.5
|
|
15
|
-
Requires-Dist: gensim>=4.3
|
|
16
|
-
Requires-Dist: scikit-learn>=1.2
|
|
17
|
-
Requires-Dist: matplotlib>=3.7
|
|
18
|
-
Requires-Dist: scipy>=1.10
|
|
19
|
-
Dynamic: license-file
|
|
20
|
-
|
|
21
|
-
# New Value Analysis
|
|
22
|
-
|
|
23
|
-
`new_value_analysis`는 신규가치분석(New Value Analysis)을 위한 파이썬 유틸리티 패키지입니다.
|
|
24
|
-
|
|
25
|
-
## 구성
|
|
26
|
-
- `action_finder`: 토픽 모델링(LDA) 기반 Action(행동) 추출/할당
|
|
27
|
-
- `actor_finder`: Doc2Vec 임베딩 + 군집 진단(실루엣/덴드로그램)
|
|
28
|
-
- `opportunity_area_analysis`: Opportunity Area 스케일링/시각화
|
|
29
|
-
|
|
30
|
-
## 설치(로컬 개발 모드)
|
|
31
|
-
```bash
|
|
32
|
-
pip install -U pip
|
|
33
|
-
pip install -e .
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## 사용 예시
|
|
37
|
-
```python
|
|
38
|
-
from new_value_analysis import action_finder, actor_finder, opportunity_area_analysis
|
|
39
|
-
|
|
40
|
-
# 예: actor_finder 내부 함수 사용
|
|
41
|
-
# model, vectors, tagged = actor_finder.train_doc2vec_module(df, token_col="tagged_review")
|
|
42
|
-
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis/actor_finder/doc2vec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis.egg-info/requires.txt
RENAMED
|
File without changes
|
{new_value_analysis-0.1.0 → new_value_analysis-0.1.2}/src/new_value_analysis.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|