基本概念
分/切词(Tokenization)
基于词典的分词方法(最大匹配法、最短路径法、最大概率法),实际用的比较多的如下:基于条件随机场(CRF)的中文分词算法的开源系统。基于张华平NShort的中文分词算法的开源系统(结巴分词核心算法)。
词性标注(POS Tagging)
词性,也称为词类,是词汇的语法属性,是连接词汇到句法的桥梁。
词性标注(Part-of-Speech Tagging或POS Tagging),又称为词类标注,是指判断出在一个句子中每个词所扮演的语法角色。这块的技术大多数使用HMM(隐马尔科夫模型)+ Viterbi算法,最大熵算法(Maximum Entropy)。目前流行的中文词性标签有两大类:北大词性标注集和宾州词性标注集。
语义组块(Chunking)
将标注好词性的句子按句法结构把某些词聚合在一起形成比如主语、谓语、宾语等等。语义组块最常用的方法是条件随机场(Conditional Random Fields,CRF)
命名实体标注(Named Entity Tagging)
命名实体识别用于识别文本中具有特定意义的实体,常见的实体主要包括人名、地名、机构名及其他专有名词等。命名实体识别任务还要识别出文本中三大类(实体类、时间类和数字类)、七小类(人名、机构名、地名、时间、日期、货币和百分比)命名实体。
这块使用到的技术就是标准的HMM模型和Viterbi算法。
句法分析
句法分析是根据给定的语法体系自动推导出句子的语法结构,分析句子所包含的语法单元和这些语法单元之间的关系,将句子转化为一棵结构化的语法树。
文本/语义分析
主要包括:文本相似度分析、文本关键词提取、文本分类、内容摘要、情感倾向分析。
其中语义分析,就涉及到指代消解等技术;文本分类可以用朴素贝叶斯算法。
模型
n-gram model
n元语法(n-gram)指文本中连续出现的n个语词。n元语法模型是基于(n-1)阶马尔可夫链的一种概率语言模型,通过n个语词出现的概率来推断语句的结构。
当n分别为1、2、3时,又分别称为一元语法(unigram)、二元语法(bigram)与三元语法(trigram)。
Skip-Gram model
Skip-Gram模型的训练输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。
CBOW(Continuous Bag-of-Words) model
CBOW模型的训练输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这特定的一个词的词向量。
Skip-Gram VS CBOW
cbow和skip-gram都是在Word2vec中用于将文本进行向量表示的实现方法。对于这两个模型,Word2vec给出了两套框架,分别是基于Hierarchical Softmax和Negative Sampling来设计的。
TF-IDF(term frequency–inverse document frequency)
将一个词的TF(词频)和IDF(逆文档频率)相乘,就能得这个词的TF-IDF的值。某个词在文章中的TF-IDF越大,那么一般而言这个词在这篇文章的重要性会越高,所以通过计算文章中各个词的TF-IDF,由大到小排序,排在最前面的几个词,就是该文章的关键词。
BM25
早期的Lucence是直接把TF-IDF作为默认相关性算法来用的。新版的Lucence不再把TF-IDF作为默认的相关性算法,而是采用了BM25(BM是Best Matching的意思)。BM25是基于TF-IDF并做了改进的算法。
工具
ik-analyzer
Fasttext
Word2vec
应用
- 商品类目预测
- Query Understanding
- 查询扩展(Query Expansion):
查询词扩展技术通过将与用户查询词相近、相关的词扩展到用户查询词中的方法, 更准确地描述用户的信息需求, 去除用户查询词的多义性, 从而更精确地查询用户所需信息。 - 核心词提取:
- query类目预测(Query Classification):
- 意图识别:搜店铺or商品
- 同义词改写:
统计同一Session内用户的查询对,选择词频共现比较高的查询对作为候选,再人工审核加入到同义词词典。 - 拼写纠错(Query Correction):
- 语义标签(Semantic Tagging):
这个模块主要是对 query 中的命名实体进行识别,比如对电商搜索 query 中的品牌词、产品词、属性词、地址进行识别。 - 下拉推荐(Query Suggestion)
- 查询扩展(Query Expansion):