質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

2回答

2277閲覧

Python 機械学習について

asddsa

総合スコア20

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

1クリップ

投稿2017/07/19 10:54

編集2017/07/19 10:56

Pythonを勉強中の者です。
PythonでTweetの分類(POS,NEG)をしたいと考えています。

例えば、適当なツイート1000件(A)にたいして、ラベルをふり学習器を作ったとして、
その学習器を使って異なるツイート1000件(B)のラベルを予測することはで可能なのでしょうか。

countvectorizerを用いてツイートをベクトル化したとしても、AとBでは出現する単語が異なり、生成されるベクトルの長さも異なり、エラーが出ると思います。

解決方法があれば教え下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

countvectorizerを用いてツイートをベクトル化したとしても、AとBでは出現する単語が異なり、生成されるベクトルの長さも異なり、エラーが出ると思います。

その通りで、ベクトルを作るための単語の集合は、AとBで共通にしないといけません。
AとBを含む全体をコーパスと見てベクトルを作るか、もっとずっと巨大なコーパスからボキャブラリ(単語辞書)を作るかします。
後者の場合はcountvectorizerを使うよりも自分で作った方がいいでしょう。

ポジネガの極性単語辞書のような外部知識を素性として入れるのであれば、1000件でもとりあえずやってみればいいと思います。

外部知識を入れないでやろうとすると、いかにも少ないように感じます。
1000件という数が、すべてポジかネガの極性が付いているものを集めてその数なら、一回システムを作ってみたらいいと思います。システムを作って性能評価ができるようになってからデータを増やしていく、という順番で進めればいいでしょう。
1000件という数がとりあえず集めたツイートの数で、そこからラベルを振っていくのであれば本当に少ないと思います。その場合はポジでもネガでもない中立が混じってくるはずです。こちらの場合は、中立のデータがどのぐらいあるか、データを実際にながめてからどうするか考えるでしょうね。

投稿2017/07/20 00:25

quickquip

総合スコア11038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ラベルを予測ということであれば、全く未知の単語はむしろノイズに近いです。
前もって人為的 or 機械的にカウントする単語を選んでしまってよいかと思います。
それでも未知の単語が多いのであれば、学習データの拡張を考えた方がよいです。

工夫するとすれば、「同じ単語」としてカウントする仕組み作りかと。
表記揺れや語の活用、記号(顔文字など)の取り扱い、それで性能は伸びそうですね。

投稿2017/07/19 11:03

LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asddsa

2017/07/19 11:08 編集

ご回答ありがとうございます countvectorizerなどで、学習器を作成したときと同じ単語列のベクトルを生成することは可能なのでしょうか それとも、その部分はオリジナルで実装する必要がありますでしょうか
LouiS0616

2017/07/19 11:16

文書解析系はあまり実践したことがないのですが、出来ると思いますし、ご自身で組んでもそんなに難しくないかと。 なんか漠然とした感じですみません。
quickquip

2017/07/20 00:03 編集

countvectorizerはBoW素性の疎なベクトルを作るためのものなのに、それと分からずに「BoWをやればいいんじゃないですかね」というコメントはちょっとひどくありませんか。※すみません。countvectorizerは数を数えるのでBoWとは別でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問