이번글은 [Swift] 영어단어 추출하기와 [Swift] 영어단어 추출하기 2 : 특수기호와 중복단어 제거하기 글에 이어서 영어단어를 추출할때 아는 단어를 제외하고 단어를 추출하는 내용입니다.
아는 단어 제외하고 영어단어 추출하기 코드
import NaturalLanguage
let wordsIKnow = ["Apple", "Facebook", "TSLA", "Republic of Korea"]
let text = """
Predicate Predicate Predicate Format String Syntax, Republic of Korea😀⚽️💯 Facebook - Apple ~ TSLA Monalisa
"""
var wordList: Set<String> = []
let tagger = NLTagger(tagSchemes: [.nameType, .language, .lexicalClass, .tokenType, .nameTypeOrLexicalClass, .script, .lemma, .sentimentScore])
tagger.string = text
tagger.enumerateTags(in: text.startIndex..<text.endIndex, unit: .word, scheme: .nameType, options: [.omitPunctuation, .omitWhitespace, .joinNames]) { tag, range in
if let tag = tag {
let word = String(text[range])
let tagName = tag.rawValue
print("단어 : \(word) (\(tagName))")
if !["Other", "PersonalName"].contains(tagName),
!wordsIKnow.contains(word) {
wordList.insert(word)
}
}
return true
}
print(wordList)
아는 단어 리스트 변수
위 코드 3번줄을 참고해 주세요. let wordsIKnow 변수에 내가 아는 단어 리스트를 추가해 줍니다.
아는 단어 제외하기
위 코드 20번줄을 참고해 주세요. !wordsIKnow.contains(word) 코드는 내가 아는 단어 리스트에 포함되어 있다면 wordList 에 단어를 추가하지 않습니다. 결과적으로 내가 모르는 단어만 추출하게 됩니다.
댓글