中文分词模拟器

server/2024/11/14 2:30:14/

题目描述
给定一个连续不包含空格的字符串,该字符串仅包含英文小写字母及英文标点符号(逗号、分号、句号),同时给定词库,对该字符串进行精确分词。

说明:

精确分词:字符串分词后,不会出现重叠。即"ilovechina",不同词库可分割为"i,love,china",“ilove,china”,不能分割出现重叠的"i,ilove,china",i 出现重叠

标点符号不成词,仅用于断句

词库:根据外部知识库统计出来的常用词汇例:dictionary = [“i”, “love”, “china”, “lovechina”, “ilove”]

分词原则:采用分词顺序优先且最长匹配原则

“ilovechina”,假设分词结果 [i,ilove,lo,love,ch,china,lovechina],则输出 [ilove,china]

错误输出:[i,lovechina],原因:“ilove” > 优先于 “lovechina” 成词

错误输出:[i,love,china],原因:“ilove” > "i"遵循最长匹配原则

输入描述
第一行输入待分词语句 “ilovechina”

字符串长度限制:0 < length < 256
第二行输入中文词库 “i,love,china,ch,na,ve,lo,this,is,this,word”

词库长度限制:1 < length < 100000
输出描述
按顺序输出分词结果 “i,love,china”

用例1
输入
ilovechina
i,love,china,ch,na,ve,lo,this,is,the,word
输出
i,love,china
用例2
输入
iat
i,love,china,ch,na,ve,lo,this,is,the,word,beauti,tiful,ful
输出
i,a,t
说明
单个字母,

不在词库中且不成词则输出单个字母

用例3
输入
ilovechina,thewordisbeautiful
i,love,china,ch,na,ve,lo,this,is,the,word,beauti,tiful,ful
输出
i,love,china,the,word,is,beauti,ful
说明
标点符号为英文标点符号

python">import re
old_sentences =list(re.split(r'[,.;]',input()))
words = list(re.split(r'[,.;]',input()))
#后续测试发现sentences中可能因为再末尾存在(逗号,分号,句号)导致有空字符串
sentences = [sentence for sentence in old_sentences if sentence!='']
words = set(words)
def match():results=[]while len(sentences)>0:sentence = sentences.pop(0)l = len(sentence) #while l>0:temp = sentence[:l]#因为要优先匹配长的if temp in words:#是否存在该单词results.append(temp)words.remove(temp) #如果每个单词只能用一次的话就得移除,经过测试发现必须去除#如果字串词汇只是句子的部分,则剩余部分还要继续if l<len(sentence):sentences.insert(0,sentence[l:])breakl-=1if l==0:#没找到就输出单个字母results.append(sentence[0])if len(sentence)>1:sentences.insert(0,sentence[1:])return  ','.join(results)
print(match())

http://www.ppmy.cn/server/141737.html

相关文章

计算机网络易混淆知识点串记

文章目录 计算机网络易混淆知识点串记各层PDU首部: 计算机网络易混淆知识点串记 各层PDU首部: PUD首部长度 (B:字节)首部单位数据链路–帧帧首:14B帧尾部:4B——IPV420~60字节4B [通过4位二进制表示]IPV6固定首部40字节[可拓展]4BTCP20~60字节4BUDP8B字节

Python处理PDF组件使用及注意事项

在 Python 中处理 PDF 文件时&#xff0c; 使用的组件及注意事项如下&#xff1a; 1. PyPDF2 / PyPDF4 说明&#xff1a; PyPDF2 和 PyPDF4 都是功能强大的 PDF 操作库&#xff0c;适用于合并、拆分、旋转 PDF 文件&#xff0c;提取 PDF 元数据等。PyPDF4 是 PyPDF2 的一个分…

uniapp 设置安全区域

<!-- 获取安全区域 --> <script setup lang"ts"> import { computed, ref } from vuelet systemType ref(1) // #ifdef APP-PLUS || H5 || APP-PLUS-NVUE systemType.value 1 const { safeAreaInsets } uni.getSystemInfoSync() console.log(safeAre…

微软日志丢失事件敲响安全警钟

NEWS | 事件回顾 最近&#xff0c;全球最大的软件公司之一——微软&#xff0c;遭遇了一场罕见的日志丢失危机。据报告&#xff0c;从9月2日至9月19日&#xff0c;持续长达两周的时间里&#xff0c;微软的多项核心云服务&#xff0c;包括身份验证平台Microsoft Entra、安全信息…

DAY25|回溯算法Part04|LeetCode:491.递增子序列、46.全排列、47.全排列 II

目录 LeetCode:491.递增子序列 基本思路 C代码 LeetCode:46.全排列 基本思路 C代码 LeetCode:47.全排列 II 基本思路 C代码 LeetCode:491.递增子序列 力扣代码链接 文字讲解&#xff1a;LeetCode:491.递增子序列 视频讲解&#xff1a;回溯算法精讲&#xff0c;树层去重…

React融合css

单纯使用tsx文件生成的页面比较单一&#xff0c;可以考虑结合css进行使用&#xff0c;需要说明的是&#xff0c;本人水平有限&#xff0c;仅对接触过的几种方式进行说明 内联样式 内联样式也有多种写法&#xff0c;此处仅列举两种比较简单的写法 写法一 import React from …

网络安全-蓝队基础

声明 学习视频来自 B 站UP主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 ✍&#x1f3fb;作者简介&#xff1a;致…

CentOS下如何安装Nginx

1、下载nginx 官方网站 http://nginx.org 下载链接&#xff1a;http://nginx.org/download/ 下载完成后的安装包&#xff1a; 2、使用解压命令进行解压 tar -zxvf nginx-1.13.7.tar.gz3、在安装所需的安装环境 安装gcc环境 yum install gcc-c安装第三方开发包 - PCRE(P…