LSTM을 사용하여 언어 모델링 작업에서 알 수없는 단어 처리


11

자연어 처리 (NLP) 작업의 경우 단어에 대한 포함으로 word2vec 벡터 를 종종 사용합니다 . 그러나, 단어 2vec 벡터에 의해 포착되지 않는 많은 알 수없는 단어가있을 수 있습니다. 단순히이 단어가 훈련 데이터에서 자주 보이지 않기 때문입니다 (많은 구현에서는 단어를 단어에 추가하기 전에 최소 개수를 사용합니다). 특히 단어의 철자가 틀린 Twitter와 같은 텍스트의 경우에 특히 그렇습니다.

LSTM (Long Short-Term) 네트워크를 사용하여 감정 예측과 같은 NLP 작업을 모델링 할 때 이러한 알 수없는 단어를 어떻게 처리해야합니까? 두 가지 옵션이 있습니다.

  1. word2vec 사전에 '알 수없는 단어'토큰 추가
  2. LSTM이 단어가 문장에 있다는 것을 알지 못하도록 이러한 알 수없는 단어를 삭제합니다.

이 단어들을 다루는 선호되는 방법은 무엇입니까?


2
나는 비슷한 질문에 일찍 대답했다. 질문은 LSTM에만 국한된 것이 아니라, 제가 작성한 내용의 대부분은 해당되는 것 같습니다 : stats.stackexchange.com/questions/163005/…
— fnl

답변:


12

옵션 1 (알 수없는 단어 토큰 추가)은 대부분의 사람들이이 문제를 해결하는 방법입니다.

옵션 2 (알 수없는 단어 삭제)는 LSTM의 훈련 방식과 일치하지 않는 방식으로 문장을 변형시키기 때문에 나쁜 생각입니다.

최근에 개발 된 또 다른 옵션은 컨볼 루션 신경망 또는 각 단어의 문자를 한 번에 하나씩 처리하는 별도의 LSTM을 사용하여 각 단어에 대해 즉시 포함하는 단어를 만드는 것입니다. 이 기법을 사용하면 모델에 포함을 만들 수없는 단어가 절대로 나타나지 않습니다.


안녕하세요 Aaron, 세 번째 옵션을 사용하는 몇 가지 포인터 (종이 또는 코드)를 제공해 주시겠습니까?
— 예언

arxiv.org/abs/1508.02096 여기 하나가 있습니다
— Aaron


1
하나 더 최근의 (EMNLP 2017) arxiv.org/abs/1707.06961 코드 github.com/yuvalpinter/Mimick
— jayelm

-1

희귀 단어를 단순히 매핑하면 해당 단어를 삭제하고 훈련 데이터에서 토큰으로 대체합니다. 따라서 우리 모델은 드문 단어를 알지 못합니다. 이 모델은 토큰이 실제 데이터에서 실제로 발생하지 않거나 더 나은 결과를 나타내지 않을 것이라고 가정하기 때문에 조잡한 평활화 형태입니다.


4
이 답변에 실질적으로 추가하십시오. 예를 들어 "알 수없는 단어 토큰을 추가하는 것이 최선의 선택"이라는 주장을 뒷받침하십시오.
— Jim
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.