본문 바로가기

분류 전체보기

(177)
[Chapter 5] Part Of Speech Tagging (1) Part-of-Speech Tagging 필요 이유 단어와 주변 단어에 대한 정보를 제공해준다. 음성인식 모델, 자연스러운 발음을 할 수 있는 TTS 시스템, 정보 검색 Stemming 과정에서 활용될 수 있다. 자연스러운 TTS에 사용될 수 있는 예 [대문자는 악센트] content : CONtent [명사] conTENT [형용사] object : OBject [명사] obJECT [동사] discount : DIScount [명사] disCOUNT [동사] Part-of-Speech ? 영어권에서는 8 품사를 가지고 있으며, Closed Class와 Open Class로 분류할 수 있다. Closed Class는 단어의 집합이 고정되어 있는 품사들의 집합을 말한다. Open Class는 단어의 집합..
단어 수를 세기 위해 기준이 되는 용어 NLP에서는 Corpus(Corpora)의 단어 수를 사용한다. 단어를 셀 때 기준이 되는 것은 무엇일까? 문장에서 Punctuation을 단어로 취급 유무에 따라 한 문장을 이루고 있는 단어의 개수는 달라진다. Punctuation은 온점(.), 쉼표(,), 물음표(?) 등을 포함하며, 문장 간의 경계와 물음표같이 의미를 식별하는 기준으로 사용된다. He stepped out into the hall, was delighted to encounter a water brother. Punctuation 미포함 단어 개수 : 13개 Punctuation 포함된 단어 개수 : 15개 Disfluencies는 깨진 단어를 나타내는 Fragment와 영어의 uh와 um같은 단어를 나타내는 Filler(Fille..
[Chapter 4 ] N-gram 공부 정리 2022.05.15 (일) N-gram 장에서는 단어 예측과 예측에 대한 신뢰성을 다루고 있다. 단어 예측의 경우 전체 문장에서 예측 단어가 나올 확률을 구하는 방식을 사용한다. 이것을 매번 계산하는건 자원의 소모가 크다. 예측 단어 앞 N-1개의 단어를 통해 근사치의 확률을 구한다. 이를 통해 생성할 수 있는 모델이 N-gram이다. $P(w_{n}|w_{n-1}^{1})\approx P(w_{n}|w_{n-1}^{n-N+1})$ N-gram은 N의 개수에 따라 Unigram(1), Bigram(2), Trigram(3)등으로 분류가 된다. N의 개수에 따라 모델의 정확도는 올라가지만 계산 속도는 느려진다. 이처럼 정확도와 계산속도가 Trade-Off 관계이기에, 일반적으로 N을 5이하의 값으로 설정하..
[계획] 2022년 4개월을 보내고, 앞으로 계획 NLP라는 막연한 목표로 나아가게 된 계기는 대단하지 않다. 개발에 대해 관심을 갖게 되었을 때 국문과를 다녔으며, 전과를 생각했을 때 NLP를 하시는 좋은 교수님을 만났고 멋있어 보였기 때문이다. 생각해보면 전공을 살려 멋있어 보이는 걸 하고 싶은 대책 없는 마음이었다. 30살이 돼서 돌아보니, NLP에 대한 지식은 하나도 공부하지 않았다. 졸업 후 취업 준비, 직장 일로 바빴다고 핑계는 많이 늘어놓고 싶은 심정이지만 내가 게을렀기 때문이다. 지금은 능력없는 고집을 버리기가 무서워서인지 대학원 준비라는 명목으로 도망을 치려고 하는 것 같다. 이전과 같이 뚜렷한 목표와 열정, 노력도 없는 상태에서 말이다. 그러다 보니 NLP, 수학, 대학원 준비에 대한 공부는 하지 않고 사이드 프로젝트, 개발도서 스터디..
[RN] Android Permission "never_ask_again"일 때 권한 허락 1. Permission Never Ask Agian 문제 음성 녹음 기능 구현 중 Mic의 권한이 never_ask_again이며 dneined 상태라는 것을 알게됐다. App에서 권한 재요청을 할 수 없었고 이로인해 기능 테스트를 할 수가 없었다. 코드를 통해 다시 요청할 수 있는 방식을 찾을 수 없어 Simualtor에서 App의 권한을 주는 방법을 사용하기로 했다. App Permission은 Android Studio Simulator 설정 창에 들어가 변경할 수 있다. Setting > App & notifications > Permission manager 경로로 들어가면 Android의 여러 권한을 각각 설정할 수 있다. 2. Microphone 권한 부여 Permission manager..
[RN] React Native Recording Player stopReocrder 메서드 동작 문제 1. 문제 발생 사이드 프로젝트로 진행하고 있는 인생 퍼즐에서 음성 녹음 기능 구현 중 react-native-record-player의 stopRecorder 메서드가 동작하지 않는 문제 발생했다. stopRecorder의 결과는 녹음이 이미 중지되었다고 떴으나 녹음 시간 및 파일의 크기는 계속 증가했다. 1. 발생 코드 const PuzzleWritingVoice = (): JSX.Element => { const audioRecorderPlayer = new AudioRecorderPlayer(); const onStartRecord = async function () { const path = 'sound.m4a'; const audioSet = { AudioEncoderAndroid: Audio..
객체 지향 설계 - SOLID(2) 3. LSP(리스코프 치환 원칙) LSP는 프로그램 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다는 원리이다. 위반할 경우 사용자가 의도되지 않는 기능을 불러다가 사용할 수 있다. 1) 위배되는 코드 - 하위 클래스의 인스턴스가 정확성을 깨뜨리는 경우 - 타조는 날수 없는 새이기 때문에 상위 인터페이스 Bird의 fly를 수행 하지 못함 (정확성 깨짐) static void Main { Bird bird = new Ostrich(); bird.fly(); } public interface Bird{ public void fly(); } public class Pigeon implement Bird{ public void fly(){ 구현 } } public cl..
객체 지향 설계 - SOLID(1) SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 앞글자만 따서 소개한 것이다. SRP, OCP, LSP, ISP, DIP를 포함하고 있다. 1. SRP(단일 책임 원칙) SRP는 한 클래스가 하나의 책임만을 가져야 한다는 원칙이다. Clean Code 책을 참고했을 때 하나의 책임이란 클래스를 수정해야 할 이유가 한 가지일 때라고 한다. 1) SRP 위배되는 코드 - 클래스를 수정해야 할 경우가 2가지 이상 - Component 관리에 대한 정보를 변경할 때 수정 - Version 정보에 대해 변경할 때 수정 public class SuperDashboard{ // Component 관리 public Component getLas..