zoukankan      html  css  js  c++  java
  • NLTK入门

    首先要了解python的基本语法,

      其中列表的处理,字符串的格式化,以及词汇的比较运算(包括判断某一个词语开头是否大小写等)

    专有名词:

      1. 分词:用于产生词汇和标点符号的链表

    安装完NlLTK后,

      import nltk

      nltk.download()  

    计算text1中每个词的平均出现次数公式:

      avg = len(text1)/len(set(text1))

    计算text1中某个词的出现频率

      p = text1.count('a')/len(text1)

    import nltk
    from nltk.book import *    #所有的文本数据导入,(text1 ~text9)
    
    nltk.download() #下载所需的训练文本数据
    text1.concordance('monstrous')    #查找text1文本中存在monstrous的
    text1.count('word')   #计算word在text1中出现的次数
    text1.silimar('monstrous') text1.common_contexts(['monstrous', 'very']) #查看使用两个或者两个以上词语的上下文 text1.dispersion_plot(['word1', 'word2', 'word3', ...]) #画出这些词语分布的离散图 text1.generate() #生成text1中的随机文本 fdist1 = FreqDist(text1) #可以用来寻找text1中最常见的词 fdist1.key()[:50] fdist = FreqDist([len(w) for x in text1]) #FreqDist不仅可以显示词,还可以显示没个词对应的长度,【1, 3,5,6,11,5,9,......】 fdist.keys() # 查询计数链表中的每个数字出现的次数,以频率递减顺序的样本链表 fdist.items() #[(3,50223), (9,988), ...] 词长度为3的有50223个 fdist[3] #查看词长为3的有多少个, fdist.fred(3) #计算词长为3的词频。
    fdist.fred['a']  #计算a的出现频率
    fdist.hapaxes()   #查看只出现一次的词
    fdist.inc(sample)  #增加样本
    fdist['a']  #计算给定样本出现的次数
    fdist.N{}  #样本总数
    fdist.tabulate()  #绘制频率分布表
    fdist.plot()  #绘制频率分布图
    fdist.plot(cumulative=True)  #绘制累积频率分布图
    fdist1 < fdist2  #测试数据fdist1是否小于fdist2

    2.处理网页中获取的文本内容

    from urllib.request import urlopen
    url = "www.xxxx.com/a.txt"
    raw = urlopen(url).read() # raw是从某url获取的文本
    tokens = nltk.word_tokenize(raw)    #此时tokens为含有词汇和标点的链表
    text = nltk.Text(tokens) #text为<type. 'nltk.text.Text'> 对象
    text.collocations()   #找文本中频繁相邻的二元组
    a = raw.find('PART I')  # 找到文中以 PART I 开头的词语在哪一个位置
    b = raw.rfind('where are you')  #找到以wehere are you 结尾的位置在哪个位置,
    raw = raw[a:b]  #可以根据此方式去除不需要的开头和结尾的文本内容

    3. 处理html 网络的文本大部分是以html的形式,可以用一下方式进行简单的处理

    url = 'www.youtube.com'
    html = urlopen(url).read()   #html包含了网址中的所有内容,css,jss,html代码等
    raw = nltk.clean_html(html)    #nltk 中提供的处理html的辅助函数。返回处理后的原始文本 ,然后可以对raw进行word_tokenize()分词处理
  • 相关阅读:
    iOS API 概述
    iOS开发的一些奇巧淫技3
    iOS开发的一些奇巧淫技1&2
    iOS-一键拨号
    iOS层次架构
    简单block 和 代理
    iOS开发-单例GCD
    简单的归档、接档
    通知中心与本地通知
    安装linux centos 7.7 遇到 DRM:Pointer to TMDS table invalid
  • 原文地址:https://www.cnblogs.com/bianjing/p/9979552.html
Copyright © 2011-2022 走看看