티스토리 뷰
iOS에서는 자연어 처리와 관련 된 프레임워크, NaturalLanguage 프레임워크를 지원합니다. NaturalLangauge 프레임워크 내에서는 자연어처리 및 분석과 관련된 많은 기능들을 지원합니다.
오늘은 NaturalLangauge 프레임워크에서 지원하는 객체 중 하나인 NLLanguageRecognizer 객체에 대한 활용법을 알아보겠습니다.
NaturalLanguage
자연어
NLLanguageRecognizer를 사용하기 위해서는 자연어 처리 및 분석을 지원하는 NaturalLanguage 프레임워크를 import 해야 합니다. 언어분석을 할 문자열, word 도 추가해줍니다.
// 자연어처리를 위해 사용하는 Framework, NaturalLanguage
import NaturalLanguage
// 자연어 처리 대상 단어, apple
let word = "안녕하세요."
NLLanguageRecognizer
언어 인식기 객체
NSLanguageRecognizer는 텍스트에 대한 언어를 감지하고 그에 대한 분석결과를 제공합니다. NaturalLanguage를 import한 뒤 NSLanguareRecognizer 또한 사용해보도록 하겠습니다.
문자열의 언어 분석결과 얻기
NLLanguageRecognizer 객체에는 타입메서드인 dominantLanguage 메서드가 있습니다. 해당 타입메서드는 객체타입에 직접 접근하여 사용 가능하며, 문자열을 인자로 받아 특정 문자열의 가장 유력한 사용언어를 분석하여 결과 값을 제공합니다.
아래코드는 타입메서드, NLLanguageRecognizer를 통해 가장 유사도가 높은 나라가 어딘지를 알려줍니다.
// NSLanguageRecognizer의 dominantLanguage 타입메서드를 통해 특정 문자열과 가장 유사한 언어를 알아낼 수 있습니다.
if let langauge = NLLanguageRecognizer.dominantLanguage(for: word) {
// 식별이 되었다면 해당 문자열의 가장 유력한 언어를 알려줍니다.
print("Detected \(langauge.rawValue.uppercased()) as dominant langauge : \(word)")
} else {
print("Could not recognize langauge for \(word)")
}
언어 분석을 좀 더 세부화해서 사용하고 싶다면, NLLanguageRecognizer 객체를 인스턴스화해서 활용할 수도 있습니다. 예를들면 분석결과로 나올 언어의 범위를 제한하거나, 분석결과의 확률 순으로 정보를 얻어 활용할 수도 있습니다.
let word2 = "Hello I'm MungGu see you bye"
// NSLanguageRecognizer 객체를 인스턴스화 합니다.
let languageRecognizer = NLLanguageRecognizer()
// word2 문장에 대한 언어를 분석합니다.
languageRecognizer.processString(word2)
// languageConstraints를 통해 분석 결과로 나올 언어의 범위를 제한할 수 있습니다.
languageRecognizer.languageConstraints = [.english, .spanish, .simplifiedChinese]
// 분석된 결과, 언어 유사도의 확률 순 최대 갯수를 지정해서 정보를 얻어올 수도 있습니다.
let langaugeProbabilities = languageRecognizer.languageHypotheses(withMaximum: 3)
// 분석된 결과를 유사도 내림차순으로 확인할 수 있습니다.
for (langauge, probability) in langaugeProbabilities {
print("Detected \(langauge.rawValue.uppercased()), probability \(probability)")
}
언어 유사도를 분석할 문자열을 word2 변수에 준비했습니다.
NSLanguageRecognizer 객체 인스턴스를 생성하고 word2를 인스턴스의 processString 메서드 인자값으로 두어 언어를 분석합니다.
languageHypotheses 메서드로 특정 갯수의 언어 유사도 결과 흭득하거나 분석 결과로 나올 언어의 범위를 langaugeConstraints로 제한할 수도 있습니다.
이처럼 iOS의 NaturalLanguage 프레임워크에서는 자연어처리를 iOS 운영체제 내에서 간편하게 사용할 수 있도록 지원하고 있습니다.
오늘은 NaturalLanguage 프레임워크 기능 중 하나인 NLLanguageRecognizer 객체를 통해 특정 문장이 어느나라 언어인지를 분석하는 방법을 알아보았습니다. 감사합니다.
개발자 문서 참고자료
NLLanguageRecognizer
NaturalLangauge
'iOS 개발 > 개발자문서 정보' 카테고리의 다른 글
iOS 앱에 Core ML 모델 통합해서 사용하는 방법 (0) | 2020.05.31 |
---|---|
iOS앱에 사용할 CoreML Model 얻고 활용하기 (0) | 2020.05.30 |
iOS Vision, VNImageRequestHandler 개발자문서 개요 (0) | 2020.05.24 |
iOS Swift Dictionary, 딕셔너리 개발자 문서 개요 (2) | 2020.05.10 |
iOS ML모델로 이미지 내 사람 관절 및 신체동작 감지하기 (0) | 2020.05.05 |
- Total
- Today
- Yesterday
- CoreML
- SwiftUI
- 백준알고리즘
- swift 기초
- uikit
- 프로토콜
- createML
- 알고리즘
- 컬렉션
- swift언어
- 백준swift
- 프로그래머스swift
- 프로그래머스
- 부스트코스
- 김프매매
- Collection
- swift reduce
- 자연어처리
- swift string
- swift
- publisher
- Protocol
- 스위프트
- swift문제
- swift 문자열
- 알고리즘문제
- swift알고리즘
- Swift 알고리즘
- 개발자문서
- ios
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |