当前位置:   article > 正文

NLTK入门_在text1《白鲸记》中搜索指定单词‘danger’,输入以下命令能发现‘danger’一

在text1《白鲸记》中搜索指定单词‘danger’,输入以下命令能发现‘danger’一

搜索文本

  • 指定单词每次出现,连同上下文一起显示,用函数concordance: 比如来查一下《白鲸记》中的词monstrous:

    text1.concordance("monstrous")
    
    • 1
  • 搜索与某个单词出现类似上下文中的单词

    text1.similar("monstrous")
    
    • 1
  • 具有共同上下文的多个单词

    text2.common_contexts(["monstrous", "very"])
    -> be_glad am_glad a_pretty is_pretty a_lucky
    
    • 1
    • 2
  • 单词在文本中的离散图

    text4.dispersion_plot(["citizens", "democracy", "freedom", "duties", "America"])
    
    • 1

计数词汇

  • 获取词汇排序表(按照单词顺序排列)

    sorted(set(text3))  #set去重,sorted排序
    
    • 1
  • 文本词汇丰富度,每个字平均被使用次数

     from __future__ import division
    -> len(text3) / len(set(text3))
    
    • 1
    • 2
  • 计数一个词在文本中出现的次数,计算一个特定的词在文本中占据的百分比。

     text3.count("smote")
    100 * text4.count('a') / len(text4)
    
    • 1
    • 2

频率分布

  • 统计文本中词频FreqDist

    fdist1 = FreqDist(text1)
    
    • 1
  • 查看文本只出现一次的词

    fdist1.hapaxes()
    
    • 1
  • 所有长度超过7 个字符出现次数超过7 次的词:

    fdist5 = FreqDist(text5)
    sorted([w for w in set(text5) if len(w) > 7 and fdist5[w] > 7])
    
    • 1
    • 2

词语搭配和双连词(bigrams)

  • 双连词,bigrams生成的是generator,查看需要用list()函数转换为数组

    bigrams(['more', 'is', 'said', 'than', 'done'])
    ->[('more', 'is'), ('is', 'said'), ('said', 'than'), ('than', 'done')]
    
    • 1
    • 2
  • 找到文本中频繁的双连词,用collocations()函数

    text4.collocations()
    ->United States; fellow citizens; years ago; Federal Government;......
    
    • 1
    • 2

频率分类定义函数

fdist = FreqDist(samples)创建包含给定样本的频率分布
fdist.inc(sample)增加样本
fdist[‘monstrous’]计数给定样本出现的次数
fdist.freq(‘monstrous’)给定样本的频率
fdist.N()样本总数
fdist.keys()以频率递减顺序排序的样本链表
for sample in fdist:以频率递减的顺序遍历样本
fdist.max()数值最大的样本
fdist.tabulate()绘制频率分布表
fdist.plot()绘制频率分布图
fdist.plot(cumulative=True)绘制累积频率分布图
fdist1 < fdist2测试样本在fdist1 中出现的频率是否小于fdist2

python数组表达式

[w for w in text if condition]
  • 1

其中condition为满足的测试条件。一些测试属性的表达函数为:

函数含义
s.startswith(t)测试s 是否以t 开头
s.endswith(t)测试s 是否以t 结尾
t in s测试s 是否包含t
s.islower()测试s 中所有字符是否都是小写字母
s.isupper()测试s 中所有字符是否都是大写字母
s.isalpha()测试s 中所有字符是否都是字母
s.isalnum()测试s 中所有字符是否都是字母或数字
s.isdigit()测试s 中所有字符是否都是数字
s.istitle()测试s 是否首字母大写(s 中所有的词都首字母大写)

对每个元素进行操作

表达式为

[f(w) for ...]或[w.f() for ...]
  • 1

比如

[w.upper() for w in text1]
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/991393
推荐阅读
相关标签
  

闽ICP备14008679号