01_字符串处理-----03_替换和校正标识符
1.3.1 使用正则表达式替换单词
# 创建replacers.py文件,被调用
import rereplacement_patterns = [
(r'won\'t', 'will not'),
(r'can\'t', 'cannot'),
(r'i\'m', 'i am'),
(r'ain\'t', 'is not'),
(r'(\w+)\'ll', '\g<1> will'),
(r'(\w+)n\'t', '\g<1> not'),
(r'(\w+)\'ve', '\g<1> have'),
(r'(\w+)\'s', '\g<1> is'),
(r'(\w+)\'re', '\g<1> are'),
(r'(\w+)\'d', '\g<1> would')
]
# 创建一个替换类
class RegexpReplacer(object):def __init__(self, patterns=replacement_patterns):self.patterns = [(re.compile(regex), repl) for (regex, repl) inpatterns]# 定义一个替换方法def replace(self, text):s = textfor (pattern, repl) in self.patterns:(s, count) = re.subn(pattern, repl, s)return s
1.3.2 用其他文本替换文本的示例
# 调用替换方法
# Don't -> Do not
# (r'(\w+)\'ve', '\g<1> have')
import nltk
from replacers import RegexpReplacerdef main1():replacer = RegexpReplacer()print(replacer.replace("Don't hesitate to ask questions"))main1()
# 执行结果
Do not hesitate to ask questions
1.3.3 在执行切分前先执行替换操作
# 标识符替换操作可以在切分前执行,以避免在切分缩略词的过程中出现问题
import nltk
from nltk.tokenize import word_tokenize
from replacers import RegexpReplacerdef main2():replacer = RegexpReplacer()print(word_tokenize("Don't hesitate to ask questions"))print(word_tokenize(replacer.replace("Don't hesitate to ask questions")))main2()
# 执行结果
['Do', "n't", 'hesitate', 'to', 'ask', 'questions']
['Do', 'not', 'hesitate', 'to', 'ask', 'questions']
1.3.4 去除重复字符
# 使用反向引用方法来去消除重复的字符
# 定义一个重复字符替换类
class RepeatReplacer(object):def __init__(self):self.repeat_regexp = re.compile(r'(\w*)(\w)\2(\w*)')self.repl = r'\1\2\3'def replace(self, word):repl_word = self.repeat_regexp.sub(self.repl, word)if repl_word != word:return self.replace(repl_word)else:return repl_word
1.3.5 去除重复字符的示例
import nltk
from replacers import RepeatReplacerdef main3():replacer = RepeatReplacer()print(replacer.replace('lotttt'))print(replacer.replace('ohhhhh'))print(replacer.replace('ooohhhhh'))print(replacer.replace('happy'))main3()
# 执行结果
lot
oh
ooh
happy
1.3.6 用单词的同义词替换
# 定义一个同义词替换类
class WordReplacer(object):def __init__(self, word_map):self.word_map = word_mapdef replace(self, word):return self.word_map.get(word, word)
1.3.7 用单词的同义词替换的示例
# 如果给定同义词,则单词将被同义词替换,反之,则无。
import nltk
from replacers import WordReplacerdef main4():replacer = WordReplacer({'congrats': 'congratulations'})print(replacer.replace('congrats'))print(replacer.replace('maths'))main4()
# 执行结果
congratulations
maths
01_字符串处理-----03_替换和校正标识符相关推荐
- pandas使用replace函数将dataframe指定数据列中的特定字符串进行自定义替换(replace substring in dataframe column values)
pandas使用replace函数将dataframe指定数据列中的特定字符串进行自定义替换(replace substring in dataframe column values) 目录
- 在vi里面实现字符串的批量替换
在vi里面实现字符串的批量替换. a. 文件内全部替换: %s#abc#def#g (用def替换文件中所有的abc) 例如把一个文本文件里面的"xwen.com"全部替换成&qu ...
- 查找字符位置_学习VB编程第69天 字符串查找与替换
今天学习了VB提升教程4期,学习的主要内容是字符串查找与替换.零基础学VB课程已经结束,但是感觉还是没有太大进步,而且目前也没有确定后续该学什么语言,干脆就继续再学一段时间VB吧反正计划的三个月时间还 ...
- vb 字符串替换_学习VB编程第69天 字符串查找与替换
今天学习了VB提升教程4期,学习的主要内容是字符串查找与替换.零基础学VB课程已经结束,但是感觉还是没有太大进步,而且目前也没有确定后续该学什么语言,干脆就继续再学一段时间VB吧反正计划的三个月时间还 ...
- 剑指offer之把字符串里面空格替换成百分之20[时间复杂度是O(n)]
1 问题 把字符串里面空格替换成20% 要求:时间复杂度是O(n) 2 思路 比如我们字符串ab cd ef,我们先计算出新字符串需要的长度,我们分别搞2个指针指向老的和新的字符串的尾巴,然后老字符串 ...
- C++string容器-字符串查找和替换
string查找和替换 功能描述: 查找:查找指定字符串是否存在 替换:在指定的位置替换字符串 函数原型: rfind 和find 的区别: rfind从右往左查找 find从左往右查找 查找案列代码 ...
- 《Python Cookbook 3rd》笔记(2.5): 字符串搜索和替换
字符串搜索和替换 问题 你想在字符串中搜索和匹配指定的文本模式 解法 对于简单的字面模式,直接使用 str.repalce() 方法即可,比如: >>> text = 'yeah, ...
- JAVA字符串占位符替换
JAVA字符串占位符替换 如果有字符串 "我是{0},我来自{1},今年{2}岁. 请问怎样用String的内置方法用替换掉字符串的占位符:比如"我是中国人,我来自北京,今年22岁 ...
- java字符串反转及替换_字符串的替换(str_replace)
php字符串与字符替换函数 在php教程替换字符效率最高也是最简单字符替换函数str_replace($arr1,$arr2,$str) 实例一 str_replace("iwind&quo ...
最新文章
- Luna的大学读书史(1,Intro)
- Python使用matplotlib可视化多个不同颜色的折线图、通过FontProperties为可视化图像配置中文字体可视化、并指定字体大小
- linux主机释放cache和buffer
- 用于CUDA FFT的PyTorch包装器pytorch-fft
- 【技术累积】【点】【编程】【13】XX式编程
- python软件代码示例-用Python写一个模拟qq聊天小程序的代码实例
- 剑指offer之11-15题解
- jzoj4282-[NOIP2015模拟10.29B组]平方数游戏【构造】
- react学习(42)----react中的jsx表达对象
- oracle创建登录用户有限制吗,Oracle创建用户限制文件,表空间用户授权等。
- PAT甲级1056(queue的用法)
- 移动设备响应式网站之CSS媒体查询
- Pandas数据清洗总结
- 高压输电线路线夹温度监测系统装置
- 竹子买车第二届运动会乒乓球大赛 趣味运动展风采
- 计算机报名照片没有重命名,电脑照片重命名怎么弄
- ionic如何使用第三方iconfont,以及图标微调 (转载)
- 技术分享:逆向破解华为路由器第三部分
- 一个网课开发者复工后的一个月
- 定制 CFileDialog 的相关 ID