は、私は文字列の配列があるとします。Scikit-learn:テキストからフィーチャーを抽出する方法は?
['Laptop Apple Macbook Air A1465, Core i7, 8Gb, 256Gb SSD, 15"Retina, MacOS' ... 'another device description']
私のようなこの記述の特徴から抽出したい:私は最初に事前定義された既知の特徴を準備する必要があります
item=Laptop
brand=Apple
model=Macbook Air A1465
cpu=Core i7
...
?同様
brands = ['apple', 'dell', 'hp', 'asus', 'acer', 'lenovo']
cpu = ['core i3', 'core i5', 'core i7', 'intel pdc', 'core m', 'intel pentium', 'intel core duo']
は私がここにCountVectorizer
とTfidfVectorizer
を使用する必要があることを確認していない、それはDictVictorizer
を持っている方が適切だが、どのように私は、全体の文字列から値を抽出キーでdictsを作ることができますか?
scikit-learnのFeature Extractionで可能ですか?または私自身の.fit()
と.transform()
メソッドを作成する必要がありますか?
UPDATE:私はあなたが右の理解場合 @sergzach、確認してください:
data = ['Laptop Apple Macbook..', 'Laptop Dell Latitude...'...]
for d in data:
for brand in brands:
if brand in d:
# ok brand is found
for model in models:
if model in d:
# ok model is found
をので、各機能ごとにN-ループを作成?これは機能しているかもしれませんが、それが正しいかどうかはわかりません。
すべてのブランドのリストを手作業で作成し、テキストから文字列を抽出して(おそらくstr.lower()で不要な文字を取り除く)、それらがほとんど認識されているかどうかを確認できます。次に、認識されなかった機能を表示し、それらと何をすべきかを決定します。その後、DV.fit_transformを使用して数値フィーチャに変換し、スケールして数値として使用します。 – sergzach
@sergzachありがとう、私はあなたのレビューをお願いします。 – Novitoll
ここで述べたようにsklearnの 'CountVectorizer()'を使うことができます:http://scikit-learn.org/stable/tutorial/text_analytics/working_with_text_data.html#tokenizing-text-with-scikit-learnしかし、どんな場合でも、 'fit_transform()'のためのデータを準備する必要があります。おかげさまで – sergzach