본문 바로가기
코딩 공부/Swift

[Swift] 영어단어 추출하기 3 : 아는단어 제외하기

by JH-M 2023. 2. 1.

이번글은 [Swift] 영어단어 추출하기[Swift] 영어단어 추출하기 2 : 특수기호와 중복단어 제거하기 글에 이어서 영어단어를 추출할때 아는 단어를 제외하고 단어를 추출하는 내용입니다.

 

[Swift] 영어단어 추출하기

HTML 삽입 미리보기할 수 없는 소스 저에게 영어로 된 글을 읽을때 첫번째로 걸림돌이 되는 부분이 바로 글에 포함된 단어를 많이 모른다는 것입니다. 글을 읽기 전에 미리 단어를 학습하고 글을

jh-make.tistory.com

 

[Swift] 영어단어 추출하기 2 : 특수기호와 중복단어 제거하기

이번글은 [Swift] 영어단어 추출하기 글에 이어서 영어단어를 추출할때 특수기호와 중복 단어를 제외하고 단어를 추출하는 내용입니다. [Swift] 영어단어 추출하기 HTML 삽입 미리보기할 수 없는 소

jh-make.tistory.com

 

아는 단어 제외하고 영어단어 추출하기 코드

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 에 단어를 추가하지 않습니다. 결과적으로 내가 모르는 단어만 추출하게 됩니다.

댓글