2017-11-14 4 views
0

私はテキストデータでいっぱいの列を持つcsvファイルを持っています。どのように私は一定のデータでそれらを置き換えることができますので、私はそのデータセットで機械学習アルゴリズムを適用することができます。 データセットの例:日付、名前、色名、ユーザー名および製品名。PythonでMLアルゴリズムの機能としてテキストデータをエンコードするにはどうすればよいですか?

+1

データを適切に記述し、それに何をしたいのかを記述する必要があります。 –

+0

私は色の名前がありますが、それらを置き換えることができ、私はユーザー名を持っています –

+0

あまりにも多くのオプションがあり、あなたのデータに最適なものを選択する必要があります。 あなたがすること: 1.一意の単語のリストを作成し、それぞれにidを与え、データセットの各単語をそのidに置き換えます。 2.単語埋め込みレイヤーを使用します。 –

答えて

1

データを分類しようとしています。次のことを試してみてください。

例1:次のように少数の種類があると仮定すると、色名および製品名については、あなたがマップすることができます:

# Color_name mapping 
color_mapping = {"red": 1, "yellow": 2, "blue": 3, "green": 4, "pink": 5} 
dataset['color_name'] = dataset['color_name'].map(color_mapping) 
# Product_name mapping 
product_mapping = {"product1": 1, "product2": 2, "product3": 3, "product4": 4, "product5": 5} 
dataset['product_name'] = dataset['product_name'].map(product_mapping) 

例2:user_nameの彼らはのように分類することができない場合次の操作を実行できます。

名前からタイトルを抽出してみてください。

例:タイトル氏、氏、夫人などで始まる名前を抽出することができると

title_mapping = {"Mr": 1, "Miss": 2, "Mrs": 3} 
dataset['user_name'] = dataset['user_name'].map(title_mapping) 

に応じて実施例3をグループ化することができます。日付については、あなたができるグループを、それらを別の年に属する日付としていくつかの特定の期間などに使用することができます。

0

実際、上の回答とコメントは、作業の半分について説明しています。 1,2,3、...は、符号化された単語内の空間依存性を意味する。 1は3よりも2に近いので、「赤」は「青」より「黄」に近くなります。 整数値に変換を適用した後は、one-hot-encodingのようなものにする必要があります。

あなたはパンダを使用している場合は、sklearn使用している場合はワンホット・エンコーディングは、あなたの実際のデータを吹くのでget_dummies

をチェックアウトLabelBinarizer

(Here you can find a very good tutorial on how to deal with categorical data)

のために行くあなたがかもしれないネットワークに供給次元削減技術を先に使うことを検討してください。あるいは、おそらく最も良い方法は、いわゆるword embeddingsを使用することです。現代のNLPアプリケーションのゲームチェンジャーであったため、今日では、実際のテキストデータに単語埋め込みを使用することをお勧めします。単一の単語だけを扱っている場合、単語の埋め込みの必要はありません。

乾杯

関連する問題