zoukankan      html  css  js  c++  java
  • nltk模块

    1. nltk简介

       http://www.nltk.org

    2. nltk能做什么?

    2.1 搜索文本

    • 单词搜索
    • 相似词搜索
    • 相似关键词识别
    • 词汇分布图
    • 生成文本
    from nltk.book import *
    
    # 词语搜索
    print('搜索词monstrous->')
    text1.concordance('monstrous')
    
    print('上下文相似词->')
    # 上下文相似词, 没有返回值
    text2.similar('monstrous')
    
    # 共同上下文
    print('monstrous, very共同上下文')
    text2.common_contexts(['monstrous', 'very'])
    
    # 词汇分布表
    text4.dispersion_plot(['citizens', 'democracy', 'freedom', 'duties', 'America'])
    
    # 词数统计
    len(text3)
    
    # 出现的不重复词语的词数
    len(set(text3))
    
    # 排序
    sorted(set(text3))
    
    # 重复词密度
    from __future__ import division
    len(text3) / len(set(text3))
    
    # 关键词密度
    text3.count('smote')
    100 * text4.count('a') / len(text4)
    
    # 平均词密度, 平均每个词出现的词数
    def lexical_diversity(text):
        return len(text) / len(set(text))
    
    lexical_diversity(text1)

    2.2  计数词汇

     3. 词链表

    print(sent1) # ['Call', 'me', 'Ishmael', '.']
    print(sent1[1:3])

    3.1 词频分布

    nltk内置的统计类:FeDist

    fdist = FreqDist(text1)
    print(fdist)

     

    # 频率累计分布图
    fdist.plot(50, cumulative=True)

    频率累计分布图:

      丢弃高频且没有意义的词,或者是抽取具有P特性(例如词的长度大于15)的词汇。

    # 细粒度的选择词
    V = set(text5)
    long_words = [w for w in V if len(w) >= 15]
    sorted(long_words)
    
    # 综合词的长度和词频,进行筛选
    sorted([w for w in set(text5) if len(w) > 7 and fdist[w] > 7])

     

      词语搭配:

    from nltk.util import bigrams  # 二元语法, trigrams 三元语法
    
    list(bigrams(['more', 'is', 'said', 'than', 'done']))   # [('more', 'is'), ('is', 'said'), ('said', 'than'), ('than', 'done')]
    # 经常出现的双联次
    text1.collocations()

      词长分布,对作者的文章也是有影响的:

    # 词长分布
    fdist = FreqDist([len(w) for w in text1])
    
    fdist.items() 
    # dict_items([(1, 47933), (4, 42345), (2, 38513), (6, 17111), (8, 9966), (9, 6428), (11, 1873), (5, 26597), (7, 14399), (3, 50223), (10, 3528), (12, 1053), (
    # 13, 567), (14, 177), (16, 22), (15, 70), (17, 12), (18, 1), (20, 1)])

    4. 自然语言处理(NLP)

    自然语言:自然的随着文化演化的语言,就是人们日常使用的语言。

    自然语言处理:用计算机对自然语言进行操作。

    自然语言研究的内容:

    • 此意消岐
    • 指代理解
    • 自动生成语言
    • 机器翻译
    • 人机对话系统
    • 文本含义识别

     5. nltk语料库

    end

  • 相关阅读:
    WampServer Mysql配置
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 前10名
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/10210456.html
Copyright © 2011-2022 走看看