logo
BosonNLP Blog
一行命令让ElasticSearch支持中文分词搜索

Alt text

相信大家在开发博客,在线商城的时候会涉及到搜索功能。而近几年火起来的 ElasticSearch(ES)凭借其稳定、可靠、快速的实时搜索普遍受到大家的好评,连 GitHub、SoundCloud 也都将 ES 作为其核心搜索组件。

但是 ES 本身对中文分词和搜索比较局限。因为内置的分析器在处理中文分词时,只有两种方式:一种是单字(unigram)形式,即简单粗暴的将中文的每一个汉字作为一个词(token)分开;另一种是两字(bigram)的,也就是任意相邻的两个汉字作为一个词分开。这两种方式都不能很好的满足现在的中文分词需求,进而影响了搜索结果

举个例子: 假设我们的 index 里面存储了3篇 documents 如下:

id content
1 美称中国武器商很神秘 花巨资海外参展却一言不发
2 在第一界国际锦标赛中 国家代表李雷勇夺冠军
3 国武公司近日上市
  • Case 1:查询“中国”,期望只得到 id 为1的 document。

    用 unigram 的分析器(即默认的 Standard Analyzer)查询结果为 id 1和 id 2的content;bigram 的分析器(名为cjk)的结果为id 1。Standard Analyzer 没有给出预期结果是因为它把“中国”切分为“中”、“国”2个 token,因此误给出了 id 2的结果。

  • Case 2:查询“国武”这一家公司,期望只得到 id 为3的 document。

    Standard Analyzer 和 cjk 的查询结果都会同时给出 id 1和 id 3的 document,但是 id 1 的 document 中的“国武”并不是所指的公司。

    (注:以上查询均用query_string)

因此我们可以发现内置的分析器有它的局限性,并不能满足复杂或者特定的搜索需求。为此,玻森数据开发了一款基于玻森中文分词的 ES 插件(Elasticsearch-Analysis-BosonNLP),方便大家对中文数据进行更精确的搜索。

现在已有一些成熟的 ES 中文分词插件,但在分词引擎准确率上,相信 BosonNLP 的中文分词能满足大家不同领域上多样化的需求。有兴趣的朋友可以查看11款开放中文分词引擎大比拼

接下来,3分钟教会大家如何安装使用玻森 ES 中文分词插件 Beta 版(以 ES 2.2.0 版本为例):

  • 安装

只需如下一个命令:

$ sudo bin/plugin install https://github.com/bosondata/elasticsearch-analysis-bosonnlp/releases/download/1.3.0-beta/elasticsearch-analysis-bosonnlp-1.3.0-beta.zip

注:对于其他不同版本的 ES,只需要在命令里更换对应的插件版本号即可。

  • 使用

需要在elasticsearch.yml文件中的 analyzer 里配置好玻森 bosonnlp analyzer(需要配置 API_TOKEN 以及分词的参数)。详情解释请查看 Github 上玻森 ES 中文分词的README

bosonnlp:
    type: bosonnlp
    API_URL: http://api.bosonnlp.com/tag/analysis
    API_TOKEN: *PUT YOUR API TOKEN HERE*

完成以上步骤之后便可以使用玻森 ES 分词插件了。

对比之前 Case 2 的查询: 查询“国武”这一家公司,期望只得到 id 为3的 document。玻森ES分词插件搜索结果:

{
  "took": 70,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 0.15342641,
    "hits": [
      {
        "_index": "bosonnlp_test",
        "_type": "text",
        "_id": "3",
        "_score": 0.15342641,
        "_source": {
          "content": "国武公司近日上市"
        }
      }
    ]
  }
}

当然,如果对分词有特定需求的小伙伴可以在配置里修改对应的参数。目前,玻森数据对于中文分词提供了繁简转换、新词发现等功能,能满足不同领域的搜索需求。

希望这款插件能提升你的工作效率!

GitHub上有具体的说明。这里附上例子中索引 document 的 bash 文件以方便测试。


界面新闻联合BosonNLP 年度6万新闻大盘点

农历初一给大家拜年啦! 回顾纷繁的2015,大家是不是好奇自己看了哪些新闻,又错过了哪些热点呢?我们携手界面新闻为大家带来最干货的年度6万篇新闻盘点,快来看看那个喜欢在凌晨读思聪新闻的是不是你?

阅读全文…
机器人写诗竟然到了这个水平!

昔日辉煌的电影雄狮米高梅公司在提出自己的拉丁文口号“ars gratia artis”,即英文“art for art’s sake(艺术的归艺术)”的时候,一方面主张艺术内在的自主性与内在价值,另一方面也毫不含蓄地表达了作为艺术创作者的骄傲。在上世纪四十年代,这头雄狮标志一度成为了美国的象征。 2010年,这只创立了86年,被几经转手的骄傲雄狮最终没有逃离破产清算的命运。应该说,造成雄狮的悲剧命运原因是多方面的,电视工业的兴起,管理层动荡等都将其推向了衰落深渊。昔日“art for art’s sake”口号一方面难于经受商业逻辑的考验,而可能更令米高梅始料未及的是,作为人类智慧与创造力浓缩体现的艺术创作本身,也在越来越多的被机器所辅助完成,甚至取代。 回顾过去二十年人工智能的发展,从1997年IBM深蓝在国际象棋的竞技上战胜人类世界冠军Garry Kasparov,到2015年德国科学家Gatys等人通过深度神经网络将任意图画转化成特定艺术家的风格,成果卓越。人类所引以为豪的创造及艺术领域正在不断受到挑战,技术与艺术的界限日益模糊。 语言能力从来都是人类的重要天赋,而对自然语言的语义理解也一直是玻森数据所致力解决的核心难题。今天,玻森机器人通过对唐诗文本的学习,能够自如地创作唐诗风格的诗篇。 在通过深度神经网络技术学习了全唐诗五万首后,玻森的编诗机器人可以根据不同的风格,甚至是不同的起首字,自动 ...

阅读全文…
J.D. Power联合玻森数据,建立标准化数据产品Cloud VOC

互联网的发展让过去沉默的消费者主动在网络论坛、社交媒体等平台发言、分享、传播,根据2015年J.D. Power汽车电商满意度研究(AES)显示,77%的用户在有新车购买意向时,会通过互联网查询信息和寻求建议。互联网的影响越来越大,面对现在互联网上大量出现的高质量的汽车评论数据,厂商对产品的管理遭遇到一系列如数据量大实时性强、用户真实性参差不齐、互联网的语言与车厂管理的语言匹配度不高,提取归类内容难度大等问题。互联网上用户评价数据(VOC)愈发成为主机厂产品力管理和改进行动计划制定的重要数据依据之一,如何挖掘出数据背后的价值,这对企业而言不仅是机遇,更是巨大的挑战。 在大数据时代下汽车主机厂需要新的工具来落实和优化产品力管理。J.D. Power联合玻森数据(BosonData)开发新车质量反馈系统,面向整车厂质量管理和产品工程体系,结合其在汽车领域所建立的标准化体系报告,建立标准化数据产品——Cloud VOC。 Cloud VOC的加工过程 使用传统技术对互联网语言进行的定量分析仅限于声量、转发量、词频等简单统计,无法真正实现和厂商管理语言的对接。但J.D. Power的Cloud VOC围绕J.D. Power行业标准管理视角,能提供更为专业和高精度的产品管理数据服务。 互联网中采集的原始数据并非可用样本,需要根据车厂所能解读的管理标准进行清洗 ...

阅读全文…
高富帅教授空降玻森引围观

小玻曰:上周为迎接高富帅教授的到来,小编特意向程序猿和攻城狮们恶补了一番词典学习的知识。然并卵,大神们就是拿来给我们膜拜的,年纪轻轻就做出了那么多研究成果,关键是颜值还很高! 哥伦比亚大学电子电气工程系John Wright教授于上周来玻森数据访问交流。John Wright教授在学术界做出了很多重量级的学术成果,包括采用稀疏表述方法进行图片超分辨率、人脸识别算法等。除了在学术界得到认可,John Wright教授也获得了CNN、《连线(Wired)》杂志等媒体的报道关注。他是2012年业内最好的计算学习理论会议COLT的最佳论文得主,也是今年唯一获得IEEE PAMI Young Researcher Award奖项殊荣的学者。 John Wright教授本次访问与玻森小伙伴们分享了他和学生近期在词典学习(Dictionary learning)问题上的重大突破,证明了这类非凸函数的优化问题,可以通过多项式优化算法获得最优解,信号的非零元素允许与词典大小线性增长,达到该问题的理论极限。该问题在图像表示、图像压缩、文本主题模型等领域具有重要的应用价值。 在分享词典学习问题之余,John Wright教授也跟小伙伴们就做研究的方法、自然语言处理等问题进行了讨论,并邀请玻森团队有机会到纽约参观其实验室,进行研究合作。 以下是本次讲座的部分照片。

阅读全文…
  • 1
  • 2