NLTK中文语料库sinica_treebank
http://www.hankcs.com/program/python/nltk-chinese-corpus-sinica_treebank.html
NLTK包含Sinica (中央研究院)提供的繁体中文语料库,其在Python环境下的显示有些讲究。
NLTK sinica_treebank 显示中文
在IDLE中如果直接查看的话会显示十六进制码:
- >>> from nltk.corpus import sinica_treebank
- >>> sinica_treebank.words()
- ['\xe4\xb8\x80', '\xe5\x8f\x8b\xe6\x83\x85', ...]
如果想在IDLE中查看这些进制码对应的中文的话,可以:
- >>> print '\xe4\xb8\x80'
- 一
NLTK中文词性标注
一个一个手动print太蠢了,一段代码自动让它好看起来:
- # -*- coding:utf-8 -*-
- # Filename: sinica_treebank.py
- # Author:hankcs
- # Date: 2014-04-08 上午11:44
- import nltk
- from nltk.corpus import sinica_treebank
- sinica_text = nltk.Text(sinica_treebank.words())
- print sinica_text
- for (key, var) in sinica_treebank.tagged_words()[:8]:
- print '%s/%s' % (key, var),
输出:
- <Text: 一 友情 嘉珍 和 我 住在 同一條 巷子...>
- 一/Neu 友情/Nad 嘉珍/Nba 和/Caa 我/Nhaa 住在/VC1 同一條/DM 巷子/Nab
NLTK中文句法树
- >>> sinica_treebank.parsed_sents()[15].draw()

真是神奇的Python!
搜索中文文本
在IDLE中不方便调编码,还是写进py文件吧:
- # -*- coding:utf-8 -*-
- # Filename: sinica_treebank.py
- # Author:hankcs
- # Date: 2014-04-08 上午11:44
- import nltk
- from nltk.corpus import sinica_treebank
- sinica_text = nltk.Text(sinica_treebank.words())
- print sinica_text.concordance('我')
输出:
- Building index...
- Displaying 25 of 724 matches:
- 我 住在 同一條 巷子 我們 是 �
- �� 一起 回家 有一天 上學 時 我 到 她 家 等候 按 了 門鈴 卻
- ��鈴 卻 沒有 任何 動靜 正當 我 想 離開 時 門 內 突然 傳來
- �� 了 門 大聲 的 叫 著 快 點 我 媽媽 暈倒 了 嘉珍 抓起 我 �
- � 我 媽媽 暈倒 了 嘉珍 抓起 我 的 手 急忙 往 屋 裡 跑 進入
- 得 像 紙 一樣 這種 情景 把 我 嚇壞 了 怎麼辦 嘉珍 不停 �
- ��停 的 哭泣 聲音 有些 顫抖 我 的 腦海 中 頓時 一片 空白 �
- � 怎麼辦 才 好 過 了 一會兒 我 才 問 她 你 爸爸 呢 他 出差
- 他 出差 了 嘉珍 擦 著 眼淚 我 握住 她 的 雙手 她 的 手 又
- �� 這時 有個 念頭 突然 閃過 我 的 眼前 我 幫 她 撥 了 一一
- � 念頭 突然 閃過 我 的 眼前 我 幫 她 撥 了 一一九 請 救護�
- 她 的 背 安慰 她 不要 著急 我 會 陪 你 的 不久 救護車 停
- ��上 救護車 嘉珍 上車 前 對 我 說 謝謝 你 的 幫忙 我 握 著
- 前 對 我 說 謝謝 你 的 幫忙 我 握 著 她 的 手 說 不用 謝 �
- �� 握 著 她 的 手 說 不用 謝 我 因為 我們 是 好朋友 二 無�
- 員外 來 找 他 並且 對 他 說 我 看 你 悶悶不樂 是不是 進京
- �� 著 他 的 手 說 你 不用 還 我 了 我 只是 盡 一份 心力 而�
- �� 的 手 說 你 不用 還 我 了 我 只是 盡 一份 心力 而已 以�
- 銀子 含 著 眼淚 說 謝謝 您 我 不 知道 要 怎麼 來 報答 您
- 答 您 江 巡撫 說 你 不必 謝 我 也 不必 回報 我 四 快樂 的
- 你 不必 謝 我 也 不必 回報 我 四 快樂 的 閱讀課 上 國語�
- �� 這一組 做 讀書 心得 報告 我 第一個 站起來 發言 我們 閱
- �過 兩 人 成為 知心 的 朋友 我 說完 之後 組長 站起來 補充
- 清理 火山灰 而且 欣賞 落日 我 喜歡 這種 自由自在 的 生活
- 的 人 也 不 喜歡 虛偽 的 人 我 覺得 小 王子 很 正直 最後 �
- None
这里面的�大概是字体的原因吧,毕竟不是繁体中文系统。本文的原作者指出:
concordance 會出現 � 的原因是因為這個字的被切一半 , 因為 UTF-8 編碼中文要有三個byte ‘xe4xb8x80′ , 出現�� 表示被切成這樣 ‘xe4xb8′, 少一個 byte
茅塞顿开。
控制台乱码的话可能需要decode成unicode然后在encode成gb编码:
- s = "中文"
- if isinstance(s, unicode):
- # s=u"中文"
- print s.encode('gb2312')
- else:
- # s="中文"
- print s.decode('utf-8').encode('gb2312')
NLTK计算中文高频词
- >>> sinica_fd=nltk.FreqDist(sinica_treebank.words())
- >>> top100=sinica_fd.items()[0:100]
- >>> for (x,y) in top100:
- print x,y
- 的 6776
- 、 1482
- 在 1331
- 是 1317
- 了 1190
- 有 759
- 我 724
- 他 688
- 就 627
- 上 612
- 和 580
- 也 542
- 不 526
- 人 467
- 都 417
- 與 404
- 著 389
- 我們 384
初步的NLTK中文玩法就这些了,还是挺不错的。
NLTK中文语料库sinica_treebank的更多相关文章
- 自然语言7_NLTK中文语料库sinica_treebank
http://www.hankcs.com/program/python/nltk-chinese-corpus-sinica_treebank.html NLTK包含Sinica (中央研究院)提供 ...
- 自然语言处理——NLTK中文语料库语料库
Python NLTK库中包含着大量的语料库,但是大部分都是英文,不过有一个Sinica(中央研究院)提供的繁体中文语料库,值得我们注意. 在使用这个语料库之前,我们首先要检查一下是否已经安装了这个语 ...
- python 基础及资料汇总
Python 包.模块.类以及代码文件和目录的一种管理方案 Numpy 小结 用 Python 3 的 async / await 做异步编程 K-means 在 Python 中的实现 ...
- 学习笔记CB002:词干提取、词性标注、中文切词、文档分类
英文词干提取器,import nltk,porter = nltk.PorterStemmer(),porter.stem('lying') . 词性标注器,pos_tag处理词序列,根据句子动态判断 ...
- 自然语言9_NLTK计算中文高频词
以下代码仅限于python2 NLTK计算中文高频词 >>> sinica_fd=nltk.FreqDist(sinica_treebank.words()) >>> ...
- python之自然语言处理入门(一)
前言 NTLK是著名的Python自然语言处理工具包,记录一下学习NTLK的总结. 安装nltk pip install nltk # 测试 import nltk 安装相关的包 import nlt ...
- nltk.download()出错解决
http://blog.csdn.net/joey_su/article/details/17289621 官方下载地址 http://www.nltk.org/nltk_data/ 把python自 ...
- 【NLP】干货!Python NLTK结合stanford NLP工具包进行文本处理
干货!详述Python NLTK下如何使用stanford NLP工具包 作者:白宁超 2016年11月6日19:28:43 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的 ...
- 【NLP】Python NLTK处理原始文本
Python NLTK 处理原始文本 作者:白宁超 2016年11月8日22:45:44 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公开 ...
随机推荐
- ViewHolder数据错乱BUG
需求是这样的,在列表中用一个图标标示某个item是已经被接下或者完成的任务. 对于文件有这样的操作,进入列表后第一页面展示正常,但是加载更多后同样位置出现了同样的标志.这不是我想要的效果 我的解决办法 ...
- mybatis Generator配置文件详解
这里按照配置的顺序对配置逐个讲解,更细的内容可以配合中文文档参照. 1. 配置文件头 <?xml version="1.0" encoding="UTF-8&quo ...
- 给li设置float浮动属性之后,无法撑开外层ul的问题。(原址:http://www.cnblogs.com/cielzhao/p/5781462.html)
最近在项目中有好几次遇到这个问题,感觉是浮动引起的,虽然用<div style="clear:both"></div>解决了,但自己不是特别明白,又在网上查 ...
- jQuery 图片等比缩放
$(function(){ $('.img-box img').load(function(){ var w = $(this).width(); var h =$(this).height(); i ...
- js-判断字符是否为数字
if(/^\d+$/.test(str)) { 全为数字,执行... } 当然你也可以用isNaN来判断 if(isNaN(str)) { str是个数字,执行... }
- C#-WinForm-布局-Anchor-锁定布局、Dock-填充布局、工具箱中的<容器>
Anchor - 锁定布局,锁定控件对于其父控件或窗体的位置,保持与边框固定的距离还是居中等 Dock - 填充布局,控件是否如何进行填充 ============================== ...
- Selenium+WebDriver+Python 定时控制任务
为了更对得起"自动化测试"的名号,我们可以设置定时任务,使我们自动化脚本在某个时间点自动运行脚本,这样就可以让测试在夜间进行,减少了时间成本.通过程序来控制test case在什么 ...
- 系统间通信(4)——IO通信模型和JAVA实践 中篇
4.多路复用IO模型 在"上篇"文章中,我们已经提到了使用多线程解决高并发场景的问题所在,这篇文章我们开始 4-1.现实场景 我们试想一下这样的现实场景: 一个餐厅同时有100位客 ...
- C#微信开发之旅(二):基础类之HttpClientHelper(更新:SSL安全策略)
public class HttpClientHelper 2 { 3 /// <summary> 4 /// get请求 5 ...
- C# 常用加密方式
using System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography;u ...