(์ถํ ๋ง๋ค์ด์ง ์ ํ๋ธ ๋งํฌ ์ถ๊ฐ)
- ์ด๋ฏธ์ง, ํ ์คํธ, ํ ๋ฑ์ Create ML์ ํ์ต
- Core ML Model์ด ์ด๊ฒ์ ํตํด ๋ชจ๋ธ์ ์์ฑํ๊ฑฐ๋, ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ํ Core ML ํ์์ผ๋ก ๋ณ๊ฒฝ
- Core ML์์ Vision, ์์ฐ์ด ์ฒ๋ฆฌ, Speech, ์์ฑ ์ธ์ ๋ฑ์ ํด๊ฒฐ
- ์ฑ์ ์ ์ฉ
์ฝ๋ ์์ฑ ์์ด ๋งฅ์์ ๋ฐ๋ก Core ML ๋ชจ๋ธ์ ์์ฑํ๊ณ ํ์ต์ํฌ ์ ์๋ ๋๊ตฌ
๋จธ์ ๋ฌ๋์ ์ ํ ํ๋ซํผ์์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ ํ๋ ์์ํฌ
์์ฑ์ ๋ถ์ํด์ Text๋ก ๋ณํํด์ฃผ๋ STT (Speech-to-Text)
์์ฐ์ด ํ ์คํธ๋ฅผ ๋ถ์ํ๊ณ , ์ธ์ด๋ณ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ถ๋ก
*๊ฐ์ฒด๋ช ์ธ์: ์ธ์ด์ ํ๊น ์ ์ฌ์ฉํ์ฌ, ๋ฌธ์์ด์ ๊ฐ์ฒด๋ช ์ ์ง์
ML ๊ธฐ์ ์์ฒด๋ง์ ์ค์ ์ ์ผ๋ก ๋ณด์ฌ์ฃผ๊ธฐ๋ณด๋ค, ์ฐ๋ฆฌ ์๋น์ค์์ ์๋จ์ผ๋ก์จ ์ ํ์ฉํด๋ณด์๊ณ ์๊ฐ
์ฆ, ๋จธ์ ๋ฌ๋์ผ๋ก ๋ฐ์ดํฐ ๋ถ์๋ง์ ํ๊ธฐ๋ณด๋ค ์ค์ ์ฌ์ฉ์ฑ์ ์ ์ฉํ๋ ๊ฒ์ ์ด์
โ ML์์ ์ด๋ ํ ๋ถ๋ถ์ ์ฌ์ฉํด์ผ ์ฐ๋ฆฌ์ ๋ชฉ์ ์ ๋ฌ์ฑํ ์ ์์์ง๋ฅผ ๊ณ ๋ฏผ
โ ์ฌ์ฉ์๊ฐ ๊ฒช๊ณ ์๋ ์ด๋ ค์์ ํด๊ฒฐํด์ฃผ์๋ ์๊ฒฌ์์ ์์
์ผ๋ณธ์ธ๋ค์ ์ํ ๊ฐ๊ณ๋ถ ์ดํ์ด๋ผ๋ ์์ด๋์ด๊ฐ ๋์ถ
์์ฐ์ด ์ฒ๋ฆฌ๋ฅผ ์ด์ฉํ ์์ฑ ์ธ์๊ณผ, ๋ฌธ์ ์ธ์์ ์ด์ฉํ ์์์ฆ ์ธ์ ๊ธฐ์ ์ ํ
๐โโ๏ธ ๋ ์ด ๋์ ์์ํ ์๋ฃ๋ฅผ ์ฌ๊ธฐ ์ํด ํธ์์ ์ ๋ฐฉ๋ฌธํ ํ๋ฒํ ์ผ๋ณธ์ธ ๋ํ์ ์ ํค์..
ํ์๋๋ก ํ๊ธ์ผ๋ก ์๋ฃ๋ฅผ ๊ณ์ฐํ๊ณ ๋ฐ์ผ๋ก ๋์๋ค.
์์ง ์๊ณ ๊ฐ๊ณ๋ถ๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ดํ์ ์ผฐ๋๋ฐ,
๋์ด ๋ ์ ๋๋ก ๋์ด ๋ ์จ์ ๊ฑฐ๋ ๋ด์ญ, ๊ณ์ฐ ๋ฐฉ๋ฒ, ๊ธ์ก๊น์ง ์ผ์ผ์ด ๊ธฐ์ ํ๊ธฐ ๋๋ฌด๋ ๊ท์ฐฎ๋ค.
๊ฐ๊ณ๋ถ๋ ๊ทธ ๋ ๊ทธ ๋ ์จ์ผ ์ ์์ด๋ฒ๋ฆฌ๋๋ฐ..
๋ ํธ๋ฆฌํ๊ณ ์ฝ๊ฒ ๊ธฐ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํ๋ค!
ํ๊ธ ์ฌ์ฉ์ผ๋ก ๊ฐ๊ณ ๋ด์ญ ๊ธฐ๋ก ๊ณผ์ ์ด ๊ท์ฐฎ์ ์ผ๋ณธ์ธ๋ค์ด ์ฝ๊ฒ ๋ด์ญ์ ๊ธฐ๋กํ ์ ์๊ฒ ํด์ฃผ์!
- ์์ฑ ์ธ์์ ์ด์ฉํด ์์ฑ์ ๋ถ์ํด ํ ์คํธ๋ก ๋ณํํด์ค๋ค.
- ์์ฐ์ด ์ฒ๋ฆฌ๋ฅผ ์ด์ฉํ ํ ์คํธ ๋ถ์์ผ๋ก ๊ธฐ๋ก์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ค๋ค.
ํด๋น ์ ์ค์ผ์ด์ค์์ ์ฌ๋๋ค์ด ๊ฐ์น๋ฅผ ์ ๋๋ผ๊ฒ ํ๊ธฐ ์ํด์, ์ด ๊ธฐ์ ๋ง์ ์ด๋ค ํน์ง, ์ฅ์ ์ด ๋๋๋ฌ์ง๊ฒ ํ์ฉ๋๊ณ ์๋์?
โ ์ด๋ป๊ฒ ๋ง์ ํด๋ ์ฑ์ด ์์์ ์ธ์ํด์, ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํด์ค ์ฌ์ฉ์์ ์ ๋ ฅ์ด ๋ฒ๊ฑฐ๋กญ์ง ์๋ค.
์ด๋ค ์ ์ ์๊ฒ ์ด๋ค ๊ฐ์น, ๊ฐ๋ฅ์ฑ๊ณผ ํจ์ฉ์ด ์ ๋ฌ๋๋์?
โ ๋งค์ผ ๊ฑฐ๋ ๋ด์ญ์ ๊ธฐ๋กํ๊ณ ์ถ์๋ฐ ํ์ดํ์ด ๊ท์ฐฎ์ ์ ์ ๊ฐ ๋น ๋ฅด๊ณ ํธ๋ฆฌํ๊ฒ ์ ๊ทผํด์ ๊ธฐ๋กํ ์ ์๋ค.
CreateML์ ํตํด ์๋์ ๊ฐ์ ๋ฌธ์ฅ ๋ฐ์ดํฐ๋ฅผ ๋ผ๋ฒจ๋ง (์ฝ 300๋ฌธ์ฅ ํ์ต)
{
"tokens": ["12์5์ผ", "์", "๋์๊ด", "์์", "800์"],
"labels": ["Date", "0", "Location", "0", "Amount"]
},
{
"tokens": ["๏ผๆ๏ผ๏ผๆฅ", "ๅ้", "ใใ", "550ๅ", "ใใใฃใ"],
"labels": ["Date", "Location", "O", "Amount", "Verb"]
}CreateML๋ก ์์ฑํ MoneySpeechModel์ ์ฝ๋์ ์ ์ฉํ๋ Swift ์ฝ๋
func textToTagsJP(_ text: String) -> [String: [String]] {
do {
let mlModel = try MoneySpeechModelJP(configuration: MLModelConfiguration()).model
let customModel = try NLModel(mlModel: mlModel)
let customTagScheme = NLTagScheme("MoneySpeechModelJP")
let tagger = NLTagger(tagSchemes: [.nameType, customTagScheme])
tagger.string = text
tagger.setModels([customModel], forTagScheme: customTagScheme)
var tagsDict: [String: [String]] = [:]
tagger.enumerateTags(in: text.startIndex..<text.endIndex, unit: .word, scheme: customTagScheme, options: .omitWhitespace) { tag, tokenRange in
if let tag = tag {
let tagValue = tag.rawValue
let token = String(text[tokenRange])
if tagsDict[tagValue] != nil {
tagsDict[tagValue]?.append(token)
} else {
tagsDict[tagValue] = [token]
}
}
return true
}
for (key, tokens) in tagsDict {
tagsDict[key] = [tokens.joined()]
}
print(tagsDict)
return(tagsDict)
} catch {
print(error)
return [:]
}
}



