seo问题,啥叫正向匹配?啥叫逆向匹配?举例说明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了seo问题,啥叫正向匹配?啥叫逆向匹配?举例说明相关的知识,希望对你有一定的参考价值。

下面牛到家SEO介绍的分词算法中最简单的正向最大匹配和反向最大匹配。

这种两种方法都是机械分词方法,它是按照一定的策略将待分析的汉字串与一个”充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。
按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的词数最小)。
还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。
一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词
类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率
定义比较抽象,举个例子来说明正向最大匹配和反向最大匹配。
例子:’今天来了许多新同事’
1.正向最大匹配方式,最大长度为5
今天来了许
今天来了
今天来
今天 ====》 得到一个词–今天
来了许多新
来了许多
来了许
来了
来 ====》 得到一个词–来
了许多新同
了许多新
了许多
了许
了 ====》 得到一个词–了
许多新同事
许多新同
许多新
许多 ====》得到一个词– 许多
新同事
新同
新 ====》得到一个词– 新
同事 ====》得到一个词– 同事
最后正向最大匹配的结果是:
/今天/来/了/许多/新/同事/
2.反向最大匹配方式,最大长度为5
许多新同事
多新同事
新同事
同事 ====》得到一个词– 同事
来了许多新
了许多新
许多新
多新
新 ====》得到一个词– 新
天来了许多
来了许多
了许多
许多 ====》得到一个词– 许多
今天来了
天来了
来了
了 ====》得到一个词– 了
今天来
天来
来 ====》得到一个词– 来
今天 ====》得到一个词– 今天
最后反向最大匹配的结果是:
/今天/来/了/许多/新/同事/
正向最大匹配和反向最大匹配的结果并不一定相同
例子:’我一个人吃饭’
1.正向最大匹配方式,最大长度为5
我一个人吃
我一个人
我一个
我一
我 ====》得到一个词– 我
一个人吃饭
一个人吃
一个人
一个 ====》得到一个词– 一个
人吃饭
人吃
人 ====》得到一个词– 人
吃饭 ====》得到一个词– 吃饭
最后正向最大匹配的结果是:
/我/一个/人/吃饭/
2.反向最大匹配方式,最大长度为5
一个人吃饭
个人吃饭
人吃饭
吃饭 ====》得到一个词– 吃饭
我一个人
一个人
个人 ====》得到一个词– 个人
我一
一 ====》得到一个词– 一
我 ====》得到一个词– 我
最后反向最大匹配的结果是:
/我/一/个人/吃饭/
这次两种方式的结果就不一致了。更多SEO知识请百度搜牛到家SEO
参考技术A 正向匹配就是按照关键词从左到右来匹配关键词,逆向就是相反的
比如说,火锅店加盟,如果搜索火锅店加盟就是正向匹配,如果搜索加盟火锅店就是逆向匹配
值得注意的是正向搜索和逆向搜索是两个不同的词,搜索量也是不同的,所以设置关键词时一定要注意你要做的词是哪个,不排除正向的词被逆向搜索词搜索触发排名,但那个是另一回事,如果确定好要做的词一定要放成正向
参考技术B 标题,你是一只超级猪 正相匹配:你是猪 逆向:猪是你 参考技术C 听过串词、分词、切词,从没听过正向逆向匹配。。。 参考技术D 逆向最大匹配法通常简称为RMM法。RMM法的基本原理与MM法相同 ,不同的是分词切分的方向与MM法相反,而且使用的分词辞典也不同。逆向最大匹配法从被处理文档的末端开始匹配扫描,每次取最末端的2i个字符(i字字串)作为匹配字段,若匹配失败,则去掉匹配字段最前面的一个字,继续匹配。相应地,它使用的分词词典是逆序词典,其中的每个词条都将按逆序方式存放。在实际处理时,先将文档进行倒排处理,生成逆序文档。然后,根据逆序词典,对逆序文档用正向最大匹配法处理即可。
例子:’我一个人吃饭’
反向最大匹配方式,最大长度为5
一个人吃饭
个人吃饭
人吃饭
吃饭 ====》得到一个词– 吃饭
我一个人
一个人
个人 ====》得到一个词– 个人
我一
一 ====》得到一个词– 一
我 ====》得到一个词– 我
最后反向最大匹配的结果是:
/我/一/个人/吃饭/

正向_逆向匹配分词

# 1、统计分词词典,确定词典中最长词条的字符m;
# 2、从左向右取待切分语句的m个字符作为匹配字段,查找词典,如果匹配成功,则作为一个切分后的词语,
# 否则,去掉待匹配字符的最后一个继续查找词典,重复上述步骤直到切分出所有词语。



dictA = [‘南京市‘, ‘南京市长‘, ‘长江大桥‘, ‘大桥‘]

maxDictA = max([len(word) for word in dictA])

sentence = "南京市长江大桥"

def cutA(sentence):
result = []
sentenceLen = len(sentence)
n = 0

while n < sentenceLen:
matched = 0

for i in range(maxDictA, 0, -1):


piece = sentence[n:n+i]

if piece in dictA:
result.append(piece)
matched = 1
n = n + i
break
if not matched:

result.append(sentence[n])
n += 1

print(result)

cutA(sentence) # [‘南京市长‘, ‘江‘, ‘大桥‘]

dictB = [‘南京市‘, ‘南京市长‘, ‘长江大桥‘, ‘大桥‘]

maxDictB = max([len(word) for word in dictA])

sentence = "南京市长江大桥"
def cutB(sentence):
result = []
sentenceLen = len(sentence)

while sentenceLen > 0:
word = ‘‘
for i in range(maxDictB, 0, -1):
piece = sentence[sentenceLen-i:sentenceLen]
if piece in dictB:
word = piece
result.append(word)
sentenceLen -= i
break

if word is ‘‘:
sentenceLen -= 1
result.append(sentence[sentenceLen])

print(result[::-1])

cutB(sentence) # [‘南京市‘, ‘长江大桥‘]

# 双向最大匹配法
# 思想: 将正向最大匹配和逆向匹配得到的分词结果进行比较,按照最大匹配原则,选择切分总词数最少的作为最终分词结果。


































































































以上是关于seo问题,啥叫正向匹配?啥叫逆向匹配?举例说明的主要内容,如果未能解决你的问题,请参考以下文章

nlp正向最大匹配算法逆向最大匹配算法双向最大匹配算法代码实现

中文分词:正向最大匹配与逆向最大匹配

正向_逆向匹配分词

自然语言处理正向逆向双向最长匹配算法的 切分效果与速度测评

中文分词--最大正向匹配算法python实现

html5 啥叫文本节点