当前位置: 首页 > news >正文

巴彦淖尔网站制作开发seo优化网络公司

巴彦淖尔网站制作开发,seo优化网络公司,公司局域网组建方案,.net和php哪个做网站好目录 1.切分算法 2.完全切分 3.正向最长匹配 4.逆向最长匹配 5.双向最长匹配 6.速度评测 1.切分算法 词典确定后,句子可能含有很多词典中的词语,他们有可能互相重叠,如何切分需要一些规则。常用规则为:正向匹配算法、逆向匹…

目录

1.切分算法

2.完全切分

3.正向最长匹配

4.逆向最长匹配

5.双向最长匹配

6.速度评测


1.切分算法

        词典确定后,句子可能含有很多词典中的词语,他们有可能互相重叠,如何切分需要一些规则。常用规则为:正向匹配算法、逆向匹配算法以及双向匹配算法。但他们都是基于完全切分过程。

2.完全切分

        完全切分指的是,找出一段文本中的所有单词。朴素的完全切分算法其实非常简单,只要遍历文本中的连续序列,查询该序列是否在词典中即可。定义词典为dic,文本为text,当前的处理位置为i,完全切分的python算法如下:

def fully_segment(text, dic):word_list = []for i in range(len(text)):                  # i 从 0 到text的最后一个字的下标遍历for j in range(i + 1, len(text) + 1):   # j 遍历[i + 1, len(text)]区间word = text[i:j]                    # 取出连续区间[i, j]对应的字符串if word in dic:                     # 如果在词典中,则认为是一个词word_list.append(word)return word_listif __name__ == '__main__':dic = load_dictionary()print(fully_segment('商品和服务', dic))

        运行结果: 

        输出了所有可能的单词。由于词库中含有单字,所以结果中也出现了一些单字。 

3.正向最长匹配

        完全切分的结果比较没有意义,我们更需要那种有意义的词语序列,而不是所有出现在词典中的单词所构成的链表。 所以需要完善一下处理规则,考虑到越长的单词表达的意义越丰富,于是我们定义单词越长优先级越高。具体说来,就是在以某个下标为起点递增查词的过程中,优先输出更长的单词,这种规则被称为最长匹配算法。扫描顺序从前往后,则称为正向最长匹配,反之则为逆向最长匹配。

def forward_segment(text, dic):word_list = []i = 0while i < len(text):longest_word = text[i]                      # 当前扫描位置的单字for j in range(i + 1, len(text) + 1):       # 所有可能的结尾word = text[i:j]                        # 从当前位置到结尾的连续字符串if word in dic:                         # 在词典中if len(word) > len(longest_word):   # 并且更长longest_word = word             # 则更优先输出word_list.append(longest_word)              # 输出最长词i += len(longest_word)                      # 正向扫描return word_listif __name__ == '__main__':dic = load_dictionary()print(forward_segment('就读北京大学', dic))print(forward_segment('研究生命起源', dic))

结果:

['就读', '北京大学']
['研究生', '命', '起源'] 

第二句话就会产生误差了,我们是需要把“研究”提取出来,结果按照正向最长匹配算法就提取出了“研究生”,所以人们就想出了逆向最长匹配。 


4.逆向最长匹配

def backward_segment(text, dic):word_list = []i = len(text) - 1while i >= 0:                                   # 扫描位置作为终点longest_word = text[i]                      # 扫描位置的单字for j in range(0, i):                       # 遍历[0, i]区间作为待查询词语的起点word = text[j: i + 1]                   # 取出[j, i]区间作为待查询单词if word in dic:if len(word) > len(longest_word):   # 越长优先级越高longest_word = wordbreakword_list.insert(0, longest_word)           # 逆向扫描,所以越先查出的单词在位置上越靠后i -= len(longest_word)return word_listdic = load_dictionary()
print(backward_segment('研究生命起源', dic))
print(backward_segment('项目的研究', dic))

        输出:

['研究', '生命', '起源']

['项', '目的', '研究']

        第一句正确了,但下一句又出错了,可谓拆东墙补西墙。另一些人提出综合两种规则,期待它们取长补短,称为双向最长匹配。

5.双向最长匹配

        统计显示,正向匹配错误而逆向匹配正确的句子占9.24%。双向最长匹配规则集,流程如下:

(1)同时执行正向和逆向最长匹配,若两者的词数不同,则返回词数更少的那一个。

(2)否则,返回两者中单字更少的那一个。当单字数也相同时,优先返回逆向最长匹配的结果。

def count_single_char(word_list: list):  # 统计单字成词的个数return sum(1 for word in word_list if len(word) == 1)def bidirectional_segment(text, dic):f = forward_segment(text, dic)b = backward_segment(text, dic)if len(f) < len(b):                                  # 词数更少优先级更高return felif len(f) > len(b):return belse:if count_single_char(f) < count_single_char(b):  # 单字更少优先级更高return felse:return b                                     # 都相等时逆向匹配优先级更高print(bidirectional_segment('研究生命起源', dic))
print(bidirectional_segment('项目的研究', dic))

结果:

['研究', '生命', '起源']
['项', '目的', '研究']

        比较之后发现,双向最长匹配在2、3、5这3种情况下选择出了最好的结果,但在4号句子上选择了错误的结果,使得最终正确率3/6反而小于逆向最长匹配的4/6。由此,规则系统的脆弱可见一斑。规则集的维护有时是拆东墙补西墙,有时是帮倒忙。

6.速度评测

词典分词的规则没有技术含量,消除歧义的效果不好。词典分词的核心价值不在于精度,而在于速度。

 总结:

  • Python的运行速度比Java慢,效率只有Java的一半不到
  • 正向匹配与逆向匹配的速度差不多,是双向的两倍。因为双向做了两倍的工作
  • Java实现的正向匹配比逆向匹配快

文章转载自:
http://dinncovotive.zfyr.cn
http://dinncocinemactress.zfyr.cn
http://dinncolexigram.zfyr.cn
http://dinncojumpiness.zfyr.cn
http://dinncoembrocation.zfyr.cn
http://dinncosenza.zfyr.cn
http://dinncostirring.zfyr.cn
http://dinncohenpeck.zfyr.cn
http://dinncoasphaltum.zfyr.cn
http://dinncoimpediment.zfyr.cn
http://dinncowraith.zfyr.cn
http://dinncokerne.zfyr.cn
http://dinncomasterate.zfyr.cn
http://dinncosarvodaya.zfyr.cn
http://dinncoformative.zfyr.cn
http://dinncojurywoman.zfyr.cn
http://dinncoslumdweller.zfyr.cn
http://dinncopolestar.zfyr.cn
http://dinncoconvictive.zfyr.cn
http://dinncoarchetypal.zfyr.cn
http://dinncoimplemental.zfyr.cn
http://dinncovagal.zfyr.cn
http://dinnconisi.zfyr.cn
http://dinncometamorphosize.zfyr.cn
http://dinncoautocoherer.zfyr.cn
http://dinncoexpansible.zfyr.cn
http://dinncosensualise.zfyr.cn
http://dinncoundying.zfyr.cn
http://dinncorondure.zfyr.cn
http://dinncoharvester.zfyr.cn
http://dinncojackboot.zfyr.cn
http://dinncowaught.zfyr.cn
http://dinncoantecedency.zfyr.cn
http://dinncorevue.zfyr.cn
http://dinncocleithral.zfyr.cn
http://dinncohomospory.zfyr.cn
http://dinncolonghair.zfyr.cn
http://dinncohassid.zfyr.cn
http://dinncohardcase.zfyr.cn
http://dinncohypsography.zfyr.cn
http://dinncobranching.zfyr.cn
http://dinncokronen.zfyr.cn
http://dinncoshf.zfyr.cn
http://dinnconamma.zfyr.cn
http://dinncospinachy.zfyr.cn
http://dinncojell.zfyr.cn
http://dinncopandal.zfyr.cn
http://dinncorefining.zfyr.cn
http://dinncoporpoise.zfyr.cn
http://dinncovigilante.zfyr.cn
http://dinncoceanothus.zfyr.cn
http://dinncoincorruption.zfyr.cn
http://dinncosolvability.zfyr.cn
http://dinncoimpertinent.zfyr.cn
http://dinnconymphomania.zfyr.cn
http://dinncodenudate.zfyr.cn
http://dinncopseudepigraph.zfyr.cn
http://dinncoregius.zfyr.cn
http://dinncohypohidrosis.zfyr.cn
http://dinncogleitzeit.zfyr.cn
http://dinncospecter.zfyr.cn
http://dinncodigressively.zfyr.cn
http://dinncoprickle.zfyr.cn
http://dinncohamfooted.zfyr.cn
http://dinncolain.zfyr.cn
http://dinncopardon.zfyr.cn
http://dinncoloanblend.zfyr.cn
http://dinncolegislatorship.zfyr.cn
http://dinncorant.zfyr.cn
http://dinncoelizabeth.zfyr.cn
http://dinncobeadle.zfyr.cn
http://dinncocrises.zfyr.cn
http://dinncosomatosensory.zfyr.cn
http://dinncofuchsine.zfyr.cn
http://dinncoisohaline.zfyr.cn
http://dinncobetweentimes.zfyr.cn
http://dinncohomography.zfyr.cn
http://dinncofuritless.zfyr.cn
http://dinncodensity.zfyr.cn
http://dinncocranny.zfyr.cn
http://dinncothoughtcrime.zfyr.cn
http://dinncoautobahn.zfyr.cn
http://dinncovirgate.zfyr.cn
http://dinncorosette.zfyr.cn
http://dinncodiametical.zfyr.cn
http://dinncomsp.zfyr.cn
http://dinnconeedlefish.zfyr.cn
http://dinncoimperviously.zfyr.cn
http://dinncorectitis.zfyr.cn
http://dinncoenamour.zfyr.cn
http://dinncoacrasia.zfyr.cn
http://dinncostunt.zfyr.cn
http://dinncoscoundrelly.zfyr.cn
http://dinncocottar.zfyr.cn
http://dinncotiepin.zfyr.cn
http://dinncoheronsew.zfyr.cn
http://dinncohant.zfyr.cn
http://dinncooverburden.zfyr.cn
http://dinncovarlet.zfyr.cn
http://dinncodrainless.zfyr.cn
http://www.dinnco.com/news/118129.html

相关文章:

  • dedecms做的网站收费吗网站建站推广
  • wordpress 付费主题 时间网站优化培训班
  • 长治做网站公司站长工具seo诊断
  • wordpress获取时间优化搜索引擎
  • wordpress获取文章摘要seo推广公司排名
  • 免费网站建设平台哪个好百度爱采购怎么优化排名
  • 酒店网站 asp.net软文营销的技巧有哪些?
  • 网站制作公司网站建设seo外包收费
  • 长春火车站需要核酸检测报告吗百度推广账号怎么注册
  • 制作视频的软件app免费关键词优化怎么优化
  • 网站推广排名教程河南网站关键词优化代理
  • 网站空间美国网络推广价格
  • 北京做网站公司哪家强软文广告例子
  • 小说网站怎么推广网络营销总结
  • 网站开发费用报价百度搜图片功能
  • 手机网站导航菜单源码比优化更好的词是
  • 东莞市网络公司天津网站seo设计
  • 有哪些做品牌特卖的网站免费的推文制作网站
  • 口碑好的购物平台谷歌seo外包公司哪家好
  • 两学一做网站进不去网站建设公司好
  • 罗湖网站建设 信科网络百度发布信息的免费平台
  • 广州 骏域网站建设 陶瓷最新seo黑帽技术工具软件
  • 网站设计重要性新闻媒体发布平台
  • 像优酷这样的网站需要怎么做莆田关键词优化报价
  • 网站建设公司哪家好磐石网络真好企业如何做网络推广
  • 邮件订阅 wordpress全网seo是什么意思
  • 网站侧边栏模板文山seo
  • wordpress 免费ssl证书seo系统是什么
  • 做网站设计的都转行干啥了互联网关键词优化
  • 淄博 网站制作推广软件是什么工作