使用pycharm以及用pycharm句子切分调试
c在D盘建立了个文件夹,然后把segment1.py文件放进去。

然后双击segment1,就自动用pycharm打开了。然后就可以运行和debug。之前最开始的时候我segment1.py文件放桌面上,结果用pycharm一打开,桌面的文件全都进去了。这不合适。
所以才在D盘建立个文件夹,这样在用pycharm打开,只会把建的文件夹里面的东西弄进去。
import re def segment(text):
article_string = text
article_string = article_string.replace("。“", "ψ")
# print('替换后的文章',article_string)
article_string = article_string.replace("\n", "ξ") #outres2 = (re.split(r"([。,'ψ','ξ',\?,\!,;,?,!,。,;,……,…])", article_string))
outres2 = (re.split(r"([。'ψ''ξ'\?\!;?!;…])", article_string)) #这个才是正确的用法,上一行那种用法也不对,逗号会被当作分隔符。
# for item in ('。', 'ψ', 'ξ', '?', '!', '。', ';', '……', '…'):
# outres2 = re.split(item, article_string)
# print(outres2)
############
replaced_symbol = ['ψ', 'ξ']
pre_symbol = ['''。”''', "\n"]
for sym_i in range(len(replaced_symbol)):
for term_j in range(len(outres2)):
if replaced_symbol[sym_i] == outres2[term_j]:
outres2[term_j] = pre_symbol[sym_i]
############
final_res_list = []
for i_th in range(0, len(outres2), 2):
if (i_th + 1) < len(outres2) and len(outres2[i_th]) > 0:
final_res_list.append(outres2[i_th] + outres2[i_th + 1])
if len(outres2) % 2 == 1:
final_res_list.append(outres2[-1])
return final_res_list if __name__ == "__main__":
text = '''原标题:红芯国产浏览器涉嫌采用谷歌Chrome内核造假 联合创始人回应称非抄袭站巨人肩膀上做了创新 |新京报财讯 新京报快讯(记者 梁辰 吴荣奎 实习生杨璐萍 陈诗怡)8月16日,红芯国产浏览器被爆出涉嫌造假,以谷歌浏览器Chrome内核换皮打造成“自主可控的国产浏览器”。该公司15日刚宣布完成2.5亿元的C轮融资,投资方刚包括上市公司、晨兴资本、达晨资本和IDG资本。 此前,该公司还曾与中科院联合成立“移动应用与红芯云安全联合实验室”,声称要做“中国芯”。''' print(segment(text))
之前split是按 | 来区分的,
outres2 = (re.split(r"([。|'ψ'|'ξ'|\?|\!|;|?|!|。|;|……|…])", article_string))
这样就会导致,

这种情况发生,所以后来参考了。re.split用法。还是tangxin找的这个链接 https://blog.csdn.net/hawkerou/article/details/53518154 ,附录中会附上这个链接的内容。
接下来看看调试,就是把 r"([。|'ψ'|'ξ'|\?|\!|;|?|!|。|;|……|…])" 里面符号一个个减掉,看看输出的情况。结果发现,第一个句号 就会导致如上的 | ,后来决定用链接中,号方法,才解决掉。
pycharm使用小技巧:
ALT+ CTRL + L 就是格式化代码(只是对当前文件内容,而不是整个工程)

1的话,你可以双击,可以看到里面具体每个元素。
2.你可以点击进入后,对变量赋值

从而查看执行情况。
3 是单步调试。
接下来附上链接中的内容:
python字符串切割:str.split()和re.split()对比
1、str.split不支持正则及多个切割符号,不感知空格的数量,比如用空格切割,会出现下面情况。
>>> s1="aa bb cc"
>>> s1.split(' ')
['aa', 'bb', '', 'cc']
2、re.split,支持正则及多个字符切割
>>> print line
abc aa;bb,cc | dd(xx).xxx 12.12' xxxx
按空格切
>>> re.split(r' ',line)
['abc', 'aa;bb,cc', '|', 'dd(xx).xxx', "12.12'\txxxx"]
加将空格放可选框内[]内
>>> re.split(r'[ ]',line)
['abc', 'aa;bb,cc', '|', 'dd(xx).xxx', "12.12'\txxxx"]
按所有空白字符来切割:\s([\t\n\r\f\v])\S(任意非空白字符[^\t\n\r\f\v]
>>> re.split(r'[\s]',line)
['abc', 'aa;bb,cc', '|', 'dd(xx).xxx', "12.12'", 'xxxx']
多字符匹配
>>> re.split(r'[;,]',line)
['abc aa', 'bb', "cc | dd(xx).xxx 12.12'\txxxx"]
>>> re.split(r'[;,\s]',line)
['abc', 'aa', 'bb', 'cc', '|', 'dd(xx).xxx', "12.12'", 'xxxx']
使用括号捕获分组的适合,默认保留分割符
re.split('([;])',line)
['abc aa', ';', "bb,cc | dd(xx).xxx 12.12'\txxxx"]
去掉分隔符,加?:
>>> re.split(r'(?:;)',line)
['abc aa', "bb,cc | dd(xx).xxx 12.12'\txxxx"]
使用pycharm以及用pycharm句子切分调试的更多相关文章
- PyCharm 教程(五)断点 调试
PyCharm 教程(五)断点 调试 PyCharm 作为IDE,断点调试是必须有的功能.否则,我们还真不如用纯编辑器写的快. [运行]和[调试]前的设置,详见前面的文章,helloword. 1,设 ...
- Pycharm实现服务器端代码的远程调试
Pycharm是很多人在学习机器学习时的常用IDE.但是,当代码需要庞大计算资源的时候,我们往往需要借助远程服务器的GPU资源.很多人都是将代码拷贝到服务器,然后运行,但是当修改调试的时候,很不方便 ...
- [精通Python自然语言处理] Ch1 - 将句子切分为单词
实验对比了一下三种切分方式: 1,2 : nltk.word_tokenize : 分离缩略词,(“Don't” =>'Do', "n't") 表句子切分的“,” &quo ...
- 在ubunut下使用pycharm和eclipse进行python远程调试
我比较喜欢Pycharm,因为这个是JetBrains公司出的python IDE工具,该公司下的java IDE工具--IDEA,无论从界面还是操作上都甩eclipse几条街,但项目组里有些人使用e ...
- pycharm中进行带参数的调试
之前基本都是用print进行调试的,但今天程序运行完需要等很长时间,就尝试pycharm调试. 但是在运行程序需要传递参数,之前只会点击bug按钮直接运行程序,不知道调试的时候传入参数. 运行---& ...
- pycharm安装,svn使用,远程开发调试,接口测试,连接服务器
磨刀不误砍柴工,配置完美的编辑器,在开发时,能帮助我们节约大量的时间成本,从而是我们的精力放在业务逻辑实现上面! 接下来将介绍 使用pyhcarm如何使用svn,远程开发调试,接口测试,已经连接远程服 ...
- pycharm下打开、执行并调试scrapy爬虫程序
首先得有一个Scrapy项目,我在Desktop上新建一个Scrapy的项目叫test,在Desktop目录打开命令行,键入命令:scrapy startproject test1 目录结构如下: ...
- pycharm搭建开发配置,远程调试,数据库配置,git配置等
1 开发环境搭建 1.1 简介 使用虚拟机作为代码运行环境,本地使用pycharm进行代码编辑,使用远程调试功能进行debug. 1.1 安装centos虚拟机环境: 1.操作系统: 2.网络配置: ...
- Pycharm远程解释器SFTP开发和调试
转载:https://blog.csdn.net/ll641058431/article/details/53049453 使用PyCharm进行远程开发和调试 你是否经常要在Windows 7或MA ...
随机推荐
- rsa证书ssh登陆服务器
好久不用,又生疏了. 今晚实操了一下,作一个记录. 使用rsa的密钥对登陆linux服务器,主要是为了安全. 这种证书级别的登陆,比最复杂的root用户名和帐号的安全性都要高一个等级. 至少服务器不会 ...
- DBEntityEntry类
DBEntityEntry是一个重要的类,可用于检索有关实体的各种信息.您可以使用DBContext的Entry方法获取特定实体的DBEntityEntry实例. DBEntityEntry允许您访问 ...
- [转]Prometheus 与 Grafana 实现服务器运行状态监控
http://flintx.me/2017/12/12/Prometheus%20+%20Grafana%20%E5%AE%9E%E7%8E%B0%E6%9C%8D%E5%8A%A1%E5%99%A8 ...
- sparkSQL将谓词推入kudu引擎
kudu之所以执行非常快速,可以用来替代HDFS和Hbase等,一个主要原因是,我们可以将普通SQL中的谓词推入kudu引擎,这样kudu查询数据会变的非常快: 将谓词评估推入Kudu引擎可以提高性能 ...
- FastJson 支持配置的PropertyNamingStrategy四种策略
摘要: FastJson默认使用CamelCase,在1.2.15版本之后,FastJson支持配置PropertyNamingStrategy,支持四种策略: CamelCase.PascalCas ...
- Codeforces 594D REQ 线段树
REQ 把询问离线, 我们从n 到 1遍历过去的时候, 把(1 - 1 / p)乘在最靠近当前位置的地方, 然后区间求乘积就好啦. #include<bits/stdc++.h> #def ...
- 函数对象的call()、apply() 方法区别
函数对象的call().apply() 方法 函数作为对象提供了call(),apply() 方法,他们也可以用来调用函数,这两个方法都接受一个对象作为参数,用来指定本次调用时函数中this的指向: ...
- Codeforces 781E Andryusha and Nervous Barriers 线段树 单调栈
原文链接https://www.cnblogs.com/zhouzhendong/p/CF781E.html 题目传送门 - CF781E 题意 有一个矩形,宽为 w ,高为 h .一开始会有 w 个 ...
- nacos-server集群 安装、运行(ubuntu)
下载.解压 wget -P /opt/downloads https://github.com/alibaba/nacos/releases/download/1.0.0/nacos-server-1 ...
- 20165235 祁瑛 2018-3 《Java程序设计》第四周学习总结
20165235 祁瑛 2018-3 <Java程序设计>第四周学习总结 教材学习内容总结 第五单云总结 (一)子类与继承1.java中子类只能有一个父类,在类名前用extends标记.2 ...