2017-07-12 28 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