- κΈ°λ³Έ API ꡬμ±
- λ°μ΄ν° μμ§ (2019λ 1μ ~ 2019λ 10μ)
- YYYY-MM μΌλ‘ μΈμ μ£Όκ³ λ°μ΄ν° ν¬λ‘€λ§ νλ λ°©λ²μΌλ‘ μμ
- λ°μ΄ν° μμ§ (2018λ 1μ ~ 2018λ 12μ) : μλ μ μ²λ¦¬
- month λ³κ²½, λͺ¨λν, νμΌ κ²½λ‘ μλ¬ μ²λ¦¬, λΉ κ° μ²λ¦¬
- λͺ¨λν(μλΈλ λ§ μ΄λ¦μ ν¨μ μΈμλ‘ λκΈ°λ λ°©μμΌλ‘ λ³κ²½)
- ν¨μ λ³μ λ³κ²½: end_timeμ next_timeμΌλ‘ ν¨μ λ΄λΆμμ μ€μ , nowλ₯Ό end_timeμΌλ‘ μμ
- νμΌλͺ μλͺ» μ€μ λλ μ€λ₯ μμ
- λ°μ΄ν° μμ§ (/r/kpop: 2013λ 6μ ~ 2017λ 12μ, 2019λ 11μ)
- λ°μ΄ν° μμ§ (/r/kpoppers: 2017λ 9μ ~ 2017λ 12μ, 2019λ 11μ)
- λ°μ΄ν° μμ§ (/r/bangtan: 2017λ 1μ ~ 2019λ 11μ)
- λ°μ΄ν° μλ μ μ²λ¦¬ (/kpop)
- 200μ μμ ν΄λ λΉ λ°°μ΄μ΄λ©΄ json νμ±μ΄ μ λμ΄ μλ¬ λ°μ
- ν¬λ‘€λ¬ λ²κ·Έ μμ (json νμ±μ λν΄ μμΈ μ²λ¦¬)
- λ°μ΄ν° μμ§ (/r/red_velvet: 2014λ 1μ ~ 2017λ 12μ)
- λ°μ΄ν° μμ§ (/r/exo: 2017λ 1μ ~ 2019λ 11μ)
- λ°μ΄ν° μμ§ (/r/bangtan: 2014λ 1μ ~ 2016λ 12μ)
- λ°μ΄ν° μμ§ (r/twice: 2015λ 5μ ~ 2019λ 11μ)
- λ°μ΄ν° μμ§ (r/snsd: 2010λ 8μ ~ 2019λ 11μ)
- λ°μ΄ν° μμ§ (r/Got7: 2014λ 1μ ~ 2019λ 11μ)
- λ°μ΄ν° μμ§ (r/aiyu: 2012λ 2μ ~ 2019λ 11μ) (μμ΄μ )
- λ λ벨벳 2018λ ~2019λ ν¬λ‘€λ§νκΈ°
- λ°μ΄ν° μμ§ (/r/red_velvet: 2018λ 1μ ~ 2019λ 11μ)
- λ°μ΄ν° μμ§ (/r/MachineLearning: 2009λ 8μ ~ 2019λ 11μ)
- λ°μ΄ν° μμ§ (/r/datascience: 2011λ 8μ ~ 2016λ 12μ)
- λ°μ΄ν° μμ§ (/r/deeplearning: 2012λ 1μ ~ 2019λ 11μ)
- concat_csv: csv νμΌ μ¬λ¬κ° νλλ‘ ν©μΉλ ν¨μ
- μ 곡νκ³ μΆμ λΆμ λ°©λ²: νΈλν½ κ·Έλν, μΈκΈλ κ·Έλν, μλν΄λΌμ°λ, ν€μλ μ°κ΄, SQL μ§μ λ±
- λ°μ΄ν°μ¬μ΄μΈμ€ 2017λ ~2019λ ν¬λ‘€λ§νκΈ°
- url λ°μ΄ν° ν¨κ» μμ§
- concat_csv μΌλΆ μμ
- μμ§ν λ°μ΄ν°μ λν΄ νλλ‘ κ²°ν©
- λ°μ΄ν° μμ§ (/r/datascience: 2017λ ~ 2019λ )
- λ°μ΄ν° μμ§ (/r/tensorflow: 2015λ ~ 2019λ )
- λ°μ΄ν° μμ§ (/r/computercience: 2011λ ~ 2019λ )
- find_keyword μμ±
- λ°μ΄ν° μ μ₯ κ²½λ‘ μμ
- urlμ μμ§ν λ°μ΄ν°μ μλ λ°μ΄ν°λ₯Ό ν©μΉ λ μμΈμ²λ¦¬
- λ¨μ΄ νμ±ν κ²μ μ μ₯ν΄μΌ ν κΉ?
- κΈμ΄μ΄λ³ νμ΄ν + λ¬Έμ νμ΅ => μ μ¬λ ꡬνκΈ° (νλμ΄ λΉμ·ν μ μ )
- find_keyword ν€μλ selectμ© ν΄λλ₯Ό λ°λ‘ λ§λ€μ΄μ κ±°κΈ°μ μ μ₯νλ μμΌλ‘ μμ
- λ°μ΄ν° μμ§ (/r/BlackPink: 2016λ ~ 2019λ )
- λ°μ΄ν° μμ§ (/r/Futurology: 2012λ ~ 2019λ )
- μμ§ν λ°μ΄ν° μ 체 HDFSμ μ λ‘λ
- word2vec_keyword_similarity.py μ€ν΅κ·Έλ¨ λͺ¨λΈ νμ΅ ν ν€μλμ λν΄ μ μ¬ν ν€μλ μΆλ ₯
- doc2vec_user_recommendation.py λ¬Έμλ³ νμ΅ ν μ μ¬ ν€μλμ μΆμ² μ¬μ©μ μΆλ ₯
- word_cloud.py νμ±ν λ¨μ΄ κΈ°λ°μΌλ‘ μλ ν΄λΌμ°λ
- μΈκΈλ κ·Έλν κ·Έλ¦¬λ €λ©΄ title or selftext μ²λΌ νλμλ§ μλ κ² λμΌλ μμ
- νΈλν½ κ·Έλν μ μ΄μμΉ λ€μ΄κ°λμ§ νμΈ (μ΅μ μ μ λλ‘ μ£Όμ§ μμμ)
- VMμ μ£ΌνΌν° λ ΈνΈλΆ μ€μΉ CORS μ€λ₯ νμΈ
- ν©μΉ λ°μ΄ν°μ λν΄ date λ³λ‘ λ³Ό μ μλ λ°©λ² νμΈ
- concat_csv.py μμ : url μμ§ν νμΌμ λν΄ concat μ€λ₯ μκ²
- μμ λ concat_csvλ‘ λ°μ΄ν° μν©
- ν¬λ‘€λ¬ μμ : μ€ν€λ§ μμ , λ μ§ μκ³ λ¦¬μ¦ μμ
- doc2vec_advanced.py μμ±ν κ²μκΈ λ°νμΌλ‘ μ μ¬ν μ¬μ©μ μΆμ²
- μμ§ν λ°μ΄ν°μ λν΄ doc2vec λͺ¨λΈ μμ±
- 'total' μ€ν€λ§λ μ¬λ¬ λΆμμ 곡ν΅μΌλ‘ μ¬μ©λλ―λ‘ μ μ²λ¦¬ν λ ν©μ³λ²λ¦¬κΈ° -> λ°μ΄ν° μ€λ³΅μ΄λΌ κ·Έλ₯ κ° λ¨κ³μμ νλ κ±Έλ‘
- λ°λ μ€ν€λ§λ‘ λ€μ ν¬λ‘€λ§νκΈ° -> ν¬λ‘€λ§ μ½λ νλλ‘ μ‘°μ ν κ²
- ν¬λ‘€λ¬ μμ : λλ ν 리 μ΄λ¦ λ°μμμ(μΆκ°λ‘ ν¬λ‘€λ§νκ³ μΆμΌλ©΄ ν΄λ μμ±ν΄μΌ) -> λ§μ§λ§μΌλ‘ μ μ₯ν μκ° νμΈνκ³ (μμΌλ©΄ about.jsonμμ μμ± μκ° λ°μμ€κΈ°) -> κ±°κΈ°μλΆν° νμ¬κΉμ§ λ리기 (νμ¬μκ°μ΄ VMμμ μ°νμ§ μμ. κ°μ λ‘ νλ¬λ‘ μ‘°μ .)
- find_keyword.py μμ
- ν¬λ‘€λ¬ λ©μΆλ κ² λ°μ΄ν° κΈΈμ΄κ° μμ μμ λλ‘ μμ .
- ν¬λ‘€λ¬ νμΌ μ μ₯ μ΄λ¦μ μμ§ν λ¬λ‘ μ‘°μ , μ΄λ»κ² μ λ°μ΄νΈν μ§λ κ³ λ €ν΄μΌ ν μ¬μμΈ λ―.
- ν¬λ‘€λ¬μμ νμ¬μκ°μ μ΄λ»κ² λ³Ό κ²μΈμ§ μκ°νκΈ° - λ λ§ μλ²μκ°
- μ ν λ¦°μμ κ°μ bindingν μ μλ λ°©λ²λ μλ λ―
- λ§μ½ μ£ΌνΌν° λ ΈνΈλΆμμ κ³μ CORS μλ¬ λ κ²½μ°, κ²°κ³Όλ₯Ό λ°λ‘ μ μ₯νλ μμΌλ‘ μμ .
- concatμμ μ€λ³΅κ° μμ
- μμΉ΄μ΄λΈ λ°μ΄ν°λ κ·Έλ₯ jsonμΌλ‘ dumpνλ κ² κ³ λ € (μμ΄ λ무 λ§μμ λ©λͺ¨λ¦¬ μλ¬)
- SparkMLLibλ Mahaout λμ ν΄μ scalableνκ²...
- νμ΄ν μμ (μλν λμ: ν¬λ‘€λ§κ³Ό μ 체 λ°μ΄ν° ν©μΉκΈ°)
-
ν¬λ‘€λ§
- data/scrappedμ ν΄λ μ΄λ¦λ€μ μμ§ν μλΈλ λ§μΌλ‘ μ¬κΈ΄λ€. (μΆκ°λ‘ ν¬λ‘€λ§νκ³ μΆμΌλ©΄ μ΄ λλ ν 리μ ν΄λ μΆκ°ν κ²)
- ν΄λΉ λλ ν 리μ λν΄ λ§μ§λ§μΌλ‘ ν¬λ‘€λ§ν μμ μ΄νλΆν° νμ¬κΉμ§ ν¬λ‘€λ§ν¨.
- λ§μ½ μ²μ ν¬λ‘€λ§νλ€λ©΄ about.jsonμ μ°Έκ³ ν΄ μμ±μ§μ μ λ°μμ¨λ€.
- ν¬λ‘€λ§ λ¨κ³μμ μμ€ν€ λ¬Έμλ§ λ°μμ€λ μ μ²λ¦¬λ μνν¨.
-
μ 체 λ°μ΄ν° ν©μΉκΈ°
- data/combinedμ μμ§ν λͺ¨λ λ°μ΄ν°μ λν΄ concat μμ μν
-
λΆμ (1): SQL μ§μ
- νΈλν½ κ·Έλν
- find_keyword.py λ₯Ό μ€ννκ³ (μ΄κ²μ λλλ‘ λ°λλ―λ‘ μλνμ ν¬ν¨ X) data/keywordμ νμΌλ‘ μΈκΈλ κ·Έλν
- κΈ°ν SQL μ§μ
-
λΆμ (2): μλν΄λΌμ°λ
- λ§μ΄ μΈκΈλ λ¨μ΄λ₯Ό μλν΄λΌμ°λλ‘ νν
-
λΆμ (3): Word2Vec μ μ¬ ν€μλ
- word2vec_keyword_similarity.py λ‘ μνλ μλΈλ λ§μ λν΄ νΉμ ν€μλμ λν μ°κ΄ ν€μλλ₯Ό νν
- λͺ¨λΈ: μ€ν΅κ·Έλ¨
-
λΆμ (4): Doc2Vec
- doc2vec_user_recommendation.py λ‘ λ¬Έμ κΈ°λ° νμ΅μ λν΄ μ μ¬ ν€μλ & μκΈ° μκ°μ μ μ¬ν κ²μκΈ μΆλ ₯
- doc2vec_advanced.py λ‘ νΉμ μ¬μ©μμ μμ±κΈ κΈ°λ° μ μ¬ν κ²μκΈμ μμ±ν μ¬μ©μ μΆμ²
- λ°μ΄ν° μμ§ νμ₯ (μ΄ 229MB => μ΄ 317MB)
- λ λ§ μλ²μκ° κ΅¬νλ ν¨μ
- λΆμ
- Spark mllib λΌμ΄λΈλ¬λ¦¬ μ¬μ©ν΄μ μμ± μ½λ λ³κ²½
- ν€μλ HBaseμ μ μ₯νλ λ°©μμΌλ‘ μμ
- README.md νμΌ μ 리
- λ°μ΄ν° μμ§: gilmore girls, game of thrones
- λ°μ΄ν° μμ§: TheGoodPlace
- ν¬λ‘€λ¬ μμ
- μμ λ ν¬λ‘€λ¬λ‘ λ°μ΄ν° μ λ°μ΄νΈ
- νμΌ ν©μΉλ ν¨μ μμ ν μ μ©
- μ°μ§ μν¬νλ‘μ° μμ±
- ν¬λ‘€λ¬ λ° concat HDFS κ²½λ‘ μμ
- μλν΄λΌμ°λ μ΄λ―Έμ§ μ μ₯
- μ μ¬ ν€μλ μΆμΆ λͺ¨λΈ (word or doc)
- μ λͺ© λλ λ³Έλ¬Έμμ ν€μλ μ°ΎκΈ°
- Doc2Vec User Recommendation by ID
- Doc2Vec User Recommendation by μκΈ°μκ°
- λΆμ: μ£ΌνΌν° λ ΈνΈλΆμΌλ‘
- μ νλ¦° λ ΈνΈλΆ λΆμ
- 쿼리 κ²°κ³Όκ° μ΄μν κ²½μ° λ€κ°λλ‘ μ κ·Όνλ κ²μ΄ λμμ΄ λλ€.
- νΈλν½μ μ 체 νΈλν½ λλΉλ‘ μ κ·ννλ κ²μ΄ μ’λ€.
- μ 보λ₯Ό κΈμ΄μ¨ μ¬μ΄νΈμ λν μ΄ν΄κ° μμ΄μΌ 쿼리λ₯Ό μ λλ‘ μ€ μ μλ€. μλ₯Ό λ€μ΄ λ€μ΄λ² μΌνμ κ²½μ° κ°κ²© λΉκ΅ μλΉμ€μ΄λλ§νΌ μΈκΈλμ΄ λ§λ€κ³ ν΄μ μ’μ μνμ΄λΌλ λ»μ μλλ€.
- λΆλ₯ λΆμμ ν κ²½μ° λΆλ₯μ λν μ νλλ κ²μ¦νλ κ³Όμ μ΄ νμνλ€.
- λ°μ΄ν°λ₯Ό μ νν μ λ¬νλ €κ³ ν κ².
- λΉκ΅νκ³ μΆμ κ²½μ° μΆλ μ κ·νν΄μ λ§μΆ° μ€ κ². (Aμ Bλ₯Ό λΉκ΅νλ €κ³ ν λ Aμ yμΆκ³Ό Bμ yμΆ λ²μλ₯Ό κ°κ² ν΄μΌ ν¨)
- κ·Έλνκ° κ·Έλ €μ§λ€λ₯Ό 보μ¬μ£Όλ €λ λΆμμ μλ―Έκ° μλ€. κ·Έλνλ₯Ό μ κ·Έλ¦¬λ €λμ§μ λν μ΄ν΄κ° νμνλ€.
- κΆκΈνλ©΄ μΌλ¨ νμΈνκΈ°
- μλμ λ€λ₯΄κ² 쿼리νλ κ²μ μ£ΌμνκΈ°