• 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,}"))
  • 相关阅读:
    产生sql语句的vba
    如何在IIS7或IIS7.5中导入导出站点及应用程序池. -摘自网络
    [js高手之路] es6系列教程
    [js高手之路] es6系列教程
    [js高手之路] es6系列教程
    [js高手之路] es6系列教程
    最通俗易懂的javascript变量提升
    [js高手之路] es6系列教程
    学生问的一道javascript面试题[来自腾讯]
    Java关键字final、static使用总结(转)
  • 原文地址:https://www.cnblogs.com/ly803744/p/10426391.html
Copyright © 2020-2023  润新知