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

[Swift] 영어단어 추출하기

by JH-M 2022. 3. 21.

저에게 영어로 된 글을 읽을때 첫번째로 걸림돌이 되는 부분이 바로 글에 포함된 단어를 많이 모른다는 것입니다. 글을 읽기 전에 미리 단어를 학습하고 글을 읽는 다면 훨씬 더 영어로된 글을 이해하기 쉬울 것입니다. 일일히 손수 영어단어를 정리하기 어렵기 때문에 코딩으로 간편하게 영어단어를 분류한다면 훨씬 더 공부하기가 편해질 것입니다. 맥을 사용하면 누구나 무료앱인 Xcode 를사용하실수 있고 Playground 라는 도구를 활용해서 간편하게 Swift 프로그래밍을 해볼 수 있습니다. 

 

1. 새로운 Playground 프로젝트 시작하기

Xcode 를 실행합니다.

 

Playground 프로젝트를 생성합니다.

메뉴 File → New → Playground...

 

Blank 템플릿을 선택하고 Next 버튼을 눌러서 새로운 플레이그라운드 프로젝트를 생성합니다.

 

Playground 의 첫 화면입니다.

 

2. 단어 추출코드 실행하기

아래 코드를 입력하고 실행버튼을 눌러서 코드를 실행합니다. 

let text 변수에 공부하고 싶은 영어 문장을 입력해 단어를 분석해 보세요.

import UIKit
import NaturalLanguage

let text = """
 	<--- 여기에 영어문장을 입력해 주세요 --->
"""

let tagger = NLTagger(tagSchemes: [.nameType])
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 = text[range]
        let tagName = tag.rawValue
        print("단어 : \(word) (\(tagName))")
    }
    return true
}

 

tagSchemes 에 따라서 결정되는 tagName 은 단어에 대한 정보를 확인할 수 있습니다. 태그 스킴이 무엇이냐에 따라서 단어에 대한 정보를 다르게 분석해 줍니다. 예를 들어 Seoul 은 태그 이름이 PlaceName 로 분류되고, Abraham Lincoln 은 PersonalName 으로 분류됩니다. 다만, 모든 단어가 정확하게 분류되는 것은 아닙니다. 자세한 내용은 아래 링크를 확인해 주세요. 

 

https://developer.apple.com/videos/play/wwdc2019/232/

 

Advances in Natural Language Framework - WWDC19 - Videos - Apple Developer

Natural Language is a framework designed to provide high-performance, on-device APIs for natural language processing tasks across all...

developer.apple.com


코드를 사용해서 영단어를 분류하면 편한점은 시간을 절약할 수 있다는 것입니다. 그리고 중복된 단어를 분류할때 헷갈릴 수 있는데 이런 문제를 깔끔하게 해결해줍니다. 

댓글