zoukankan      html  css  js  c++  java
  • 【语言处理与Python】3.5正则表达式的有益作用

    提取字符块

    #找到所有的无重叠的匹配指定的正则表达式
    
    re.findall(r’[aeiou]’,word)
    
    #看看一些文本中的两个或者两个以上的元音序列,并确定他们的相对频率
    
    wsf=sorted((set(nltk.corpus.treebank.words()))
    
    fd=nltk.FreqDist(vs for word in wsj
    
                     for vs in re.findall(r’[aeiou]{2,}’,word))
    
    fd.items()

    在字符块上做更多事情

    #我们可以对元组进行索引操作,这样可以更方便的使用
    
    nltk.Index()

    查找词干

    抽出一个词的词干的方法有很多种,最简单直观的办法就是直接去掉看起来像一个后缀的字符。

    #首先使用正则表达式,建立一个所有后缀的连接
    
    re.findall(r’^.*(ing|ly|ed|ious|ies|ive|es|s|ment’)$’,’processing’)

    这样匹配出来的的结果是[‘ing’]

    #注意:这里只是返回给了我们后缀。这是因为括号有第二个功能,选择要提取的子字符串,#这一点很重要,如果这一点遗忘,那么后面的阅读将会非常的不顺利。如果想要使用括号
    
    #来指定连接的范围,但不想选择要输出的字符串,必须添加“?:”,他是许多神秘奥妙的正#则表达式之一。
    
    #使用正则表达式把词干和后缀分离。但是要注意*是贪婪的,如果要取消他的贪婪要加?
    
    re.findall(r’^(.*)(ing|ly|ed|ious|ies|ive|es|s|ment)$’,’processing’)
    
    [(‘process’,’ing’)]

    搜索已分词文本

    #注意尖括号和小括号的作用
    
    from nltk.corpus import gutenberg,nps_chat
    
    moby=nltk.Text(gutenberg.words(‘melville-moby_dick.txt’))
    
    moby.findall(r‘<a>(<.*>)<man>’)
    
    #最终结果是显示满足小括号里面的内容
    
    monied;nervous;dangerous;white;white;white;pious; queer; good;
    
    mature;white;Cape;great; wise;wise;butterless; white;fiendish;
    
    pale; furious; better;certain; complete; dismasted; younger;brave;
    
    brave; brave; brave
  • 相关阅读:
    LINUX查看硬件配置命令
    jmeter录制对于ip代理会失效
    性能测试常用指标
    jmeter使用jdbc获取注册验证码进行注册
    jmeter测试文件上传功能
    JMeter 功能挖掘之 WEB 文件导出
    分别用C/C++实现栈
    javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决
    jquery解决file上传图片+图片预览
    使用SetInterval时函数不能传参问题
  • 原文地址:https://www.cnblogs.com/createMoMo/p/3097121.html
Copyright © 2011-2022 走看看