Skip to content

Latest commit

ย 

History

History
125 lines (107 loc) ยท 4.96 KB

File metadata and controls

125 lines (107 loc) ยท 4.96 KB

flask Architecture

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" : "๋ฌธ์„œ ๋‚ด์šฉ"}
            ]