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

海外网站建设平台wordpress mylife

海外网站建设平台,wordpress mylife,wordpress所有插件,软件开发必备编程工具目录 1.切分算法 2.完全切分 3.正向最长匹配 4.逆向最长匹配 5.双向最长匹配 6.速度评测 1.切分算法 词典确定后#xff0c;句子可能含有很多词典中的词语#xff0c;他们有可能互相重叠#xff0c;如何切分需要一些规则。常用规则为#xff1a;正向匹配算法、逆向匹…目录 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://www.hkea.cn/news/14416408/

相关文章:

  • 西安浐灞生态区规划建设局网站两学一做山东网站
  • 咸阳学校网站建设报价网络公司网络营销推广方案
  • 科技网站设计案例专业网站seo推广
  • 网站营销主管岗位职责做护肤品好的网站好
  • 台州网站优化上海龙腾vs山东鲁能
  • 南通做企业网站工作室注册流程
  • 优化网站排名公司中装建设最新消息
  • 天津 企业网站建设网站制作 深圳信科网络
  • 长沙网络公司网站响应式网站 企业模版
  • 网站代理登录网址网站所有页面只显示域名
  • 乐清做网站的安徽二建标准
  • 网站构架怎么做管理咨询师报考条件2022年
  • 做个电商网站多少钱公司网站开发费用济南兴田德润简介图片
  • 如今做那个网站致富最新搜索关键词
  • 查询网站是否安全外贸网站模板设计
  • 网站开发 支付宝订单号优化seo软件
  • 建设网站构成苏州建网站的公
  • 网站设计开发中的具体步骤android studio中文怎么设置
  • 站长之家网站流量查询怎么做网站赚钱
  • p2p借贷网站建设建站推广外包
  • 如何看网站排名下载百度手机助手
  • gps建站教程视频山东省交通运输厅网站开发单位
  • 哪个网站做投票链接模板好看免费做ppt的网站
  • 好的兼职做调查网站域名网站空间
  • 网站怎么做定时任务哪个网站做漂流瓶任务
  • 盐城市网站建设公司网站关键词和网页关键词的样本
  • 聊城高端网站建设报价广告引流推广平台
  • 温州最好的网站建设公司网站建设能解决哪些问题
  • 制作网制作网站建设的公司哈尔滨微信网站开发
  • 江苏网站建设南通整合营销传播案例