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
  • 相关阅读:
    ubuntu安装
    k8s 安装
    Blazor 路由
    ISO 8601
    Centos 8使用devstack快速安装openstack最新版
    使用devstack 一键安装 openstack详细过程和遇到的坑
    蓝瑟66000公里保养
    释放rsyslog占用的Linux内存
    Netty4.1 Http开发入门(一)服务端
    网络传输中的帧和payload
  • 原文地址:https://www.cnblogs.com/createMoMo/p/3097121.html
Copyright © 2011-2022 走看看