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

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

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

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

Q&A

解決済

1回答

461閲覧

gensimとMecabを使った機械学習のエラーがなかなか修正できません。助けてください。

benkyouchuu

総合スコア26

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

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

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

0グッド

0クリップ

投稿2017/12/21 17:42

編集2017/12/21 17:45

今、ツイッターAPIからとってきた情報を使って、機械学習の勉強をしています。

参考URL

こちらの記事を参考にさせて頂き行っております。

estimator.fit(data_train_s, label_train_s) File "/Library/Python/2.7/site-packages/sklearn/ensemble/forest.py", line 247, in fit X = check_array(X, accept_sparse="csc", dtype=DTYPE) File "/Library/Python/2.7/site-packages/sklearn/utils/validation.py", line 433, in check_array array = np.array(array, dtype=dtype, order=order, copy=copy) ValueError: setting an array element with a sequence.

機械学習させるところでエラーが発生して前に進めません。
調べたら、配列の要素数が違うということで、確認したら
data_train_s:35
label_train_s:35
と出力されました。

半日以上悩んでいます。誰か助けてください。よろしくお願いします。

該当箇所も載せておきます。

python

1def mecab(db,estimator): 2 dates =[] 3 labels = [] 4 for age in range(1,7): 5 docs = [] 6 descriptions = (data['description'].encode('utf-8') for data in db.profile.find({"age": age*10})) 7 tagger = MeCab.Tagger('-Ochasen') 8 counter = Counter() 9 a = list(descriptions) 10 print a[0],age 11 for description in a: 12 nodes = tagger.parseToNode(description) 13 while nodes: 14 if nodes.feature.split(',')[0] == '名詞': 15 word = nodes.surface.decode('utf-8') 16 counter[word] += 1 17 nodes = nodes.next 18 for word, cnt in counter.most_common(): 19 docs.append(json.dumps(word, ensure_ascii=False)) 20 labels.append(age) 21 data_train = dictionary(docs,age,estimator) 22 dates.append(data_train) 23 data_train_s, data_test_s, label_train_s, label_test_s = train_test_split(dates, labels, test_size=0.5) 24 print len(data_train_s) 25 print len(label_train_s) 26 estimator.fit(data_train_s, label_train_s) 27 print(estimator.score(data_test_s, label_test_s)) 28 29def dictionary(docs,age,estimator): 30 dictionary = gensim.corpora.Dictionary([docs]) 31 data_train=[] 32 for doc in docs: 33 tmp=dictionary.doc2bow([doc]) 34 dense = list(gensim.matutils.corpus2dense([tmp], num_terms=len(dictionary)).T[0]) 35 age_arr=[age] 36 data_train.append(dense) 37 return data_train

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

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

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

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

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

guest

回答1

0

ベストアンサー

http://www.tcom242242.site/entry/2017/02/11/133630

data_train = dictionary(docs,age,estimator)
の次元は全要素で同じになっていますか?

投稿2017/12/21 18:14

mkgrei

総合スコア8560

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

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

benkyouchuu

2017/12/26 04:32

ご連絡ありがとうございます。 numpy.ndim(data_train) にしたら、全て同じ次元でした。 他に考えられることはありますか? もしあったら教えて欲しいです。
mkgrei

2017/12/26 08:35

data_train_s[0], data_train_s[1], ...がすべて同じ長さだということですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問