본문 바로가기

NER2

spaCy 사용하기 - Training Models spaCy의 훈련 로직은 대충 아래의 그림과 같다. training data는 text와 label로 구성이 되어져 있고, Model에서는 해당 text에 대해 label을 예측한다. 정답과 비교해서 차이만큼 gradient를 적용하고 이런식으로 반복함으로써 모델을 update하는 구조이다. spaCy에서는 GoldParse라는 class를 지원하는데 이걸 이용해서 모델을 학습할 수도 있다. entity 학습의 경우 BILUO scheme를 따른다. 또한 학습 성능을 향상시키기 위해 dropout을 적용할 수도 있다. 아래는 간단하게 모델을 업데이트 하는 코드를 설명하고 있다. english 타입의 빈 모델을 만들고, training data를 적당히 섞어 준 다음에 data를 1개씩 가져와서 모델을 업.. 2018. 4. 24.
spaCy 사용하기 - Named Entities spaCy를 사용해서 다양한 형태의 entity들을 식별해 볼 수가 있다. entity를 document 레벨이 아닌 token 레벨로도 접근 할 수가 있다. 위의 결과 값에서 B는 entity의 시작을 나타내고 O는 entitiy의 바깥, I는 entity 내부를 나타낸다. entity 정의가 되어 있지 않을 때는 새롭게 등록해 줄 수도 있다.(쓰다 보니 예제가.... -_-;; 따로 정치색이 있는 것은 아니고 아시는 분이 동명이인이라 놀리는 차원에서 쓴 예제예요.. 문제가 된다면 삭제하겠습니다..) 그런데 위와 같이 하면 기존의 entity가 사라지는 문제가 발생한다. 기존의 entity 정보가 손실되지 않게 하기 위해 아래와 같이 append를 시키자. NER을 training 하고 model up.. 2018. 4. 18.