scikit learn
scikit learn은 supervise learning, unsupervise learning을 지원하는 머신러닝 라이브러리다.
데이터분석을 위한 알고리즘들을 지원해주는데,
스팸 메일 필터링을 위해서 Naive Bayes Classifier을 사용하기로 하였다.
NB도 Multinomial, 베르누이, 가우시안 등 여러 방법을 지원하는데,
스팸 메일 필터링에 사용하려고 다항 Multinomial NB를 사용하였다.
Classification 말고도, Clustering, Dimensionality Reduction 을 위한 알고리즘들이 미리 구현되어 있으니 필요하다면 가볍게 가져가 사용할수 있을 거같다.
Stemming과 Lemmatization
Stemming은 뒤의 몇 글자를 지우거나 바꿔 의미있는 요소로 바꾸는 것이고 이것은 따라서 잘못된 의미나 철자로 변할수가 있다.
Caring -> Car 로 잘못된 요소로 변함 (Care가 올바른 변환)
Lemmatization은 의미있는 base 형태로 바꿔주는데, 하나의 단어가 여러 base를 가진 경우도 있을텐데, 그 경우에는 Part of Speech(품사)를 통해서 보다 정확한 결과를 지원해줄 수 있다.
(Stripes 같은 경우에 동사라면 Stripe, 명사라면 Strip이 올바른 원형)
Lemmatization 같은 경우 Stemming보다 정확성은 언제나 높은데, 만약 연산의 측면에서는 Stemming이 더 장점이 있다. 대부분의 경우에는 Lemmatization을 하지만 속도 측면에서 이점을 얻고 싶다면 Stemming을 고려해볼만 하다.
NLTK에서는 WordNetLemmatizer를 기본으로 지원해주고
import nltk
from nltk.stem import WordNetLemmatizer
wordnet_lemmatizer = WordNetLemmatizer()
text = "studies studying cries cry"
tokenization = nltk.word_tokenize(text)
for w in tokenization:
print("Lemma for {} is {}".format(w, wordnet_lemmatizer.lemmatize(w)))
이런 식으로 사용할 수 있다.
FFMPEG
알게 된 옵션들과 해결햇던 것을 적어보자면
-pix_fmt yuv420p
픽셀 포맷을 yuv420p로 설정해주는 옵션
YUV는 Color image pipeline에 사용되는 색 인코딩 시스템이다.
FFMPEG의 경우 디폴트 값은 yuv444p로 설정되어 있는데 이것을 지원하지 않는 브라우저, 동영상 플레이어가 많으므로 범용성을 위해서는 픽셀 포맷을 yuv420p로 설정해주는 것이 좋다.
-c:a
-c:v
각각 오디오와 비디오 코덱을 지정하는 옵션이다.
-c:a copy 에서 copy는 다른 인코딩을 하지 않고 기존 파일 그대로 복사한다.
-b:a
-b:v
오디오, 비디오의 비트레이트를 지정하는 옵션이다.
생긴 문제
이미지를 mp3와 합쳐서 mp4로 만드는 커맨드를 짰었는데, 비디오 쪽에서 재생이 안되었었다.
정확히 말하자면 비디오는 비트레이트가 0으로 멈춰있고 오디오쪽만 정상적으로 나오는 상황이었다.
이것이 문제였던 이유는 이런 비디오를 제대로 읽어올수 없는 경우가 있었기 때문이었는데,
-loop 1
라는 커맨드를 통해서 해결할 수 있었다.
단순히 image를 올려놓기만 해서는 비디오가 재생되는 것이 아니고, 이것을 loop해줘야 정상적인 비트레이트로 비디오쪽이 재생되는 효과가 나온다.
나같은 경우에는 어차피 하나의 이미지만 사용하므로 낮은 프레임레이트를 사용하여 최대한 연산을 적게하도록 하였다.
'TIL' 카테고리의 다른 글
TIL 2021-11-25 Multilayer Perceptron, git cherrypick, rebase, react-query invalidateQueries (0) | 2021.11.25 |
---|---|
TIL 2021-11-22 Firebase 9, webpack-bundle-analyzer (0) | 2021.11.22 |
TIL 2021-11-17 NAT, WOFF, Tailwind Custom Font 적용 (0) | 2021.11.18 |
TIL 2021-11-16 ARP, cross-env, Tailwind CSS with Webpack (0) | 2021.11.17 |
TIL 2021-11-15 ICMP 2, Proxy ARP (0) | 2021.11.15 |