NER 개체명 인식을 통해서
NER 안에 단어들이 다 있다
단어를 잡고 이 단어가 어떤 객체명인지 태그해줌
메타데이터 중에 단어의 특징을 태깅
나는 밥을 먹었다 -> 주어/목적어/동사
여러가지 객체명들 중에 목적어, 명사는 태그의 기질이 있을 거다라는 가정을 세워놓고 시작
어차피 메타데이터 같은 느낌의 태깅으로 기술이 발전되어 있으니 일종의 메타데이터셋이 이미 학습이 되어있는 알고리즘을 가져다 써서 이것이 결론으로 내주는 것들 중에 이 결론들은 우리가 태그로 쓸만하다 라는 가정을 놓고 시작
그런 의미에서 NER을 한번 구현해보자 (숙제)
파이썬은 다 모듈이 되어 있음
NER도 모듈이 있다
시퀀스 태그라는 게 있다. 마이너는 Flair 시퀀스 태거라는 태깅 모델을 가져다 씀
이 태깅 메소드들 중에 NER 방식으로 태깅을 하는 메소드가 있다
이걸로 태거 하나 만들어주고 로드해와서 태거.(점)
안에다가 스트링을 ner이라고 넣어주면 알아서 NER이 된다
다만 NLP에서 가장 큰 문제는 여러가지 모듈들을 쓸 수 밖에 없다는 것
마이너는 standford core nlp라는 nlp모듈, gensim, word2vec, flair 이런 태거용으로 symspellpy, Smooth Inverse Frequency (SIF) Ranking (태그들 중에 얼마나 중요한지 랭킹 나눠주는, TFIDF 기반으로 하는) 이런걸 다쓰고 있다
문제는 이것들끼리 호환이 얼마나 되느냐이다
지금까지 사용했던 모델들이나 메소드들이 있을텐데 거기서 사용했던 벡터들이랑 여기서 주고있는 벡터들이랑 호환이 되는지 체킹을 항상 해야함
그래서 NLP를 할 때는 'NER을 해와라' 라고 하면 기존에 있는 파일에다 얹어서 계속 하는것을 추천
버전이 하나가 기준이 되면 나머지는 그 기준에 맞춰주면 된다. (마이너 연구 때 사용했던 버전에 맞출 필요가 없다)
지금 하고 있던 NLP 파일이 있으면 그 파일에서 얘가 얹어지는지
그리고 여기서부터 OS의존성이 심해진다
그래서 저번에 받은 ec2 안에서 하는게 좋다
from flair.models import SequenceTagger
위의 코드로 구글링하면 많이 나옴
데이터는 NLTK로 다 다운로드 받아서 씀
호환되는지 체킹하면서 하는 게 가장 중요
NLP가 크게 두 단계가 있음
1. 완성된 것을 어떻게 잘 가져다쓰느냐
2. 이런걸 어떻게 만드느냐 (이 레벨은 어렵) - 언어학, 딥러닝 동시에 필요 -> 전문가에게 맡기자
1번 정도해도 현업에서 뛰는데 충분히 무리가 없다
'기업 프로젝트' 카테고리의 다른 글
[AWS] 윈도우10에서 pem 파일 사용해 aws ec2 접속 (ssh) (0) | 2023.10.17 |
---|---|
[AI/딥러닝] LLM이란 (0) | 2023.10.16 |