2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

svmでtfidfとword2vecを比較してみたゾ!

Last updated at Posted at 2020-01-04

# はじめに

前回の記事の続きです。
https://qiita.com/teri/items/bc4e04316a1b14ae8365

前回の概要と考察

前回は、tfidf、svmを用いて、分類器を作りましたが、学習データにある単語を含めた文章については、期待通りの分類をしてくれました。しかし、学習データにない単語を含めた文章の分類は、期待通りには分類してくれませんでした。

この事象について、考えたのですが、tfidfの言語モデルは、分類器に用いる学習データと同じのデータを使う必要があるので、学習データの量が少ないと、ベクトル化に影響する単語が少なくなるんだと思うんですよ。(結局、データ量って大事なんですよね。。。)

tfidfとword2vecを比較をしてみたい

前回は、tfidfを使いましたが、今回はword2vecを使った分類器を作って、結果を比較したいと思います。
word2vecはtfidfと違って、分類器の学習データと同じのデータを使う必要がないので、事前に大量のデータを学習させたword2vecの言語モデルを用いれば、色んな単語に対応させることができると考えられます。(word2vecの学習済みモデルは、インターネット上にけっこうあります。公開してくださっている方々には感謝しかありませんな。。。)

難しく書いていますが、まとめると。。。
word2vecを使うことで、tfidfより、汎用的な分類器が出来ると思うんです!!!

#比較結果

  • tfidfでの結果
    image.png

  • word2vecでの結果
    image.png

比較すると、下の2文の結果が違いますね。
word2vecのほうが、期待通りに分類されています。
word2vecってすげえ!

#最後に
今回の比較でword2vecってすごいんだなって改めて実感しました。
ただ勘違いしてほしくないのは、tfidfよりword2vecが全面的に良いというわけではないことです。
tfidfはword2vecよりもメモリ量が少ないですし、単語の重要度という観点でベクトル化ができます。
それぞれのメリットがあるので、何をやりたいかで、どの手法を選定するかが重要なんだと、思います。

僕も、これから、どんどん自然言語処理の知識を身に付けていって、
「ここは、○○な手法を使うと精度あがるよ」なんてことを簡単に言えるような、かっちょいいエンジニアになっていきたいですね~('◇')

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?