目标:

我们内部系统里记录的酒店名字是由很多人输入的,每个人输入的可能不完全一样,比如,‘成都凯宾斯基大酒店’, ‘凯宾斯基酒店’, ‘凯宾斯基’, 我们的初步想法是能不能把大量的记录归类,把很多相似的名字归成一类,然后自动给出一个建议的名字

向量化和建模:

大概的想法是,先找出一个相似性算法,然后在调用一种分类算法。相似性算法很多是基于vector的,怎么把中文转化成vector? 这个文章介绍了怎么处理中文 (sklearn: TfidfVectorizer 中文处理及一些使用参数)

聚类:

聚类的时候我并不想像 K-means那样指定一个K值,我需要的是自动根据输入数据的集中程度来决定分多少类, 这个文章(机器学习总结(十):常用聚类算法(Kmeans、密度聚类、层次聚类)及常见问题)里介绍可以用 DBSCAN 算法. 后来想我这个case其实根本不需要什么DBSCAN, 只要设置一个threashold就可以了,我设置的0.5, 就是凡是相似度 >0.5的都认为相似度很高了,也就是同一个酒店

最终出来的效果如下: 

没用什么高级的技术,主要用的是参考资料里sklearn: TfidfVectorizer 提供的API,来得到酒店名字之间的相似矩阵,然后取矩阵里面相似度高的归为同一个酒店,我选的相似度 >0.8 这个threshold. 最后,从选出来的里面取最常见的那个酒店名字作为推荐使用的名字.

Ref:

Quick review on Text Clustering and Text Similarity Approaches, http://www.lumenai.fr/blog/quick-review-on-text-clustering-and-text-similarity-approaches

通俗理解word2vec, https://www.jianshu.com/p/471d9bfbd72f

sklearn: TfidfVectorizer 中文处理及一些使用参数,https://blog.csdn.net/blmoistawinde/article/details/80816179

https://www.coursera.org/lecture/text-mining/4-2-text-clustering-generative-probabilistic-models-part-1-gJTFA, 这里讲了基于 Generative Probabilistic Model 和 Similarity 两种方法的 Text Clustering.

[NLP] 酒店名归类的更多相关文章

  1. 实践1使用XGB实现酒店信息消歧

    XGB算法是决策树衍生出来的一种算法 场景:酒店的业务人员希望我们能够提供一个算法服务去为酒店信息做一个自动化的匹配,以通过算法的手段,找到那些确定相同的酒店和确定不同的酒店 以下代码为部分 理解业务 ...

  2. 一个开源的,跨平台的.NET机器学习框架ML.NET

    微软在Build 2018大会上推出的一款面向.NET开发人员的开源,跨平台机器学习框架ML.NET. ML.NET将允许.NET开发人员开发他们自己的模型,并将自定义ML集成到他们的应用程序中,而无 ...

  3. 开源的,跨平台的.NET机器学习框架ML.NET

    微软在Build 2018大会上推出的一款面向.NET开发人员的开源,跨平台机器学习框架ML.NET. ML.NET将允许.NET开发人员开发他们自己的模型,并将自定义ML集成到他们的应用程序中,而无 ...

  4. 不再为命名而苦恼!使用 MSTestEnhancer 单元测试扩展,写契约就够了

    有没有觉得命名太难?有没有觉得单元测试的命名更难?没错,你不是一个人!看看这个你就知道了:程序员最头疼的事:命名 或它的英文原文 Don’t go into programming if you do ...

  5. mybatis学习(十一)——springmvc++spring+mybatis整合

    做任何一个项目都以一个需求,这里先定义一下需求:利用三大框架查询酒店列表. 一.搭建开发环境 1.创建一个web项目 我这里用的是 jdk1.8+tomact7.0 2.创建hotel表 CREATE ...

  6. Oracle与Mysql的高级查询与难点sql

    一.连接查询  1.内连接      内连接用于返回满足连接条件的所有记录.默认情况下,在执行连接查询时如果没有指定任何连接操作符,那么这些连接查询都属于内连接. Sql代码   1.   SELEC ...

  7. NLP十大里程碑

    NLP十大里程碑 2.1 里程碑一:1985复杂特征集 复杂特征集(complex feature set)又叫做多重属性(multiple features)描写.语言学里,这种描写方法最早出现在语 ...

  8. NLP(十五)让模型来告诉你文本中的时间

    背景介绍   在文章NLP入门(十一)从文本中提取时间 中,笔者演示了如何利用分词.词性标注的方法从文本中获取时间.当时的想法比较简单快捷,只是利用了词性标注这个功能而已,因此,在某些地方,时间的识别 ...

  9. scrapy爬取booking酒店评论数据

    # scrapy爬取酒店评论数据 -- 代码 here:github地址:https://github.com/760730895/scrapy_Booking--  采用scrapy爬取酒店评论数据 ...

随机推荐

  1. Django-CRM项目学习(八)-客户关系系统整体实现(待完成!)

    注意点:利用stark组件与rbac组件实现客户关系系统 1.需求整理与确认 1.1 客户关系系统整体需求 a

  2. openwrt 里LUA程序怎么获取POST数据?

    https://www.zhihu.com/question/31579325 作者:齐葛链接:https://www.zhihu.com/question/31579325/answer/28342 ...

  3. ReSharper2018破解详细方法

    下载地址: 主程序官网下载链接:https://download.jetbrains.com/resharper/ReSharperUltimate.2018.3.3/JetBrains.ReShar ...

  4. 【深色模式】macOS Mojave+Visual Studio for Mac+FineUICore多图赏析!

    全面开启深色模式,今早成功升级到 macOS Mojave,下面就来欣赏一下吧. 点击图片,查看大图 1. 下载 macOS Mojave 2. 安装成功,开启深色模式 3. 来一张桌面截图 4. 开 ...

  5. vue兄弟之间传值 bus中央事件总线

    创建一个eventVue.js文件 import Vue from 'vue' export default new Vue 父 <template> <div> <di ...

  6. SFP光模块与SFP+、XFP、QSFP、GBIC、BIDI的区别

    SFP.SFP+.XFP.QSFP.GBIC和BIDI等不同封装类型光模块不断推陈出新,我们就以市场上比较常见的为主,来谈谈它与其他类似光模块的区别. SFP光模块 SFP光模块又称⼩封装可插拔光模块 ...

  7. Appium 服务器初始化参数(Capability)

    键 描述 值 automationName 自动化测试的引擎 Appium (默认)或者 Selendroid platformName 使用的手机操作系统 iOS, Android, 或者 Fire ...

  8. jmeter学习记录--04--Beanshell

    一.什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanSh ...

  9. document对象获取例子

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  10. Netty 中 LengthFieldBasedFrameDecoder 构造函数取值备忘

    public LengthFieldBasedFrameDecoder(ByteOrder byteOrder, int maxFrameLength, int lengthFieldOffset, ...