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_替换和校正标识符相关推荐

  1. pandas使用replace函数将dataframe指定数据列中的特定字符串进行自定义替换(replace substring in dataframe column values)

    pandas使用replace函数将dataframe指定数据列中的特定字符串进行自定义替换(replace substring in dataframe column values) 目录

  2. 在vi里面实现字符串的批量替换

    在vi里面实现字符串的批量替换. a. 文件内全部替换: %s#abc#def#g (用def替换文件中所有的abc) 例如把一个文本文件里面的"xwen.com"全部替换成&qu ...

  3. 查找字符位置_学习VB编程第69天 字符串查找与替换

    今天学习了VB提升教程4期,学习的主要内容是字符串查找与替换.零基础学VB课程已经结束,但是感觉还是没有太大进步,而且目前也没有确定后续该学什么语言,干脆就继续再学一段时间VB吧反正计划的三个月时间还 ...

  4. vb 字符串替换_学习VB编程第69天 字符串查找与替换

    今天学习了VB提升教程4期,学习的主要内容是字符串查找与替换.零基础学VB课程已经结束,但是感觉还是没有太大进步,而且目前也没有确定后续该学什么语言,干脆就继续再学一段时间VB吧反正计划的三个月时间还 ...

  5. 剑指offer之把字符串里面空格替换成百分之20[时间复杂度是O(n)]

    1 问题 把字符串里面空格替换成20% 要求:时间复杂度是O(n) 2 思路 比如我们字符串ab cd ef,我们先计算出新字符串需要的长度,我们分别搞2个指针指向老的和新的字符串的尾巴,然后老字符串 ...

  6. C++string容器-字符串查找和替换

    string查找和替换 功能描述: 查找:查找指定字符串是否存在 替换:在指定的位置替换字符串 函数原型: rfind 和find 的区别: rfind从右往左查找 find从左往右查找 查找案列代码 ...

  7. 《Python Cookbook 3rd》笔记(2.5): 字符串搜索和替换

    字符串搜索和替换 问题 你想在字符串中搜索和匹配指定的文本模式 解法 对于简单的字面模式,直接使用 str.repalce() 方法即可,比如: >>> text = 'yeah, ...

  8. JAVA字符串占位符替换

    JAVA字符串占位符替换 如果有字符串 "我是{0},我来自{1},今年{2}岁. 请问怎样用String的内置方法用替换掉字符串的占位符:比如"我是中国人,我来自北京,今年22岁 ...

  9. java字符串反转及替换_字符串的替换(str_replace)

    php字符串与字符替换函数 在php教程替换字符效率最高也是最简单字符替换函数str_replace($arr1,$arr2,$str) 实例一 str_replace("iwind&quo ...

最新文章

  1. Luna的大学读书史(1,Intro)
  2. Python使用matplotlib可视化多个不同颜色的折线图、通过FontProperties为可视化图像配置中文字体可视化、并指定字体大小
  3. linux主机释放cache和buffer
  4. 用于CUDA FFT的PyTorch包装器pytorch-fft
  5. 【技术累积】【点】【编程】【13】XX式编程
  6. python软件代码示例-用Python写一个模拟qq聊天小程序的代码实例
  7. 剑指offer之11-15题解
  8. jzoj4282-[NOIP2015模拟10.29B组]平方数游戏【构造】
  9. react学习(42)----react中的jsx表达对象
  10. oracle创建登录用户有限制吗,Oracle创建用户限制文件,表空间用户授权等。
  11. PAT甲级1056(queue的用法)
  12. 移动设备响应式网站之CSS媒体查询
  13. Pandas数据清洗总结
  14. 高压输电线路线夹温度监测系统装置
  15. 竹子买车第二届运动会乒乓球大赛 趣味运动展风采
  16. 计算机报名照片没有重命名,电脑照片重命名怎么弄
  17. ionic如何使用第三方iconfont,以及图标微调 (转载)
  18. 技术分享:逆向破解华为路由器第三部分
  19. 一个网课开发者复工后的一个月
  20. 定制 CFileDialog 的相关 ID

热门文章

  1. Tony Qu的《WPF揭秘》情节
  2. 业界干货 | 图解自监督学习,从入门到专家必读的九篇论文
  3. 神经网络压缩方法:模型量化的概念简介
  4. 赵雪轩:数据科学助力我的智能化航天梦 | 提升之路系列
  5. 独家 | 经验教训分享:我的第一个机器学习项目
  6. “计算社会科学数据平台”在清华大学发布(附账号申请链接)
  7. 相当全面的Numpy使用总结.pptx
  8. 好消息!算法工程师提高待遇的好机会,终于来了!!
  9. 2020全球Top10 AI专利公司:美国过半,中国仅占两席
  10. ResNet最强改进版来啦!ResNest在多项任务中达到SOTA