分词技术

机器学习在马蜂窝酒店聚合中的应用初探

让人想犯罪 __ 提交于 2020-02-28 08:20:50
出门旅行,订酒店是必不可少的一个环节。住得干净、舒心对于每个出门在外的人来说都非常重要。 在线预订酒店让这件事更加方便。当用户在马蜂窝打开一家选中的酒店时,不同供应商提供的预订信息会形成一个聚合列表准确地展示给用户。这样做首先避免同样的信息多次展示给用户影响体验,更重要的是帮助用户进行全网酒店实时比价,快速找到性价比最高的供应商,完成消费决策。 酒店聚合能力的强弱,决定着用户预订酒店时可选价格的「厚度」,进而影响用户个性化、多元化的预订体验。为了使酒店聚合更加实时、准确、高效,现在马蜂窝酒店业务中近 80% 的聚合任务都是由机器自动完成。本文将详细阐述酒店聚合是什么,以及时下热门的机器学习技术在酒店聚合中是如何应用的。 Part.1 应用场景和挑战 1.酒店聚合的应用场景 马蜂窝酒旅平台接入了大量的供应商,不同供应商会提供很多相同的酒店,但对同一酒店的描述可能会存在差异,比如: 酒店聚合要做的,就是将这些来自不同供应商的酒店信息聚合在一起集中展示给用户,为用户提供一站式实时比价预订服务: 下图为马蜂窝对不同供应商的酒店进行聚合后的展示,不同供应商的报价一目了然,用户进行消费决策更加高效、便捷。 2.挑战 (1) 准确性 上文说过,不同供应商对于同一酒店的描述可能存在偏差。如果聚合出现错误,就会导致用户在 App 中看到的酒店不是实际想要预订的: 在上图中,用户在 App

《自然语言处理实战入门》 ---- 第4课 :中文分词原理及相关组件简介 之 分词算法原理

允我心安 提交于 2020-02-07 10:18:14
文章大纲 分词算法介绍 语言模型 HMM CRF 结构化感知器 开源实现 bi LSTM 开源实现 汉语分词技术----以jieba 分词为例 Jieba分词的特点 分词算法 未登录词识别与词性标注 未登录词识别 词性标注 分词算法介绍 上一节课我们介绍了分词算法主要分为三个类别,除了基于统计算法的分词算法,基于规则的分词,一般都较为简单高效,但是词典的维护对于网络发达、新词层出不穷的今天,很难通过词典覆盖到所有的词。 随着大规模语料库的建立,统计机器学习方法的研究和发展, 来源: CSDN 作者: shiter 链接: https://blog.csdn.net/wangyaninglm/article/details/104206064

「扫盲」 Elasticsearch

て烟熏妆下的殇ゞ 提交于 2020-01-21 15:33:01
什么是Elasticsearch? Elasticsearch is a real-time, distributed storage, search, and analytics engine Elasticsearch 是一个实时的分布式存储、搜索、分析的引擎。 介绍那儿有几个关键字: 实时、分布式、搜索、分析 于是我们就得知道Elasticsearch是怎么做到实时的,Elasticsearch的架构是怎么样的(分布式)。存储、搜索和分析(得知道Elasticsearch是怎么存储、搜索和分析的) 为什么要用Elasticsearch 在学习一项技术之前,必须先要了解为什么要使用这项技术。所以,为什么要使用Elasticsearch呢?我们在日常开发中,数据库也能做到(实时、存储、搜索、分析)。 相对于数据库,Elasticsearch的强大之处就是可以模糊查询。 有的同学可能就会说:我数据库怎么就不能模糊查询了??我反手就给你写一个SQL: select * from user where name like '%公众号Java%' 这不就可以把公众号Java相关的内容搜索出来了吗? 的确,这样做的确可以。但是要明白的是:name like %Java%这类的查询是不走索引的,不走索引意味着:只要你的数据库的量很大(1亿条),你的查询肯定会是秒级别的 而且

[Lucene]-Lucene基本概述以及简单实例

我与影子孤独终老i 提交于 2019-12-24 09:27:42
一、Lucene基本介绍: 基本信息:Lucene 是 Apache 软件基金会的一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene 的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。 文件结构:自上而下树形展开,一对多。 索引Index:相当于库或者表。 段Segment:相当于分库或者分表。 文档Document:相当一条数据 ,如小说吞噬星空 域Field:一片文档可以分为多个域,相当于字段,如:小说作者,标题,内容。。。 词元Term:一个域又可以分为多个词元,词元是做引搜索的最小单位,标准分词下得词元是一个个单词和汉字。 正向信息: 索引->段->文档->域->词 反向信息: 词->文档。  二、Lucene全文检索: 1、数据分类: 结构化数据:数据库,固定长度和格式的数据。 半结构化数据:如xml,html,等..。 非结构化数据:长度和格式都不固定的数据,如文本... 2、检索过程:Luncene检索过程可以分为两个部分,一个部分是上图左侧结构化,半结构化,非结构化数据的索引建立过程,另一部分是右侧索引查询过程。 索引过程: 有一系列被索引文件 被索引文件经过语法分析和语言处理形成一系列词(Term)。

中文搜索引擎技术揭密:中文分词

99封情书 提交于 2019-12-21 05:48:56
中文搜索引擎技术揭密:中文分词 前言 信息的飞速增长,使搜索引擎成为人们查找信息的首选工具,Google、百度、yisou、中搜等大型搜索引擎一直人们讨论的话题。随着搜索市场价值的不断增加,越来越多的公司开发出自己的搜索引擎,阿里巴巴的商机搜索、8848的购物搜索等也陆续面世,自然,搜索引擎技术也成为技术人员关注的热点。 搜索引擎技术的研究,国外比中国要早近十年,从最早的Archie,到后来的Excite,以及altvista、overture、google等搜索引擎面世,搜索引擎发展至今,已经有十几年的历史,而国内开始研究搜索引擎是在上个世纪末本世纪初。在许多领域,都是国外的产品和技术一统天下,特别是当某种技术在国外研究多年而国内才开始的情况下。例如操作系统、字处理软件、浏览器等等,但搜索引擎却是个例外。虽然在国外搜索引擎技术早就开始研究,但在国内还是陆续涌现出优秀的搜索引擎,像百度、中搜等。目前在中文搜索引擎领域,国内的搜索引擎已经和国外的搜索引擎效果上相差不远。之所以能形成这样的局面,有一个重要的原因就在于中文和英文两种语言自身的书写方式不同,这其中对于计算机涉及的技术就是中文分词。 什么是中文分词 众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子I am a student,用中文则为:

运用CRF技术进行简单分词

匿名 (未验证) 提交于 2019-12-02 23:42:01
1,下载icwb2-data语料库 2, 按4-tag对训练数据(pku_training.utf8)进行标注,make_crf_train_data 所谓的4-tag:S,单个词;B,词首;E,词尾;M,词中 代码如下: input_data = codecs.open(pku_training, 'r', 'utf-8') output_data = codecs.open(pku_training_out, 'w', 'utf-8') for line in input_data.readlines(): word_list = line.strip().split() for word in word_list: if len(word) == 1: output_data.write(word + " S\n") else: output_data.write(word[0] + " B\n") for w in word[1:len(word)-1]: output_data.write(w + " M\n") output_data.write(word[len(word)-1] + " E\n") output_data.write("\n") input_data.close() output_data.close() 3,下载CRF+±0.58安装包

掌握动态规划,助你成为优秀的算法工程师

余生颓废 提交于 2019-11-30 18:08:25
1.导论 相信很多同学已经在为今年的校招做准备了,随着AI的火热,越来越多的同学涌入了算法的行当之中。那去年校招的算法岗是有多火热?在知乎上看到这么一条帖子,先不说内容哈,足足400w+的阅读量啊。 不光是计算机或软件专业的学生,很多电子,通信,自动化等相关专业的同学也吸引了进来。当然,这应该是件好事。但是相当一部分同学,在学习的过程中,尤其是刚入门的时候,可能会有这样一个疑问:算法工程师的算法,为什么不是指《算法导论》中的算法(以下称为经典算法,用以区分),而是指机器学习里的算法。都叫算法(Algorithm),但好像不是一回事啊,两者有什么关系,又有什么区别呢? 本文试图通过动态规划这一经典算法中的重要内容,同时又在机器学习算法中有着广泛的应用,来简单探讨一下这两种“算法”。 2.动态规划 首先,动态规划(Dynamic Programming)是《算法导论》中的重要章节,同时也是在机器学习算法中有着非常重要应用的一种优化算法。可以说是,无论是否是算法工程师都应该掌握的一种算法。再功利一点说,动态规划也是诸多面试官特别喜欢考的一种题型,下面就带大家稍微温故一下。 按照教材[1]的介绍,动态规划通常需要按如下4个步骤来进行设计: 刻画一个最优解的结构特征。 递归地定义最优解的值。 计算最优解的值,通常采用自底向上的方法。 利用计算出信息构造一个最优解。 简单点说

jieba分词/jieba-analysis(java版)

北战南征 提交于 2019-11-28 15:45:05
简介 支持分词模式 Search模式,用于对用户查询词分词 Index模式,用于对索引文档分词 特性 支持多种分词模式 全角统一转成半角 用户词典功能 conf 目录有整理的搜狗细胞词库 因为性能原因,最新的快照版本去除词性标注,也希望有更好的 Pull Request 可以提供该功能。 简单使用 获取jieba-analysis <dependency> <groupId>com.huaban</groupId> <artifactId>jieba-analysis</artifactId> <version>1.0.2</version> </dependency> 案例 @Test public void testDemo() { JiebaSegmenter segmenter = new JiebaSegmenter(); String[] sentences = new String[] {"这是一个伸手不见五指的黑夜。我叫孙悟空,我爱北京,我爱Python和C++。", "我不喜欢日本和服。", "雷猴回归人间。", "工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作", "结果婚的和尚未结过婚的"}; for (String sentence : sentences) { System.out.println(segmenter

哈工大pyltp

只愿长相守 提交于 2019-11-28 10:16:46
介绍 LTP(Language Technology Platform)为中文语言技术平台,是哈工大社会计算与信息检索研究中心开发的一整套中文语言处理系统。LTP制定了基于XML的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic Link Library,DLL)的应用程序接口,可视化工具,并且能够以网络服务的形式进行使用。 LTP开发文档: https://ltp.readthedocs.io/zh_CN/latest/index.html 语言云LTP-Cloud: http://www.ltp-cloud.com/ 模型下载地址: http://ltp.ai/download.html 安装 下面介绍 Windows10 Python 环境下 LTP 的扩展包 pyltp 安装过程。 1.常见错误 大家通常会调用 “pip install pyltp” 安装该扩展包,但会遇到各种错误,下面介绍一种可行的方法。 2.安装pyltp包 首先,安装Python3.6环境,如下图所示“python-3.6.7-amd64.exe”。 接着,下载pyltp扩展包的whl文件至本地,调用CMD环境进行安装,注意需要将所在文件的路径写清楚。 pyltp-0.2.1-cp35

Sping Cloud 分布式数据存储 分布式事务 超级有用

假装没事ソ 提交于 2019-11-28 04:16:31
Sping Cloud 分布式数据存储 分布式事务 常见搜索引擎 1. Lucene 搜索引擎库,功能强大,接入复杂 2. Solr 基于Lucene的搜索引擎服务器 3. Elasticsearch 基于Lucene的搜索引擎服务器,分布式 Elasticsearch基础概念3-1 node 节点,部署Elasticsearch程序的服务器 cluster 集群,多个节点组成的架构 index 索引,相当于关系型数据库的database shard 索引分片,索引可以被设置为多个分片 replicas 索引副本 Elasticsearch基础概念3-2  type 类型,对应于关系型数据库的table document 文档,类似于关系型数据库的row 关系型数据库 Elasticsearch Database index Table type Row document Elasticsearch基础概念3-3  文档三元素 _index:文档对应的索引 _type:文档对应的数据类型 _ID:文档的唯一ID Elasticsearch客户端 - Kibana  Kibana → Dev Tools Elasticsearch命令分类 索引管理 创建、配置、删除索引 文档管理 创建、修改、删除文档 数据查询 空查询 指定索引查询、指定类型查询 请求体查询(过滤查询