批量车源解析方案

##车商批量资源发布工具


离开某司一年了,现在放出代码~
https://bitbucket.org/verycute/onlinemessageprocessor/src/master/
车商们加油
####背景

车商发布资源门槛较高,手里的资源想全部转化为平台上的规范资源需要一条一条发布,比较繁琐,但是车商会天天在朋友圈、微信群里发布他们用自然语言“编写”的资源,例如:

X1/286000 白,蓝,红,粽⬇14.5点
GT320/398000 矿白黑 ⬇16.5点
525/499600 矿白摩卡 ⬇18.5点
☎18521707911
全部上海提,店车店票

如果能把这种信息帮车商一键转换成标准模式的资源,那么他们发布资源的效率就会高很多,对于帮助我们提升平台上的资源量有极大的好处。

所以,现在的问题转换为典型的自然语言处理问题了

####基本知识

车商确定一款车是用 车型+指导价 或者 ***品牌+指导价***的组合信息,例如朗逸1249,帕萨特2229,奔驰3148等,这里1249和124900等价

所以回头看上面的例子:

X1/286000 白,蓝,红,粽⬇14.5点

其实就是 品牌:宝马,车型:X1,指导价:286000,4个颜色,售价是下14.5点

####问题分解

这个项目乍看上去能做,按照传统思路,这就是个序列标注的问题,简单点可以上CRF,复杂点可以上RNN,但是使用监督学习的最大门槛是没有标注数据,即没有ground truth就没办法去train model。到此,监督学习的方案可以打住了,在资源有限的前提下,只能上无监督

基本策略:

**0. 文本预处理,任何场景都避免不了 **

a. emoji字符  

b. 特殊含义的字符替换,例如“⬇”替换成“下”  

c. 繁体转简体  

d. 全角转半角  

e. 剔除每行的起始标识,例如1. 2、等  

f. 移除类似emoji一样的信息,例如"[微笑]","[鲜花]","[太阳]"等  

g. 把售价标准化,例如"-17w"替换成"下17w"  

h. 剔除日期信息带来的干扰  

**1. 分段,切分出一条完整的资源,这里先默认一行是一条有效资源 **

相同的信息进行去重

**2. 资源解析 **

a. 判断是不是单条资源,考虑到配置、款式、指导价等信息都会有纯数字的信息,干扰较多,所以一行有多条资源的情况暂不处理  

b. 判断规格,中规国产和平行进口的处理方案不一样,因为中规国产有指导价,而平行进口车没有  

c. 分词,解析tokens,引入基于朴素贝叶斯的TokenTagClassifier用于辅助打标功能,例如确定408到底是价格还是车型,如果品牌是标致那么就是车型,而如果品牌是路虎,那就是指导价  

d. 去官方车型库中进行车型匹配,强依赖现有搜索的部分功能(分词,queryparser),例如例子中的"X1/286000 白,蓝,红,粽⬇14.5点",最后"X1/286000"会被用来进行搜索对应车型  

**3. 车型匹配异常 **

a. 匹配程度较低,判定是否是无效信息。如果该行信息包含的可靠信息较少,例如某个公司的名称,或者某个人的姓名+联系方式,那么该行对我们来说基本没有意义(**至少目前没有意义**)    

b. 匹配车型较多,或者有歧义,例如"朗逸","宝马车源",这些信息远无法帮我们确定具体的款式,但是也是相当重要的信息,至少缩小了我们的搜索范围;实际数据证明,把这些信息记录下来用于我们进行后续的解析是非常重要的:
	>帕萨特
	 2229 下2.5w
	 2239 下2w      

c. 新、老款式,如"新朗逸","老桑塔纳",在处理这种case的时候用了一个"偷懒"的小技巧,即如果分词以后有"新"或者"新款"这种token,就把这个token使用同义词映射成"16款"、"17款",同时在检索车型款式的时候按照年份逆序,解决了有的车的新款是16款,而有的车的新款是17款的问题,"旧款"的解决方案同理    

d. 规格预测错误,有的平行进口车信息是不会直接写明规格的,所以要用pseudo relevance feedback  的思路,根据搜索返回车型来重新判断规格是国产中规还是平行进口  

**4. 颜色抽取 **

a. 单色处理,白肯定是白色, 白金有可能是白金色,也有可能是外白内金两个颜色,还有可能是白色和金色两个外色  

b. 颜色模式确定,如果有多个颜色,那么就分开模式:都是外色或者都是外+内  

c. 官方颜色匹配,把颜色替换成官方车型库里的标准颜色  

**5. 价格解析 **

a. 区分中规国产车和平行进口车  

b. 判定加价还是降价  

c. 如果是降价,判定下xx点还是下xx万  

d. 如果加价降价不明确,根据行情价来判断是加价还是降价还是直接报价  

**6. 平行进口车车架号解析 **

基于正则,正则模式存储在文件中,匹配命中以后,把原始文本中的相关车架号内容剔除,因为车架号的纯数字容易给价格的抽取带来干扰

**7. 平行进口车期货现车解析 **

基于正则,正则模式存储在文件中

**8. 平行进口车价格解析 **

基于正则,正则模式存储在文件中

**9. 备注解析 **

随着信息的抽取,光标会一直后移,所有的流程进行完成以后,剩下的信息可以被粗浅的当做是备注,这也和备注不太重要有关

####优化

  1. 性能优化,使用redis做缓存,key为user_id_内容

  2. 扩展性优化,Logger统一使用slf4j

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值