首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

谈谈分词的解决方案

首先我们来看一个常用的场景:

一个购物网站的搜索功能,要求可以根据用户的搜索精准的查询到商品,比如我要买咖啡,我搜索关键字咖啡可以搜索到很多咖啡商品,但我要求搜索我要买好喝的咖啡也可以搜索到很多咖啡商品。这要如何实现呢?

对于仅仅搜索关键字来说,小库直接去like查询,就可以解决,若库大了做索引,缓存等都可以去解决,这里就不再赘述了,因为我们今天主要的核心讨论点是分词

我们来看这句话我要买好喝的咖啡,通过我们自主的观察,我们需要的是咖啡,其是一个名词,而去除掉是一个动词,好喝是一个形容词。这样我们就捋清楚了,我们其实大部分搜索需要的都是名词。

这样我们只要能从我要买好喝的咖啡中通过分词,顺利找到咖啡,或者说,从一段需要搜索的话中,找到其中的所有名词,就可以了。

今天来给大家聊聊,针对一些简单的分词的解决方案。

THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。THULAC具有如下几个特点:

能力强。利用我们集成的目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。

准确率高。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%,与该数据集上最好方法效果相当。

速度较快。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度可达到1.3MB/s。

目前,其提供了C++、Java和Python的包供大家使用,那么对于其他语言的人怎么办呢?

其实很简单,只要用这三种语言,写个端口和地址监听,提供一个分词的API接口就行了,有人会问了,这三种语言不会啊,环境都不会配,怎么办?

不要忘记了,我们有 Docker !!!

我选用Python来构建一个API接口,通过使用thulac的包,然后我选用flask(http://www.pythondoc.com/Flask-RESTful/)来写个简单的接口文件,然后在一个有Python环境下,运行监听地址和端口,其他语言只要去访问这个接口,就可以获取到针对句子的分词结果了,然后根据自己的业务逻辑,对分词结果做相应的处理,就可以了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180307G15K2Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券