zoukankan      html  css  js  c++  java
  • python自然语言处理——3.5 正则表达式的有益应用

    微信公众号:数据运营人
    本系列为博主的读书学习笔记,如需转载请注明出处。

    第三章 加工原料文本

    3.5 正则表达式的有益应用提取字符块在字符块上做更多事情查找词干搜索已分词文本

    3.5 正则表达式的有益应用

    提取字符块
    import re
    import nltk
    word = 'supercalifragilisticexpialidocious'
    print(re.findall(r'[aeiou]', word))
    print(len(re.findall(r'[aeiou]', word)))
    wsj = sorted(set(nltk.corpus.treebank.words()))
    fd = nltk.FreqDist(vs for word in wsj
    for vs in re.findall(r'[aeiou]{2,}', word)
    )
    print(fd.items())
    在字符块上做更多事情
    regexp = r'^[AEIOUaeiou]+|[AEIOUaeiou]+$|[^AEIOUaeiou]'
    def compress(word):
    pieces = re.findall(regexp, word)
    return ''.join(pieces)
    english_udhr = nltk.corpus.udhr.words('English-Latin1')
    print(nltk.tokenwrap(compress(w) for w in english_udhr[:75]))
    rotokas_words = nltk.corpus.toolbox.words('rotokas.dic')
    cvs = [cv for w in rotokas_words for cv in re.findall(r'[ptksvr][aeiou]', w)]
    cfd = nltk.ConditionalFreqDist(cvs)
    cfd.tabulate()
    cv_word_pairs = [(cv, w) for w in rotokas_words
    for cv in re.findall(r'[ptksvr][aeiou]', w)]
    cv_index = nltk.Index(cv_word_pairs)
    print(cv_index['su'])
    print(cv_index['po'])
    查找词干
    def stem(word):
    for suffix in ['ing''ly''ed''ious''ies''ive''es''s''ment']:
    if word.endswith(suffix):
    return word[:-len(suffix)]
    return word
    print(re.findall(r'^.*(ing|ly|ed|ious|ies|ive|es|s|ment)$''processing'))
    print(re.findall(r'^.*(?:ing|ly|ed|ious|ies|ive|es|s|ment)$''processing'))
    print(re.findall(r'^(.*)(ing|ly|ed|ious|ies|ive|es|s|ment)$''processing'))
    print(re.findall(r'^(.*)(ing|ly|ed|ious|ies|ive|es|s|ment)$''processes'))
    print(re.findall(r'^(.*?)(ing|ly|ed|ious|ies|ive|es|s|ment)$''processes'))
    print(re.findall(r'^(.*?)(ing|ly|ed|ious|ies|ive|es|s|ment)?$''language'))
    def stem(word):
    regexp = r'^(.*?)(ing|ly|ed|ious|ies|ive|es|s|ment)?$'
    stem, suffix = re.findall(regexp, word)[0]
    return stem
    raw = """DENNIS: Listen, strange women lying in ponds distributing swords
    is no basis for a system of government. Supreme executive power derives from
    a mandate from the masses, not from some farcical aquatic ceremony."""

    tokens = nltk.word_tokenize(raw)
    print([stem(t) for t in tokens])
    搜索已分词文本
    from nltk.corpus import gutenberg, nps_chat
    moby = nltk.Text(gutenberg.words('melville-moby_dick.txt'))
    print(moby.findall(r"<a> (<.*>) <man>") )
    chat = nltk.Text(nps_chat.words())
    print(chat.findall(r"<.*> <.*> <bro>"))
    print(chat.findall(r"<l.*>{3,}"))
  • 相关阅读:
    前端资源分享
    解决COM组件80070005错误
    【迁移】—Entity Framework实例详解 转
    IIS错误处理集合
    疯狂蚂蚁框架搭建
    MSSQL日期格式化
    一句SQL实现获取自增列操作
    mongodb 性能篇
    mongodb管理篇
    mongodb高级应用
  • 原文地址:https://www.cnblogs.com/ly803744/p/10426391.html
Copyright © 2011-2022 走看看