山东省建设厅网站多少,网络营销推广的方案,钓鱼网站制作的报告,做网站linux主机问题描述#xff1a;由于公司业务产品中#xff0c;需要用户自己填写公司名称#xff0c;而这个公司名称存在大量的乱填现象#xff0c;因此需要对其做一些归一化的问题。在这基础上#xff0c;能延伸出一个预测用户填写的公司名是否有效的模型出来。 目标#xff1a;问题… 问题描述由于公司业务产品中需要用户自己填写公司名称而这个公司名称存在大量的乱填现象因此需要对其做一些归一化的问题。在这基础上能延伸出一个预测用户填写的公司名是否有效的模型出来。 目标问题提出来了就是想找到一种办法来预测用户填写的公司名是否有效 问题分析要想预测用户填写的公司名称是否有效需要用到NLP的知识内容我们首先能够想到的是利用NLP中的语言模型来对公司名称进行训练建模并结合其他的特征如长度等进行预测。 一、N-Gram的原理 N-Gram是基于一个假设第n个词出现与前n-1个词相关而与其他任何词不相关。这也是隐马尔可夫当中的假设。整个句子出现的概率就等于各个词出现的概率乘积。各个词的概率可以通过语料中统计计算得到。假设句子T是有词序列w1,w2,w3...wn组成用公式表示N-Gram语言模型如下 P(T)P(w1)*p(w2)*p(w3)***p(wn)p(w1)*p(w2|w1)*p(w3|w1w2)***p(wn|w1w2w3...) 一般常用的N-Gram模型是Bi-Gram和Tri-Gram。分别用公式表示如下 Bi-Gram: P(T)p(w1|begin)*p(w2|w1)*p(w3|w2)***p(wn|wn-1) Tri-Gram: P(T)p(w1|begin1,begin2)*p(w2|w1,begin1)*p(w3|w2w1)***p(wn|wn-1,wn-2) 注意上面概率的计算方法P(w1|begin)以w1为开头的所有句子/句子总数p(w2|w1)w1,w2同时出现的次数/w1出现的次数。以此类推。这里需要进行平滑二、N-Gram的应用 根据上面的分析N-Gram有时也称为N元模型是自然语言处理中一个非常重要的概念通常在NLP中它主要有两个重要应用场景 1、人们基于一定的语料库可以利用N-Gram来预计或者评估一个句子是否合理。 2、另外一方面N-Gram的另外一个作用是用来评估两个字符串之间的差异程度。这是模糊匹配中常用的一种手段。 1、N-gram在两个字符串的模糊匹配中的应用 首先需要介绍一个比较重要的概念N-Gram距离。 1N-gram距离 它是表示两个字符串st分别利用N-Gram语言模型来表示时则对应N-gram子串中公共部分的长度就称之为N-Gram距离。例如假设有字符串s那么按照N-Gram方法得到N个分词组成的子字符串其中相同的子字符串个数作为N-Gram距离计算的方式。具体如下所示 字符串sABC对字符串进行分词考虑字符串首尾的字符begin和end得到beginABCend。这里采用二元语言模型则有begin,A、A,B、B,C、C,end。 字符串tAB对字符串进行分词考虑字符串首尾的字符begin和end得到beginABend。这里采用二元语言模型则有begin,A、A,B、B,end。 此时若求字符串t与字符串s之间的距离可以用M-(N-Gram距离)0。 然而上面的N—gram距离表示的并不是很合理他并没有考虑两个字符串的长度所以在此基础上有人提出非重复的N-gram距离公式如下所示 上面的字符串距离重新计算为 43-2*31 2、N-Gram在判断句子有效性上的应用 假设有一个字符串sABC,则对应的BI-Gram的结果如下begin,A、A,B、B,C、C,end。则对应的出现字符串s的概率为 P(ABC)P(A|begin)*P(B|A)*P(C|B)*P(end|C)。 3、N-Gram在特征工程中的应用 在处理文本特征的时候通常一个关键词作为一个特征。这也许在一些场景下可能不够需要进一步提取更多的特征这个时候可以考虑N-Gram思路如下 以Bi-Gram为例在原始文本中以每个关键词作为一个特征通过将关键词两两组合得到一个Bi-Gram组合再根据N-Gram语言模型计算各个Bi-Gram组合的概率作为新的特征。 转载于:https://www.cnblogs.com/ljy2013/p/6425277.html