因工做上须要,要求在excel表格提交后,对其中的数据进行自动识别,先根据条形码一栏和模板库里的商品进行比对,如果没有条形码,则根据输入的商品名进行比对,此时就须要使用中文分词技术。算法
所谓的中文分词(Chinese Word Segmentation) ,既CWS指的是将一个汉字序列切分红一个一个单独的词。咱们知道,在英文的行文中,单词之间是以空格做为分界符的,而中文只是字、句和段能经过明显的分界符来简单划界,惟独词没有一个形式上的分界符,虽然英文也一样存在短语的划分问题,不过在词这一层上,中文比之英文要复杂的多、困难的多。数据库
分词技术就是搜索引擎针对用户提交查询的关键词串进行查询处理后,根据用户的关键词串用各类匹配方法进行的一种技术。学习
那么分词技术是如何在查询处理时工做的呢?很简单,首先若是用户提交的字符串没有超过3个中文字,就会直接到数据库索引词汇。超过4个中文字的,首先用分隔符好比空格,标点符号,将查询串分割成若干子查询串。举个例子。“什么是黄焖鸡米饭” 咱们就会把这个词分割成“ 什么是,黄焖鸡,米饭。”这种分词方法叫作反向匹配法。而后再看用户提供的这个词有没有重复词汇,若是有的话,会丢弃掉,默认为一个词汇。接下来检查用户提交的字符串,有没有字母和数字。若是有的话,就把字母和数字认为一个词。这就是搜索引擎的查询处理。大数据
广义上咱们将现有的分词算法分为三类:搜索引擎
又叫作机械分词方法,是最经常使用的分词方法,百度使用的就是此种方法。经常使用的分为如下几种:人工智能
什么意思呢?就是把一个词从左至右来分词。举个例子:“不知道你在说什么”,这句话采用正向最大匹配法是如何分的呢?“不知道,你,在,说什么”。spa
经过上面的例子可知,反向最大匹配法来分上面这段是如何分的:“不,知道,你在,说,什么”,这个就分的比较多了,反向最大匹配法就是从右至左。excel
也能够叫作最短路径分词法。这个怎么理解呢 ,就是说,我一段话里面要求切出的词数是最少的。索引
仍是上面哪句话:“不知道你在说什么” 最短路径分词法就是指,我把上面哪句话分红的词要是最少的。不知道,你在,说什么,这就是最短路径分词法,分出来就只有3个词了 。好了,固然还有上面三种能够相互结合组成一些分词方法。好比正向最大匹配法和反向最大匹配法组合起来就能够叫作双向最大匹配法。开发
就是进行由左到右、由右到左两次扫描,以提升精确度。
这种分词方法是让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它一般包括三个部分:分词子系统、句法语义子系统、总控部分。目前来讲这种方法还不成熟,可是我的见解是,随着人工智能热潮的到来,伴随着大数据分析以及deep learning的发展,将来的分词引擎处理极有可能会被人工智能AI所替代。
就是根据词组的统计,就会发现两个相邻的字出现的频率最多,那么这个词就很重要。就能够做为用户提供字符串中的分隔符。这样来分词。好比,“个人,你的,许多的,这里,这一,那里”。等等,这些词出现的比较多,就从这些词里面分开来。
由于这次的项目只是须要商家自行导入商品信息,经过后台比对后显示商品,因此我选择了第一种的分词方法,同时开发环境是PHP,为了方便维护,选用了SCWS做为中文分词引擎。