Просто потому, что он принадлежит слишком многим языкам, и было бы нереально угадать язык, основанный на одном слове.Контекст всегда помогает.
Например:
import NaturalLanguage
let recognizer = NLLanguageRecognizer()
recognizer.processString("Islam")
print(recognizer.dominantLanguage!.rawValue) //Force unwrapping for brevity
печатает tr
, что означает турецкий.Это обоснованное предположение.
Если вы хотите, чтобы другие языки были также возможны, вы можете использовать languageHypotheses(withMaximum:)
:
let hypotheses = recognizer.languageHypotheses(withMaximum: 10)
for (lang, confidence) in hypotheses.sorted(by: { $0.value > $1.value }) {
print(lang.rawValue, confidence)
}
Какие печатные издания
tr 0.2332388460636139 //Turkish
hr 0.1371040642261505 //Croatian
en 0.12280254065990448 //English
pt 0.08051242679357529
de 0.06824589520692825
nl 0.05405258387327194
nb 0.050924140959978104
it 0.037797268480062485
pl 0.03097432479262352
hu 0.0288708433508873
Теперь вы можете определить приемлемый порог доверия, чтобы принять этот результат.
Коды языков можно найти здесь