Python 统一地铁线路名称

最近在做一个文本挖掘项目时遇到一个很实际的问题:文本里对地铁线路名称的表述很杂乱,如何统一。

比如,地铁1号线,可能表述为1号线、地铁1号线、轨道1号线、轨道交通1号线、1号地铁、一号线、地铁一号线、轨道一号线、轨道交通一号线、一号地铁,想统一为“地铁1号线”。

前提是要先建立一个地铁线路名称词典,把上述可能的线路名表述都纳入,用来准确分词。

import jieba # 分词
from fnmatch import fnmatch # 通配符# 定义函数,用来统一地铁线路名称格式
# 投入参数是一个已经分好词的列表,返回一个处理好的字符串
def unify_line_name(mylist):num_dict = {1:'一', 2:'二', 3:'三', 4:'四', 5:'五', 6:'六', 7:'七', 8:'八', 9:'九', \10:'十', 11:'十一', 12:'十二', 13:'十三', 14:'十四', 15:'十五', 16:'十六', 17:'十七', \18:'十八', 19:'十九', 20:'二十', 21:'二十一', 22:'二十二', 23:'二十三'}for i in range(len(mylist)):if fnmatch(mylist[i], "*号线") or fnmatch(mylist[i], "*号地铁"):# 数字必须从大到小倒着遍历,否则影响后面in判断,# 比如“二十三”,二、十、三、二十、十三都包含在字符串内,# 所以要倒着遍历,先识别匹配最大的数字就不会错了,最后别忘了break跳出循环for j in range(len(num_dict),0,-1):if str(j) in mylist[i] or num_dict[j] in mylist[i]:mylist[i] = "地铁" + str(j) + "号线"breakreturn ' '.join(mylist)
# 加载自定义的线路名称词典
jieba.load_userdict("mydict_line.csv")
# 原始字符串
mystr = "可是地铁四号线车厢太挤了"
# 分词
mylist = jieba.lcut(mystr, cut_all = False)
print(mylist)
# 用函数处理线路名称
mystr_new = unify_line_name(mylist)
print(mystr_new)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/72902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JMeter】 二次开发插件开发 Dubbo 接口测试插件浅析

概述 在一些企业中,各类业务系统非常丰富,相互之间或对外提供很多的服务或接口这些服务或接口中,有很多是需要强契约约束的,服务的提供方、服务的使用方必须遵守相同契约这类服务最典型的就是RPC,其中应用广泛的有Dub…

即拼七人拼团系统开发模式是怎么盈利赚钱的?

即拼七人拼团是市场上最近比较火爆的一款商业模式,它结合了二二复制和拼团两种模式玩法,不仅能让消费者从中获利,还能让平台快速获流裂变,对平台起盘初期和发展中期具有很强的推广能力。那么这个模式是怎么盈利赚钱的呢&#xff1…

手机SSL证书认证失败是什么意思?

手机SSL证书认证失败是指在使用手机设备浏览网站时,由于SSL证书的认证问题,导致无法建立安全的加密连接。本文将详细介绍手机SSL证书认证失败的含义、可能的原因以及解决方法,帮助用户了解并解决该问题,以确保手机端浏览的数据传输…

Tomcat 日志乱码问题解决

我就是三井,一个永不放弃希望的男人。——《灌篮高手》 Tomcat 日志乱码问题解决 乱码原因:字符编码不一致 如:国内电脑一般都是GBK编码,而Tomcat日志使用的是UTF-8编码 解决方法:将对应字符编码由 UTF-8 改为 GBK 即…

案例实战-Spring boot Web

准备工作 需求&环境搭建 需求: 部门管理: 查询部门列表 删除部门 新增部门 修改部门 员工管理 查询员工列表(分页、条件) 删除员工 新增员工 修改员工 环境搭建 准备数据库表(dept、emp) -- 部门管理…

linux设置登录超时自动退出

问题背景 最近登录某台linux服务器,经常遇到超时自动退出现象,如下图: 是因为服务器设置了超时时间,如果某个超时时间段内服务器没有任何操作,则会自动注销 解决方法 查看服务器设置的超时时间(TMOUT 变量的值)&am…

深浅拷贝与赋值

数据类型 数据类型 在JavaScript中,数据类型有两大类。一类是基本数据类型,一类是引用数据类型。 基本数据类型有六种:number、string、boolean、null、undefined、symbol。 基本数据类型存放在栈中。存放在栈中的数据具有数据大小确定&a…

OpenHarmony 使用 ArkUI Inspector 分析布局

● 摘要:视图的嵌套层次会影响应用的性能,开发者应该移除多余的嵌套层次,缩短组件刷新耗时。本文会介绍如何使用 ArkUI Inspector 工具分析布局,提示应用响应性能。 ● 关键字:列举本文相关的关键字:OpenH…

API 自动化测试难点总结与分享

API自动化测试的难点包括: 接口的参数组合较多,需要覆盖各种可能的情况。接口的状态和数据关联较多,需要验证返回结果是否符合预期。接口的并发访问和性能测试较为复杂,需要合理规划和调度测试策略。接口的安全性和权限控制较为重…

网站用户体验之深度感悟

个性化定制界面和极简版原装界面,哪一个你用起来更加顺手呢,相比之下你更喜欢哪一个? 界面选择: (提醒:仅个人感悟。~~) 方向一:表明自己的喜好 我个人觉得更喜欢个性化定制界面。…

JS-17--深拷贝跟浅拷贝的区别?如何实现一个深拷贝?

1、数据类型存储 JavaScript中存在两大数据类型: 基本类型 引用类型 基本类型数据保存在栈内存中 引用类型数据保存到堆内存中,引用数据类型的变量是一个指向堆内存中实际x对象的引用,存在栈中 2、浅拷贝 浅拷贝指的是创建新的数据&#xff…

std::make_shared和new初始化智能指针的区别

先看代码&#xff1a; class Base {public:Base(int num):a(num) {std::cout << "Base() construct" << std::endl;}~Base() {std::cout << "Base() deconstruct" << std::endl;}int Get() {return a;}private:int a; };void tes…

react利用wangEditor写评论和@功能

先引入wangeditor写评论功能 import React, { useEffect, useState, useRef, forwardRef, useImperativeHandle } from react; import wangeditor/editor/dist/css/style.css; import { Editor, Toolbar } from wangeditor/editor-for-react; import { Button, Card, Col, For…

【数据结构与算法系列5】螺旋矩阵II (C++ Python)

给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,4],[7,6,5]]示例 2&#xff1a; 输入&#xff1a;n 1 输出&am…

53、springboot对websocket的支持有两种方式-------1、基于注解开发 WebSocket ,简洁实现多人聊天界面

基于注解开发 WebSocket –注解就是&#xff1a; OnOpen、 OnClose 、 OnMessage 、OnError这些 ★ WebSocket的两种开发方式 ▲ Spring Boot为WebSocket提供了两种开发方式&#xff1a; 基于spring-boot-starter-websocket.jar开发WebSocket 基于Spring WebFlux开发WebSoc…

Kotlin委托Delegate托管by

Kotlin委托Delegate托管by import kotlin.reflect.KPropertyfun main() {var user: String by MyDelegate()user "fly"println(user) }class MyDelegate {private var v: String? nulloperator fun getValue(thisRef: Any?, property: KProperty<*>): Stri…

驱动轴相机参数设置Web前端界面开发

一、基于Django的Web应用界面的开发&#xff1a; 在Realtimeresults.html上添加一个按钮组件&#xff0c;获取检测到的轴型和车轮信息&#xff0c;点击后可以获取package.json里存放的json数据&#xff0c;效果如下&#xff1a; 实现逻辑&#xff1a;需要从URL设置、视图函数、…

【iOS】Category、Extension和关联对象

Category分类 Category 是 比继承更为简洁 的方法来对Class进行扩展,无需创建子类就可以为现有的类动态添加方法。 可以给项目内任何已经存在的类 添加 Category甚至可以是系统库/闭源库等只暴露了声明文件的类 添加 Category (看不到.m 文件的类)通过 Category 可以添加 实例…

【linux命令讲解大全】042. 深入了解 which 命令:查找和显示命令的绝对路径

文章目录 which补充说明语法选项参数实例 从零学 python which 查找并显示给定命令的绝对路径 补充说明 which 命令用于查找并显示给定命令的绝对路径&#xff0c;环境变量 PATH 中保存了查找命令时需要遍历的目录。which 指令会在环境变量 $PATH 设置的目录里查找符合条件的…

使用 Sealos 在离线环境中光速安装 K8s 集群

作者&#xff1a;尹珉。Sealos 开源社区 Ambassador&#xff0c;云原生爱好者。 当容器化交付遇上离线环境 在当今快节奏的软件交付环境中&#xff0c;容器化交付已经成为许多企业选择的首选技术手段。在可以访问公网的环境下&#xff0c;容器化交付不仅能够提高软件开发和交付…