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

203、【数组】NLP分词实现(Python)

题目描述

给定一个词典,比如[“杭州”,“西湖”,“博物馆”,“杭州西湖博物馆”,“我”]​
对于输入的文本进分词:我在杭州的杭州西湖博物馆玩了一天​
分词结果处理为如下形式的字符串: 我\W 在 杭州\W 的 杭州西湖博物馆\W 玩了一天​

对于输入的文本进分词:我在杭州的杭州西湖博物玩了一天​
分词结果处理为如下形式的字符串: 我\W 在 杭州\W 的 杭州\W 西湖\W 博物玩了一天

代码实现

s = "我在杭州的杭州西湖博物馆玩了一天"
s = "我在杭州的杭州西湖博物玩了一天"
record = ["杭州","西湖","博物馆","杭州西湖博物馆","我"]
# 将词表从最长的词到最短的词排序
record.sort(reverse=True, key=lambda x: len(x))
record_num = {}
# 对统一长度的单词进行统计
for word in record:
    length = len(word)
    if length in record_num.keys():
        record_num[length].append(word)
    else:
        record_num[length] = [word]
        
# 对字符串进行切分
word_list = list(s)


for k, v in record_num.items():
	# 从词典中最长的词开始遍历
    for word in v:
        for i in range(0, len(s)):
        	# 当区间中子串可组成词典中的词时,合并这一段区间(之前被标记过的一定不会被组成)
            if ''.join(word_list[i:i+len(word)]) == word:
                word_list = word_list[:i] + [''.join(word_list[i:i+len(word)])+'\W'] + word_list[i+len(word):]

print(''.join(word_list))
http://www.dtcms.com/a/39146.html

相关文章:

  • 自学Java-JavaSE基础加强(异常,泛型,集合框架)
  • 传递指针给函数的用法
  • 记录一下在k3s快速创建gitlab
  • 【江科协-STM32】5. 输出比较
  • Deepseek 开源周第一天:FlashMLA
  • 【C++】unordered系列容器的模拟实现
  • 结构型模式---外观模式
  • Vscode编辑器:解读文件结构、插件的导入导出、常用快捷键配置技巧及其常见问题的解决方案
  • 冒泡排序(Bubble Sort)详细教程:Java实现与优化
  • 25中医研究生复试面试问题汇总 中医专业知识问题很全! 中医试全流程攻略 中医考研复试调剂真题汇总
  • 苹果CMS泛目录站群架构:无缓存刷新技术的SEO实战
  • FST离群值分析
  • sql时间函数
  • 深度学习笔记数学方面——矩阵计算,自动求导
  • 脚本无法获取响应主体(原因:CORS Missing Allow Credentials)
  • 【AGI】DeepSeek开源周:The whale is making waves!
  • Kibana:Spotify Wrapped 第二部分:深入挖掘数据
  • 软件测试八股文,软件测试常见面试合集【附答案】
  • OpenCV计算摄影学(5)处理一系列图像(例如视频帧)的非局部均值去噪的函数fastNlMeansDenoisingColoredMulti()的使用
  • 接触式电子体温计方案研发pcba设计
  • 大白话JavaScript闭包在实际项目中有哪些应用场景?
  • Unity XR-XR Interaction Toolkit开发使用方法(十)组件介绍(XR Interaction Group)
  • 减速机的工作原理具体是如何实现的?
  • 手机放兜里,支付宝“碰一下”被盗刷?
  • ALM研发管理:全新甘特图,让项目管理更高效
  • 信号系统篇---欧拉公式角度表示方法
  • 期权帮|股指期货基差和价差有什么区别?
  • HC32F460_SCI驱动(一)
  • Ubutu部署WordPress
  • 数据中心设备故障难预测?智能预警系统为您排忧解难!