app.py
----common
----esFunc.py
----cmm.py
----prs.py
----LDA.py
----SVM.py
----CNN.py
## app.py
* flask main app
## LDA.py
* ์ฃผ์ ๋ถ์ LDA ์๊ณ ๋ฆฌ์ฆ
## common module
* ๋ฐ์ดํฐ ๋ถ์์ ๊ณตํต์ ์ผ๋ก ๋ค์ด๊ฐ๋ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ ๋ชจ๋
* ๋ฐฑ์๋์ ์ฟผ๋ฆฌ๋ก ๋ฐ์ดํฐ ํธ์ถ
* ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
* ๋ฐ์ดํฐ ๋ถ์ ์๊ณ ๋ฆฌ์ฆ ์๊ฐ ์ธก์
* ํฌํจํ๋ ๋ชจ๋
### cmm.py : ๋ฐ์ดํฐ ํธ์ถ๊ณผ ์ ์ฒ๋ฆฌ์ ์ฌ์ฉ๋๋ global ๋ณ์ ๋ฐ ์๊ฐ ๋ด๋น ํจ์
### esFunc.py : elasticsearch quary functions module
### prs.py : ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ(pre process) ๊ธฐ๋ฅ
## prs.py
### data pre process function module
* function : loadData()
* purpose :
* esFunc์ ์ฌ์ฉํด์ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ด ๋ฐ์ดํฐ๋ฅผ ํธ์ถ
* ์๋ฒ์ ์ฐ๊ฒฐ ๋ถ๊ฐ ํน์ ์๋ฒ ์ฐ๊ฒฐ ์ต์
์ ๋ฐ๋ผ ์ ์ฅ๋์ด ์๋ sample data์ ํธ์ถ
* ๋ด์ฉ์ด ์๋ ๋ฌธ์๋ฅผ ๊ฑธ๋ฌ์ค๋ค.
* NOTICE :
* readtData์์ ๋ถ๋ฅด๋ ์ค๊ฐ ํจ์์ด๋ค.
* function : dataPrePrcs
* purpose :
* okt์ ์ฌ์ฉํด์ ํํ์ ๋ถ์์ ์งํ.
* function : readyData
* purpose : ๋ฐ์ดํฐ๋ฅผ ํธ์ถํด์ ๋ถ์ ์ ํ ๋ฐ์ดํฐ๋ฅผ ๊ฑฐ๋ฅด๊ณ , ํํ์ ๋ถ์๊น์ง ์๋ฃํด์ ๋ฐํ
* input : int : ํธ์ถํ๊ณ ์ ํ๋ ๋ฌธ์์ ์
* output : ๋ฌธ์๋ค์ (id list, title list, ํํ์ ๋ถ์ ๋จ์ด list) tuple
* NOTICE : id, title, ํํ์ list๋ ๋์ผํ index์ ๊ฐ์ง๊ณ ์๋ค.
## esFunc.py
### elasticsearch quary functions module
* **function : genQuery(boolean, [int])**
* prpose : es์ ๋ณด๋ผ ์ฟผ๋ฆฌ๋ฅผ ๋ง๋ ๋ค.
* input :
* file ์๋ ๋ฌธ์์ธ์ง ์๋ ๋ฌธ์์ธ์ง ์ ํ
* ์์ฒญํ size ์ ํ : [0,infin]
* output : es ์ฟผ๋ฆฌ body(object)
* **function : esCount(object)**
* purpose : ์ฃผ์ด์ง ์ฟผ๋ฆฌ ๋ฐ๋์ ํด๋นํ๋ ๋ฌธ์์ ๊ฐ์์ ์นด์ดํธ๋ฅผ ํ๋ค.
* input : es ์ฟผ๋ฆฌ body
* output : ๋ฌธ์์ ๊ฐ์(int)
* **function : esQueryRaw(object)**
* purpose : ์ ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์ ๋ฐ์ดํฐ ๋ฐํ
* input : es ์ฟผ๋ฆฌ body object
* output : json ํํ์ ๋ฐ์ดํฐ(object)
* **function : esQuery(object)**
* purpose : ์๊ณ ๋ฆฌ์ฆ์ ๋ง๊ฒ ์์ ํ ์ ์๋๋ก ๊ธฐ๋ณธ์ ์ธ ์ ์ฒ๋ฆฌ๋ง ๋๋ธ ๋ฐ์ดํฐ ๋ฐํ
* input : es ์ฟผ๋ฆฌ body object
* output : json ํํ์ ๋ฐ์ดํฐ(object)
* **function : nkdbNoFile(int)**
* purpose : es์ ํ์ผ์ด ***์๋*** ๋ฌธ์๋ฅผ ์์ฒญํ ์ ๋งํผ ๋ฌธ์ ์ง๋จ์ ๋ฐํ
* input : ๊ฐ์ง๊ณ ์ค๋ ค๋ ๋ฌธ์์ ๊ฐ์(int)
* output : (๋ฌธ์ object array)
[
{"_id" : ๋ฌธ์1 ๊ณ ์ id, "post_title" : "๋ฌธ์1์ ๋ชฉ","contents" : "๋ฌธ์1๋ด์ฉ"},
{"_id" : ๋ฌธ์2 ๊ณ ์ id, "post_title" : "๋ฌธ์2์ ๋ชฉ","contents" : "๋ฌธ์2๋ด์ฉ"},
...
]
* **function : nkdbFile(int)**
* purpose :es์ ํ์ผ์ด ***์๋*** ๋ฌธ์๋ฅผ ์์ฒญํ ์ ๋งํผ ๋ฌธ์ ์ง๋จ์ ๋ฐํ
* input : ๊ฐ์ง๊ณ ์ค๋ ค๋ ๋ฌธ์์ ๊ฐ์(int)
* output : (๋ฌธ์ object array)
[
{"_id" : ๋ฌธ์1 ๊ณ ์ id, "post_title" : "๋ฌธ์1์ ๋ชฉ","contents" : "๋ฌธ์1๋ด์ฉ"},
{"_id" : ๋ฌธ์2 ๊ณ ์ id,"post_title" : "๋ฌธ์2์ ๋ชฉ","contents" : "๋ฌธ์2๋ด์ฉ"},
...
]
* **function : esGetDocs(int)**
* purpose : ์ฒจ๋ถ ํ์ผ์ด ์๋ ์๋ , ์ข
๋ฅ์ ์๊ด ์์ด ์์ฒญํ ์ ๋งํผ ๋ฌธ์ ์ง๋จ์ ๋ฐํ
* input : ๊ฐ์ง๊ณ ์ค๋ ค๋ ๋ฌธ์์ ๊ฐ์(int)
* output : (๋ฌธ์ object array tuple)
[
{"_id" : ๋ฌธ์1 ๊ณ ์ id, "post_title" : "๋ฌธ์1์ ๋ชฉ","contents" : "๋ฌธ์1๋ด์ฉ"},
{"_id" : ๋ฌธ์2 ๊ณ ์ id,"post_title" : "๋ฌธ์2์ ๋ชฉ","contents" : "๋ฌธ์2๋ด์ฉ"},
...
]
* NOTICE :
* ์ ์ฒด ์์ฒญ ์๋ฅผ ๋ฐ์ผ๋ก ๋๋ ์ ํ์ผ์ด ์๋ ๋ฌธ์์ ์๋ ๋ฌธ์์ ๊ฐ๊ฐ ์์ฒญํ๋ค.
* ์ฒจ๋ถ ํ์ผ์ด ์๋ ๋ฌธ์์ ์๋ ๋ฌธ์์ ์๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์,
* ๋ง์ฝ ํ์ชฝ์์ ์๊ฐ ๋ชจ์๋ผ๋ฉด ๋ถ์กฑํ ๋ถ๋ถ์ ๋ค๋ฅธ ์ชฝ์์ ์ฑ์ด๋ค.
* ๋ง์ฝ ์ ์ฒด DB์ ์๋ ๋ฐ์ดํฐ๋ณด๋ค ๋ง์ ์์ ์์ฒญํ๋ฉด DB์ ์ ์ฅ๋์ด ์๋ ์๋ง ๋ฐํ.
* **function : esGetDocsSave([int])**
* purpose : ์ฒจ๋ถ ํ์ผ์ด ์๋ ์๋ , ์ข
๋ฅ์ ์๊ด ์์ด ์์ฒญํ ์ ๋งํผ ๋ฌธ์ ์ง๋จ์ ๋ฐํํด์ ์ ์ฅ
* input : [optional : ๊ฐ์ง๊ณ ์ค๋ ค๋ ๋ฌธ์์ ๊ฐ์(int)]
* NOTICE :
* default = 20๊ฐ์ ๋ฌธ์๋ฅผ ๊ฐ์ง๊ณ ์ด.
* ์ ์ฅ๋๋ ์์น๋ ./raw data sample/
* ํ์ผ ์ด๋ฆ : rawData.json
* optional์ ์ ํํ๋ฉด ๋ฐ์ดํฐ ํ์ผ ์ด๋ฆ์ด rawDataX.json์ผ๋ก ์๋์ผ๋ก ์ ์ฅ
* **function : esGetADoc([int])**
* purpose : es์์ random์ ์ ํ๋ ๋ฌธ์๋ฅผ 1๊ฐ๋ฅผ ๊ฐ์ง๊ณ ์จ๋ค.
* input : [optional : ๊ฐ์ง๊ณ ์ค๋ ค๋ "ํ๋ณด" ๋ฌธ์์ ์. default size = 500]
* output : (๋ฌธ์ object array)
[
{"post_title" : "๋ฌธ์ ์ ๋ชฉ","contents" : "๋ฌธ์ ๋ด์ฉ"}
]