s t u d y . . ๐Ÿง/์ด๊ฒƒ์ €๊ฒƒ

[์ถ”์ฒœ ์‹œ์Šคํ…œ] ๋ฉ”๋‰ด ์ถ”์ฒœ ์‹œ์Šคํ…œ (3)

H J 2023. 4. 11. 17:26

์ €๋ฒˆ ๊ธ€ ์ดํ›„๋กœ ์‹œ๊ฐ„์ด ์ข€ ํ˜๋ €๋‹ค..!

[์ถ”์ฒœ ์‹œ์Šคํ…œ] ๋ฉ”๋‰ด ์ถ”์ฒœ ์‹œ์Šคํ…œ (2)

์ €๋ฒˆ ๊ธ€์—์„œ ์ด์–ด์ง‘๋‹ˆ๋‹ค ~ ์ €๋ฒˆ์— ์–ด๋–ค ๊ฑด ๊ฐ™์€ ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ์ œ๋Œ€๋กœ ๋ฝ‘ํžˆ๋Š”๋ฐ ์–ด๋–ค ๊ฑด ์•ˆ ๋ผ์„œ ์—ด์‹ฌํžˆ ์„œ์น˜ํ•ด๋ดค๋”๋‹ˆ...! CountVectorizer๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ํ•œ ๊ธ€์ž์ธ ๊ฒฝ์šฐ์—๋Š” ๋”ฐ๋กœ ์นด์šดํŠธ๋ฅผ ํ•ด์ฃผ์ง€ ์•Š๋Š”

hjkim5004.tistory.com

์ผ๋‹จ ๋ฐ์ดํ„ฐ์…‹์— ์—†๋Š” ๋ฉ”๋‰ด๋ช…์ด ๋“ค์–ด์™”์„ ๋•Œ ์นดํ…Œ๊ณ ๋ฆฌ๋‚˜ ๋ฉ”๋‰ด๋ช…์— ๋”ฐ๋ผ ๋ฉ”๋‰ด๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋‹ค!
(์œ„ ๊ธ€์—์„œ๋Š” ๋ฐ์ดํ„ฐ์…‹์— ์žˆ๋Š” ๋ฉ”๋‰ด์™€ ์œ ์‚ฌํ•œ ๋ฉ”๋‰ด๋“ค์„ ์ถ”์ฒœ)
 
NLP ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ฑ—๋ด‡ api๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•˜๋ ค๋‹ค๊ฐ€ ์ œ์ผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ทœ์น™๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค
(์‚ฌ์‹ค ๋ฉฐ์น  ๋’ค์— ๋ฐ”๋กœ chatGPT API ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝ๋๋‹ค ํžˆํžˆ / ๊ทผ๋ฐ ์งฑ ์‰ฌ์›Œ)
 
๊ทธ๋ž˜์„œ ์ผ๋‹จ ์ƒˆ๋กญ๊ฒŒ ์ž…๋ ฅ๋œ ๋ฉ”๋‰ด๋ช…์— ๋Œ€ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๊ทœ์น™๊ธฐ๋ฐ˜์œผ๋กœ ์˜ˆ์ƒํ•ด์ค˜์•ผ ํ•œ๋‹ค
๋ฐ์ดํ„ฐ์…‹์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋ช…('๋ฐฅ', '๊ตญ'๊ณผ ๊ฐ™์€ ์นดํ…Œ๊ณ ๋ฆฌ๋ช…)์ด ํฌํ•จ๋œ๋‹ค๋ฉด ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ๋กœ df์— ์ƒˆ๋กœ์šด ํ–‰์œผ๋กœ ์ถ”๊ฐ€ !
 
์˜ˆ๋ฅผ ๋“ค๋ฉด "๋ฏธ์—ญ๊ตญ"์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฉ”๋‰ด๊ฐ€ ๋“ค์–ด์˜จ ๊ฒฝ์šฐ ๊ธฐ์กด ๋ฐ์ดํ„ฐ์…‹์˜ ์นดํ…Œ๊ณ ๋ฆฌ์ธ "๊ตญ"์ด ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์— df์— "๊ตญ"์ด๋ผ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๊ฐ€์กŒ๊ณ  ์Œ์‹๋ช…์ด "๋ฏธ์—ญ๊ตญ"์ธ ํ–‰์„ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค
 
๊ทธ ํ›„๋กœ๋Š” "๋ฏธ์—ญ๊ตญ"๊นŒ์ง€ ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ์…‹์—์„œ ์œ ์‚ฌ๋„ ๊ณ„์‚ฐ์„ ํ•ด์ฃผ๊ณ  (๋ฏธ์—ญ๊ตญ์€ ์ž…๋ ฅ๋œ ๋ฉ”๋‰ด๋ช…์ด๊ณ  ๊ธฐ์กด ๋ฐ์ดํ„ฐ์…‹์—๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์—) "๋ฏธ์—ญ๊ตญ"์„ ์ œ์™ธํ•œ ๋ฉ”๋‰ด๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค!
 
 
๊ทธ๋ฆฌ๊ณ  ๊ฐ€์ƒ์˜ ๊ฐ€๊ฒŒ! ๊น€๋ฐฅ์ฒœ๊ตญ ๋ฉ”๋‰ดํŒ์œผ๋กœ ์‹คํ–‰์„ ํ•ด๋ณด์•˜๋‹ค

์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•ด์„œ ios์—์„œ ์ œ๊ณตํ•˜๋Š” ํ…์ŠคํŠธ ์ธ์‹ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์„œ ์—‘์…€ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ , csv๋กœ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋‹ค

 
(์šฐ๋ฆฌ ์„œ๋น„์Šค๋Š” ๋ฐฐ๋ฏผ์ฒ˜๋Ÿผ ๊ฐ€๊ฒŒ ์‚ฌ์žฅ๋‹˜๊ป˜์„œ [๊ตฌ๋ถ„1], [๊ตฌ๋ถ„2], [์Œ์‹๋ช…]์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ)
 
์ด๋•Œ, ์•ž์—์„œ ์˜ˆ์‹œ๋กœ ๋“  ๋ฏธ์—ญ๊ตญ์„ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด..! ๊น€๋ฐฅ์ฒœ๊ตญ์—๋Š” "๊ตญ" ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๊ฐ€์ง„ ๋ฉ”๋‰ด๊ฐ€ 3๊ฐœ ๋ฟ์ด๋ผ.. ์ด๋ ‡๊ฒŒ ๋–ก๋งŒ๋‘๊ตญ, ๋งŒ๋‘๊ตญ, ๋–ก๊ตญ์„ ์ถ”์ฒœํ•ด์ฃผ๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค

๋ฏธ์—ญ๊ตญ ์ž…๋ ฅ

(๊ตญ, ์ฐŒ๊ฐœ๋ฅผ ๊ฐ™์€ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋ด์•ผ ํ•˜๋‚˜ ๊ณ ๋ฏผ ์ค‘..!)
 


์ผ๋‹จ ์œ„ ๋‚ด์šฉ์ด๋ž‘ ๋‹ค๋ฅธ ๋‚ด์šฉ์ด๊ธด ํ•œ๋ฐ,
 
์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ๋ฉ”๋‰ด๋ฅผ ๋งํ–ˆ์„ ๋•Œ 1) ๋ฉ”๋‰ดํŒ๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฉ”๋‰ด๋ช…์ด ์žˆ๋Š” ๊ฒฝ์šฐ, 2) ๋ฉ”๋‰ดํŒ์— ์œ ์‚ฌํ•œ ๋ฉ”๋‰ด๋ช…์ด ์žˆ๋Š” ๊ฒฝ์šฐ, 3) ๋ฉ”๋‰ดํŒ์— ์œ ์‚ฌํ•œ ๋ฉ”๋‰ด๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋‚˜๋‰˜๊ฒŒ ๋œ๋‹ค!

menu_name = "๋ฏธ์—ญ๊ตญ" ## ์ž…๋ ฅ

lst = []

if (True in (data['์Œ์‹๋ช…'] == menu_name).values): # ์ž…๋ ฅ๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฉ”๋‰ด๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ
		print("์ผ์น˜ํ•˜๋Š” ๋ฉ”๋‰ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.")
		lst.append(menu_name)
		
else : # ์ž…๋ ฅ๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฉ”๋‰ด๋ช…์ด ์—†๋Š” ๊ฒฝ์šฐ
	lst = recommend_menu(data, menu_name)
	if (len(lst) != 0):
		print("์ผ์น˜ํ•˜๋Š” ๋ฉ”๋‰ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ถ”์ฒœ ๋ฉ”๋‰ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.")

if (len(lst) == 0):
	print("๋ฉ”๋‰ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.")
else :
	lst = remove_in_list(lst)
	print(lst) ## ์ฃผ๋ฌธ ๋ฉ”๋‰ด ์ „์†ก ํ•„์š”

๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€ ์ƒํ™ฉ์„ ๋‚˜๋ˆ„์–ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋‹ค !!!
 
์ด๋ฒˆ ์ฃผ ์บก์Šคํ†ค๋„ ๋ !!!
 


์ด์ œ ์‚ฌ์šฉ์ž ํ‰๊ฐ€์— ๋”ฐ๋ฅธ ์ถ”์ฒœ ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค
 

๋ž์ฝ” ๊ท€์—ฌ์›Œ !!!!!!!!!!!!! ๐Ÿฉต๐Ÿฉต๐Ÿฉต๐Ÿฉต๐Ÿฉต๐Ÿฉต