代码来自《Python自然语言处理》,我做了详细的代码解释。

 # -*- coding:utf-8 -*-
import nltk
def findtags(tag_prefix,tagged_text):a=tagged_text#这几行代码是为了输出tagged_textprint a[0][0]print a[0][1]print [(tag,word) for (word,tag) in tagged_text if tag.startswith(tag_prefix)]#这个代码是为了输出列表推导式print '-'*100cfd=nltk.ConditionalFreqDist((tag,word) for (word,tag) in tagged_text if tag.startswith(tag_prefix))#这句话的意思是,对于文章(tagged_text)中词性(tag)以NN(tag_prefix)开始的(word,tag),改变前后顺序赋值给(tag,word),最后进行词频统计(ConditionalFreqDist)print"cfd=",cfdprint '-'*200print [(tag,cfd[tag].keys()[:5]) for tag in cfd.conditions()]#keys()按递减顺序遍历。这句话的意思是找出频率最高的六个词语print '-'*200return dict((tag,cfd[tag].keys()[:5]) for tag in cfd.conditions())
if __name__=='__main__':tagdict=findtags('NN',nltk.corpus.brown.tagged_words(categories='news'))# print nltk.corpus.brown.tagged_words(categories='news')# print '*'*100# for tag in sorted(tagdict):#   print (tag,tagdict[tag])# 用中括号括起来才叫列表推导式
# 用小括号括起来的叫生成器
#上面的列表推导式的另外一种等效的写法是:
# t = []
# for word,tag in tagged_text:
#     if xxxx:
#         t.append((tag,word))
# ConditionalFreqDist,这这个接受的参数的要求是tag,word

NLTK找出最频繁的名词标记的程序(代码详细解释)相关推荐

  1. Java黑皮书课后题第5章:*5.16(找出一个整数的因子)编写程序,读入一个整数,然后以升序显示它的所有最小因子。例如,若输入的整数是120,那么输出就应该是:2、2、2、3、5

    *5.16(找出一个整数的因子)编写程序,读入一个整数,然后以升序显示它的所有最小因子.例如,若输入的整数是120,那么输出就应该是:2.2.2.3.5 题目 题目概述 代码:[点击这里快速跳转推荐方 ...

  2. Java黑皮书课后题第5章:5.8(找出得最高分的学生)编写程序,提示用户输入学生的个数、每个学生名字及分数,最后显示获得最高分的学生

    5.8(找出得最高分的学生)编写程序,提示用户输入学生的个数.每个学生名字及分数,最后显示获得最高分的学生名字 题目 题目概述 next()读取一个字符与nextLine()读取一行 破题 代码 题目 ...

  3. 【技巧】EXCEL如何按行找出最大三个数并标记

    1.选中要处理区域 ​可以按住鼠标左键拖选.在数据量大时,先点击目标区域左上角单元格,然后按住键盘shift键同时用鼠标左键点击目标区域右下角单元格. 2.设置条件格式​ 选中"使用公式确定 ...

  4. JVM调优之jstack找出最耗cpu的线程并定位代码

    jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多.下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有 ...

  5. python 找出列表中出现最多的元素_利用Python找出序列中出现最多的元素示例代码...

    前言 Python包含6种内置的序列:列表.元组.字符串 .Unicode字符串.buffer对象.xrange对象.在序列中的每个元素都有自己的编号.列表与元组的区别在于,列表是可以修改,而组元不可 ...

  6. 【咕嘎文本对比助手】如何两份手机号或文本对比去重,新旧两批号码如何快速的对比重复,找出重复和不重复的部分,单个文件如何找出重复,单个文件如何找出不重复下面关于五种逻辑做详细解答

    在手机号码整理过程中,群发短信还有大数据分析等整理文件的过程中经常有号码重复 有人说excel有两列数据,怎么用vlookup查找两列数据是否有重复值?在SQL语句中就很好处理了not in 就完事了 ...

  7. Java 找出四位数的所有吸血鬼数字 基础代码实例

    /**  * 找出四位数的所有吸血鬼数字  * 吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序.  * 以两个 ...

  8. 在DataGridView控件中一次显示出多个圆饼图的原始程序代码

    之前我们曾经提到过,您可以在Windows Form窗体上的一个DataGridView控件中一次显示出多个圆饼图(或其它形式的统计图表)以便能够一次检视多个群组数据的比例情况(如图表1所示).当时并 ...

  9. 找出指定范围的回文数C++代码实现

    思路非常的简单,即把这些书一位一位的分开用一个数组存上,看看一共多少位,然后从后向前看看是否相等即可. #include<iostream> using namespace std; cl ...

最新文章

  1. 【MySQL】Got fatal error 1236原因和解决方法
  2. GNS3 串口连接问题
  3. 企业级nginx服务优化(一)
  4. 易语言单窗口单ip软件源码_好人多窗口同步器:多台电脑同步视频演示
  5. oracle里的AUE是什么意思,oracle 创建表空间步骤代码
  6. oracle-REDO日志文件分析(insert)
  7. Wpf Binding.Path设置
  8. LeetCode 1140. 石子游戏 II(DP)*
  9. 2021 年 Java 开发者生产力报告
  10. [转] 面向对象编程 - 访问限制
  11. C语言基础教程之enum
  12. 为 Retrofit2 提供的 FastJson 转换库
  13. 线性同余法产生1000个随机数
  14. 版本控制工具-Git
  15. QQ正式推出“超级QQ秀”布局元宇宙
  16. 彼时年少----那一年,沉默无言
  17. 基于广度优先遍历算法求采用邻接表存储的无向连通图G中从顶点u到v的最短路径
  18. 使用ROS和AprilTags进行相机定位(二维码定位全流程)
  19. SQL Round 取整千 整百 整万
  20. 和府捞面全新品牌“小面小酒”在福州开业,下一批新店落地天津、淄博

热门文章

  1. MFC窗口颜色的设置
  2. MOCTF-Web-死亡退出
  3. React Native Android端多环境自动打包
  4. (十四)算法设计思想之“贪心算法”
  5. Vue 前端导出后端返回的excel文件
  6. oracle 物理读突然增加的原因_请教一个诡异的物理读比逻辑读还多的问题!!!!
  7. JS中代表结束的三个关键字 break,continue,return
  8. java 对第三方的异常_Java第三方API调用打开文件方法时抛出异常
  9. springboot微信支付pc页面生成二维码
  10. docker(三) 制作自己的镜像