ML Kit를 사용하면 텍스트 문자열의 언어를 식별할 수 있습니다. 문자열의 가능한 모든 언어의 문자열과 가장 가능성이 높은 언어를 가져올 수 있습니다.
ML Kit는 네이티브 스크립트에서 100개 이상의 언어로 된 텍스트를 인식합니다. 또한 아랍어, 불가리아어, 중국어, 그리스어, 힌디어, 일본어, 러시아어로도 로마자 텍스트를 인식할 수 있습니다. 지원되는 언어 및 스크립트의 전체 목록을 참고하세요.
사용해 보기
- 샘플 앱을 사용해 보고 이 API의 사용 예를 확인하세요.
시작하기 전에
- Podfile에 다음 ML Kit 포드를 포함합니다.
pod 'GoogleMLKit/LanguageID', '3.2.0'
- 프로젝트의 포드를 설치하거나 업데이트한 후
.xcworkspace
를 사용하여 Xcode 프로젝트를 엽니다. ML Kit는 Xcode 버전 12.4 이상에서 지원됩니다.
문자열의 언어 식별
문자열의 언어를 식별하려면 LanguageIdentification
의 인스턴스를 가져온 후 문자열을 identifyLanguage(for:)
메서드에 전달합니다.
예를 들면 다음과 같습니다.
Swift
let languageId = NaturalLanguage.languageIdentification() languageId.identifyLanguage(for: text) { (languageCode, error) in if let error = error { print("Failed with error: \(error)") return } if let languageCode = languageCode, languageCode != "und" { print("Identified Language: \(languageCode)") } else { print("No language was identified") } }
Objective-C
MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentification]; [languageId identifyLanguageForText:text completion:^(NSString * _Nullable languageCode, NSError * _Nullable error) { if (error != nil) { NSLog(@"Failed with error: %@", error.localizedDescription); return; } if (![languageCode isEqualToString:@"und"] ) { NSLog(@"Identified Language: %@", languageCode); } else { NSLog(@"No language was identified"); } }];
호출이 성공하면 BCP-47 언어 코드가 완료 핸들러로 전달되어 텍스트의 언어를 표시합니다. 언어를 확실하게 감지할 수 없는 경우 und
(미확인) 코드가 전달됩니다.
기본적으로 ML Kit는 신뢰도 값이 0.5 이상인 언어를 식별하는 경우에만 und
외의 값을 반환합니다. LanguageIdentificationOptions
객체를 languageIdentification(options:)
에 전달하여 이 기준을 변경할 수 있습니다.
Swift
let options = LanguageIdentificationOptions(confidenceThreshold: 0.4) let languageId = NaturalLanguage.languageIdentification(options: options)
Objective-C
MLKLanguageIdentificationOptions *options = [[MLKLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4]; MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentificationWithOptions:options];
가능한 문자열 언어 가져오기
문자열의 언어일 가능성이 있는 언어의 신뢰도 값을 가져오려면 LanguageIdentification
의 인스턴스를 가져온 후 문자열을 identifyPossibleLanguages(for:)
메서드에 전달합니다.
예를 들면 다음과 같습니다.
Swift
let languageId = NaturalLanguage.languageIdentification() languageId.identifyPossibleLanguages(for: text) { (identifiedLanguages, error) in if let error = error { print("Failed with error: \(error)") return } guard let identifiedLanguages = identifiedLanguages, !identifiedLanguages.isEmpty, identifiedLanguages[0].languageCode != "und" else { print("No language was identified") return } print("Identified Languages:\n" + identifiedLanguages.map { String(format: "(%@, %.2f)", $0.languageCode, $0.confidence) }.joined(separator: "\n")) }
Objective-C
MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentification]; [languageId identifyPossibleLanguagesForText:text completion:^(NSArray* _Nonnull identifiedLanguages, NSError * _Nullable error) { if (error != nil) { NSLog(@"Failed with error: %@", error.localizedDescription); return; } if (identifiedLanguages.count == 1 && [identifiedLanguages[0].languageCode isEqualToString:@"und"] ) { NSLog(@"No language was identified"); return; } NSMutableString *outputText = [NSMutableString stringWithFormat:@"Identified Languages:"]; for (MLKIdentifiedLanguage *language in identifiedLanguages) { [outputText appendFormat:@"\n(%@, %.2f)", language.languageCode, language.confidence]; } NSLog(outputText); }];
호출이 성공하면 IdentifiedLanguage
객체 목록이 연속 핸들러에 전달됩니다. 각 객체에서 언어의 BCP-47 코드와 문자열이 해당 언어에 있다는 신뢰도를 얻을 수 있습니다. 이 값은 전체 문자열이 지정된 언어에 있음을 나타냅니다. ML Kit는 단일 문자열에서 여러 언어를 식별하지 않습니다.
기본적으로 ML Kit는 신뢰도 값이 0.01 이상인 언어만 반환합니다. LanguageIdentificationOptions
객체를 languageIdentification(options:)
에 전달하여 이 기준을 변경할 수 있습니다.
Swift
let options = LanguageIdentificationOptions(confidenceThreshold: 0.4) let languageId = NaturalLanguage.languageIdentification(options: options)
Objective-C
MLKLanguageIdentificationOptions *options = [[MLKLanguageIdentificationOptions alloc] initWithConfidenceThreshold:0.4]; MLKLanguageIdentification *languageId = [MLKLanguageIdentification languageIdentificationWithOptions:options];
이 기준을 충족하는 언어가 없으면 목록에 und
라는 항목이 하나 있습니다.