2017-08-15 13 views
0

エンティティとラベルという2つの変数があります。エンティティ変数は単語のリストを格納し、このリストの各要素もリストを含みます。リスト変数のリストです。このリストは実際にはバイグラムなので、私はそれを保つ必要があります。リストフィーチャのリストを使用してクラシファイアをトレーニングする方法Python

私はこの2つの変数を使って分類器を訓練しようとします。これまでのところ、この私のコード:

from sklearn import svm 
from sklearn.feature_extraction.text import TfidfVectorizer 

entity = [[['Prabowo Subianto']], [['Muhtar Ependi']], [['Nina Zatulini']], [['Partai Gerindra']], [['Persiba']], [['Partai Kebangkitan Bangsa (PKB)'], ['Partai Kebangkitan'], ['Kebangkitan Bangsa'], ['Bangsa ('], ['(PKB'], ['PKB)']], [['Sman 3 Kabupaten Tangerang'], ['Sman 3'], ['3 Kabupaten'], ['Kabupaten Tangerang']], [['Bandara Changi Singapura'], ['Bandara Changi'], ['Changi Singapura']], [['Warung Kopi Kita'], ['Warung Kopi'], ['Kopi Kita']]] 
label = ['PERSON', 'PERSON', 'PERSON', 'ORGANIZATION', 'ORGANIZATION', 'ORGANIZATION', 'LOCATION', 'LOCATION', 'LOCATION'] 

vectorizer = TfidfVectorizer(min_df=1) 
train_vector_entity = vectorizer.fit_transform(entity) 
train_vector_label = label 

classifier = svm.SVC() 
classifier_word = classifier.fit(train_vector_entity,train_vector_label) 

エラー結果:

AttributeError: 'list' object has no attribute 'lower' 

分類器を訓練するための最良の方法は何ですか? おかげ

+0

リストのリストが何を表しているのでしょうか?私はそれがリストに保持することの意義があるのですか?あなたはそれを繰り返して1つのリストにして、それを 'TfidfVectorizer'に渡すことができます –

答えて

0

はちょうどこの行を変更:

train_vector_entity = vectorizer.fit_transform([i[0][0] for i in entity]) 
関連する問題