LSTMを使用した言語モデリングタスクでの未知の単語の処理


11

自然言語処理(NLP)タスクでは、word2vecベクトルを単語の埋め込みとして使用することがよくあります。ただし、単純にこれらの単語がトレーニングデータで十分に見られないために、word2vecベクトルによってキャプチャされない未知の単語が多数ある場合があります(多くの実装では、単語を語彙に追加する前に最小カウントを使用します)。これは特に、単語がつづりが間違っているTwitterなどのテキストに当てはまります。

長期短期(LSTM)ネットワークを使用した感情予測などのNLPタスクをモデル化する場合、このような未知の単語をどのように処理する必要がありますか?2つのオプションが表示されます。

  1. 「未知の単語」トークンをword2vec辞書に追加します。
  2. これらの未知の単語を削除して、LSTMがその単語が文の中にあることさえ知らないようにします。

これらの単語を処理する好ましい方法は何ですか?


2
以前に同様の質問に回答しました。:質問は、その後LSTMsに特異的ではなかったが、私が書いたもののほとんどがちょうど適用として存在することになるようだstats.stackexchange.com/questions/163005/...
FNL

回答:


11

オプション1(未知の単語トークンを追加する)は、ほとんどの人がこの問題を解決する方法です。

オプション2(不明な単語を削除する)は、LSTMがトレーニングされた方法と一致しない方法で文を変換するため、悪い考えです。

最近開発された別のオプションは、畳み込みニューラルネットワークまたは各単語の文字を1つずつ処理する個別のLSTMを使用して、各単語にオンザフライで埋め込む単語を作成することです。この手法を使用すると、モデルは、埋め込みを作成できない単語に遭遇することはありません。


こんにちはアーロン、あなたの3番目のオプションを使用するいくつかのヒント(論文またはコード)をくれませんか?
予言2017



1
最近の1つ(EMNLP 2017)arxiv.org/abs/1707.06961とコードgithub.com/yuvalpinter/Mimick
jayelm

-1

まれな単語をマッピングするとは、それらの単語を削除し、トレーニングデータのトークンに置き換えることです。したがって、私たちのモデルは珍しい言葉を知りません。モデルはトークンが実際のデータで実際に発生することはないと想定しているため、スムージングの粗雑な形式です。


4
この回答に大幅に追加してください。たとえば、「不明な単語トークンを追加することが最善の選択肢である」という主張を裏付けます。
ジム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.