2017-07-12 25 views
2

我們有一個包含10000個未分類數據記錄的表,我想根據文本相似性或某些特徵等特定屬性對它們進行分類。數據分類

例如 考慮單個列包含姓名,電話號碼和性別

現在我有一個具有單一的實體名稱,電話號碼,電子郵件指數。我要標記適當類型的索引IDS

表A(欄表)

id  column_data  index_id 
1  abc    
2  male    
3  +1298312123  
4  pqr    
5  +1283711231  
6  female   
7  +1231231112  
8  male    
9  xyz    

表B(索引表)

id  index_name 
1  name 
2  phone number 
3  email 

所以,我要標記的列所有姓名,電話號碼和性別與單一index_id以便於識別數據。

P.S我用這些數據作爲演示,我們有成千上萬的數據和我們想分類的1000個索引?

這樣做的最佳方法是什麼?

+1

除非你要申請機器學習在這裏,分類,並通過數據循環....你到目前爲止嘗試過什麼? –

+0

我們嘗試過字符串比較。但是,數據的完整性在一定程度上不能被驗證。我們使用Jaro Winkler算法進行字符串比較。 –

+0

因此,使用機器學習,給它一堆例子和正確的分類,以便學習如何以高成功率進行分類的規則。 –

回答

0

假設您有一些數據用列數據的索引值標記以供培訓,您可以爲列數據創建字符n-gram並訓練分類器。

+0

好的。我不確定我是否完全理解了n-gram的東西。讓我知道它的實際內容。謝謝! :) –

-3

UPDATE SET表A = index_id的(CASE WHEN COLUMN_DATA REGEXP '[0-9]' THEN 2 WHEN COLUMN_DATA = '男性' OR COLUMN_DATA = '女性' THEN ELSE 4 1 END)

用於電子郵件的正則表達式也

1

你在找什麼是機器學習分類器。

基本上在分類,您創建的模型(上有很多教程,我將開始here),然後用數據訓練它。你所訓練的數據應該是正確的分類,以便它可以學習如何處理它以前沒有遇到過的新數據形式,並做出「最佳猜測」。 (在機器學習術語中,這就是所謂的預測)

就這樣你知道谷歌什麼,尋找多類分類的例子,我最好的建議是從tensorflow開始python(上面的鏈接是到tensorflow的教程)。

如果您不熟悉機器學習原理,我會建議從機器學習的基礎知識開始,以便您首先理解您在做什麼。

+0

好的。謝謝。這是一個公平的開始。讓我嘗試一下並回復你。謝謝你的時間。 :) –

+0

沒問題好運 –

0

我想帶來張量流和n-grams的其他答案是超調,因爲它似乎只是將index_name id從一個數據幀轉移到另一個數據幀。有幾種方法可以做到這一點,但其中一個可能看起來像這樣,使用正則表達式,好或壞:

import re 

for index, row in tableA.iterrows(): 
    if tableA.loc[index, 'column_data'] == 'male' or tableA.loc[index, 'column_data'] == 'female': 
     tableA.loc[index, 'index_id'] = ##whatever index number you've assigned for gender, which doesn't appear in your dataframe 
    elif re.search(r'\W*', str(tableA.loc[index, 'column_data'])): #matches all non-word characters 
     tableA.loc[index, 'index_id'] = 2 
    else: 
     tableA.loc[index, 'index_id'] = 1