2017-03-18 5 views
0

でクリーン/文字列が一貫作ります。これらは会社名であり、これらのほとんどは手動で入力されたため、タイプミスや表現形式が異なります。は、私が「汚れ」の文字列の列を持つデータセットで働いているパンダ

company_name 
big compnay 
big company 
big company inc. 
smll compny 
small company 
small inc. 

私は以下のようなものに上記の列を編集しようとしています:

company_name 
big company 
big company 
big company 
small company 
small company 
small company 

データポイントの数を手動でクリーニングすることができるものよりもはるかに大きいデータセットの列には、次のようになります。私は本当に助言/助言/アドバイスを感謝します。私はfuzzywuzzyのようなモジュールで作業しようとしましたが、私は上記の問題に対処する最善の方法を理解できませんでした。

ありがとうございました。

+0

を私はパンダを思ういけない、それに対処するための機能が組み込まれています。あなたはそれを扱うために、文字マップのための関数を作成することができますか、または文字ベクトルと文字の順序を考慮する距離ベクトルメソッド –

+0

この演習の目的は何ですか? 「汚い」データから「クリーン」データへのマッピング例を表示できますか? –

+0

@JijoJoseそうですね、私は現時点でそれに取り組んでいます。それは私がちょうどおかげで...うーん –

答えて

0

あなたは、データセットの発生の非常に高い周波数を持つ単語から1つのまたは2の編集距離で単語を修正するために、確率スペル訂正を利用することができます。 Pythonの実装がここで提供されていますhttp://norvig.com/spell-correct.html

+0

「クリーン」に「汚い」からのマッピングを反映するために質問を編集し、私がやったことがない何か... –

+0

これは "正しい"単語の "コーパス"を必要とするようです。私の場合、これには会社名の「正しい」リストが必要です。これは可能ですが、会社名の「正しい」リストを取得するために手動で数日かかることがあります。そして、おそらく 'get_closest_matches'のようなことをすることができます。 –

+0

手動選択を回避する1つの方法は、データセット内の出現回数に基づいて各値に確率スコアを割り当てることです。たとえば、私はProbability ['smll compny'] <確率['small company']を期待しています。次に、リスト全体を再パスして、出現頻度の低い単語を1つの編集、2つの編集、...、n編集の距離で変換します。 –