一、前言电商、CRM、企业内部系统里,数据质量问题永远是最头疼的问题之一。重复数据、格式混乱、信息缺失……传统规则引擎清洗规则越写越复杂,维护成本极高。这一期我们换换口味,聊点接地气的:用AI帮Java做数据清洗。二、痛点:传统规则清洗的困境看几个典型例子:问题类型传统规则AI规则手机号格式\\d{11}只能验证位数“帮我把各种格式的手机号统一成13812345678格式”地址清洗N条正则组合,漏了就得打补丁“提取出省份、城市、区县”商品标题去重字符串相似度阈值,调参调到吐“找出相似的商品标题,给出相似度评分”错别字纠错词库维护,效率低“请纠正以下商品描述中的错别字”AI的好处:规则就是自然语言,一条prompt搞定,不用写一堆正则。三、实战:AI数据清洗服务3.1 项目结构data-cleaning-service/ ├── src/main/java/com/example/clean/ │ ├── DataCleaningService.java # 清洗服务 │ ├── DataCleaner.java # 各类清洗器 │ └── util/ │ └── AIClient.java # AI调用封装 ├── src/main/resources/ │ └── application.yml └── pom.xml3.2 AI客户端封装importcom.openai.OpenAI;importcom.openai.models.*;publicclassAIClient{privatefinalOpenAIopenAI;publicAIClient(StringapiKey){this.openAI=OpenAI.builder().apiKey(apiKey).build();}/** * 通用文本处理 */publicStringprocess(Stringprompt,StringuserMessage){ChatModel.ChatCompletionCreateParamsparams=ChatModel.ChatCompletionCreateParams.builder().messages(ChatModel.ChatCompletionCreateParams.Messages.builder().role(ChatModel.ChatCompletionCreateParams.Messages.Role.SYSTEM).content(prompt).build(),ChatModel.ChatCompletionCreateParams.Messages.builder().role(ChatModel.ChatCompletionCreateParams.Messages.Role.USER).content(userMessage).build()).model("gpt-3.5-turbo")