您的位置:首页
自然语言7_NLTK中文语料库sinica_treebank
2016-11-16 11:22
453 查看
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程)
https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share
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中文玩法就这些了,还是挺不错的。
python风控评分卡建模和风控常识(博客主亲自录制视频教程)
https://study.163.com/course/introduction.htm?courseId=1005214003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share相关文章推荐
- NLTK中文语料库sinica_treebank
- python+NLTK 自然语言学习处理三:如何在nltk/matplotlib中的图片中显示中文
- 自然语言0_nltk中文使用和学习资料汇总
- 自然语言19.1_Lemmatizing with NLTK(单词变体还原)
- Python nltk载入自己的中文语料库的两种方法 for Windows7
- 自然语言20_The corpora with NLTK
- python+NLTK 自然语言学习处理八:分类文本一
- NLTK和jieba这两个python的自然语言包(HMM,rnn,sigmoid
- Python自然语言工具包(NLTK)入门
- 自然语言22_Wordnet with NLTK
- NLP-python自然语言工具之nltk
- 自然语言23_Text Classification with NLTK
- 面向中文的自然语言编程
- 自然语言6_treebank句子解析
- [原创] 自然语言环境(中文)下的人工智能理论及实践
- 自然语言18.2_NLTK命名实体识别
- 转 --自然语言工具包(NLTK)小结
- python+NLTK 自然语言学习处理:环境搭建
- 自然语言13_Stop words with NLTK
- 自然语言25_nltk.book