我有以下问题,并认为我可以使用机器学习但我不完全确定它将适用于我的用例.
我有一个大约一亿条记录的数据集,其中包含客户数据,包括姓名,地址,电子邮件,电话等,并希望找到一种方法来清理这些客户数据并识别数据集中可能存在的重复数据.
大多数数据都是使用没有验证的外部系统手动输入的,因此我们的许多客户在我们的数据库中最终得到了多个配置文件,有时每个记录中都有不同的数据.
对于实例我们可能为客户John Doe提供5个不同的条目,每个条目都有不同的联系方式.
我们还有这样的情况:代表不同客户的多个记录在电子邮件等关键字段上匹配.例如,当客户没有电子邮件地址但数据输入系统需要时,我们的顾问将使用随机电子邮件地址,导致许多不同的客户档案使用相同的电子邮件地址,同样适用于电话,地址等.
我们的所有数据都在Elasticsearch中编制索引并存储在SQL Server数据库中.我的第一个想法是使用Mahout作为机器学习平台(因为这是一个Java商店)并且可能使用H-base来存储我们的数据(仅仅因为它适合Hadoop生态系统,不确定它是否具有任何实际价值),但是我读到的越多,我对它的工作方式就越困惑,对于初学者我不知道我能使用哪种算法,因为我不确定这个问题在哪里,我可以使用聚类算法或分类算法吗?当然,必须使用某些规则来确定配置文件的唯一性,即哪些字段.
我们的想法是最初将其部署为客户资料重复数据删除服务,我们的数据输入系统可以使用这些服务在输入新的客户资料时验证和检测可能的重复项,并且将来可能将其发展为分析平台以进行收集洞察我们的客户.
任何反馈将不胜感激:)
谢谢.
recommendation-engine machine-learning duplicates mahout record-linkage
鉴于以下映射,我需要获得符合以下条件的结果
电子邮件和旅行证件可以指一系列物品.
{
"profile":{
"properties":{
"date_of_birth":{
"type":"date",
"store":"no"
},
"first_name":{
"type":"string",
"store":"no"
},
"last_name":{
"type":"string",
"store":"no"
},
"email":{
"type":"string",
"store":"no"
},
"active":{
"type":"string",
"store":"no"
},
"travel_document":{
"properties" : {
"countryOfCitizenship" : {"type" : "string"},
"countryOfIssue" : {"type" : "string"},
"expirationDate" : {"type" : "date"},
"nationality" : {"type" : "string"},
"number" : {"type" : "string"},
"addressLines" : {"type": "string"},
"issuedForAreaCode" : {"type": "string"},
"type" : {"type": "string"}
}
} …Run Code Online (Sandbox Code Playgroud) 我们目前正在考虑用可能的ESB或类似工具替换我们的一个应用程序,并且正在寻找一些有关如何最好地解决这个问题的见解.
我们目前有一个独立的服务,它使用不同的外部服务和数据源进行消费/交互,一些通过SOAP Web服务提供,另一些我们只使用数据库连接.这项服务是通过SOAP公开的,我们有其他应用程序使用这项服务,但与它紧密耦合,现在我们还有其他应用程序需要使用一些外部服务,并希望将这一切全部替换为ESB或某种SOA平台.
用ESB替换这个"外部"服务集成层的最佳方法是什么?我们正在考虑拥有一个"全局"契约/ API,其中我们使用的所有服务都作为一个单一的契约公开,我们使用的所有可能的操作和数据结构都暴露在一个命名空间下,这是最好的方法接近这个?如果是这样,有什么工具可以帮助我们自动化这个过程,还是我们基本上必须手工制作这个合同/ API?这也意味着对于底层服务/ API的任何更改,我们也必须更新这个新API.
如果没有,那么我看到的另一个选择是基本上使用'ESB'作为'代理'层,其中所有源都是按原样公开的,所以我们最终会得到几个不同的'契约'/ API端点,但是我真的没有看到它的价值.
还给出了上述什么是最好的工具?是一个完整的ESB是一个过度杀手还是我们更好地使用像Apache Camel或Spring Integration这样的东西?
更多细节:
我们目前正在整合5种不同的外部服务,未来会有更多.
目前只有几个应用程序消耗我们当前的应用程序,但未来的其他几个应用程序/系统将需要使用这些外部服务.
我们目前在这些服务之间使用单一通信方法(SOAP),但是某些应用程序将来可能会使用发布/订阅消息,尽管SOAP仍然是使用的主要协议.
我是ESB集成的新手,所以如果我误解了很多这些技术以及它们要解决的问题,我会提前道歉.
任何帮助/提示/指示将不胜感激.
谢谢.