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.