近来,在看一本用python进行自然语言处理的书,里面的例子比较多,博主在此将其整理如下,一是方便自己查看,二是帮助广大学友共同学习,对于里面的问题大家都可以随时讨论。PS:书名为python自然语言处理,作者Steven Bird, Ewan Klein, and Edward Loper
第一章 应用在自然语言上的python语法
1. 自然语言处理:Natural Language Processing(NLP)
自然语言工具包; Natural Language Toolkit(NLTK)
下载python的网址: 点击打开链接
下载NLTK的网址:点击打开链接
介绍python的网址:点击打开链接
2. (鉴于本书编印较早,很多例子都有变化,所以不可一概而论。)
搜索文本,连同上下文一起显示:text1.concordance("monstrous")
哪些词出现在相似的上下文中:text1.similar("monstrous")
研究两个相似词的共同上下文:text1.common_contexts(["monstrous","very"])
看出单词的分布,绘制离散图:text1.dispersion_plot(["monstrous","very","America","democracy"])
随机产生文本:text1.generate()
标识符:词和标点符号,两个一样的词语就是两个标识符。
定义了两个函数:
def lexical_diversity(text)<span style="font-family:FangSong_GB2312;">:</span>
return len(text) / len(set(text))
def percentage(count, total):
teturn 100 * count / total
链表相加:
sent1 + sent4
链表追加:sent1.append('some')
索引:text1[13]
text.index("awake")
切片:text[37:40],出现37,38,39三个数字对应的词
将列表连接起来组成单个字符串:''.join(['a','b'])----'a b'
把字符串分割成一个列表:'a b'.split()----['a','b']
fdist1是每个词对应的频率,下面是绘制前50个词的累计频图:
fdist1 = FreqDist(text1)
fdist1.plot(50, cumulat<span style="font-family:FangSong_GB2312;">ive</span>=True)
只出现一次的词:
fdist1<span style="font-family:FangSong_GB2312;">.hapaxes()</span>
sorted排序先出大写开头的,然后按照字母表顺序。
字典索引:
fdist1<font face="FangSong_GB2312">.items()
<span style="font-size:18px;"><strong><span style="font-family:FangSong_GB2312;"><span style="font-size:18px;"><strong></strong></span></span></strong></span></font><pre name="code" class="python">fdist1<font face="FangSong_GB2312">.keys()
<span style="font-size:18px;"><strong><span style="font-family:FangSong_GB2312;"><span style="font-size:18px;"><strong></strong></span></span></strong></span></font><pre name="code" class="python">fdist1<span style="font-family:FangSong_GB2312;">.values()
集合
set([<span style="color:#FF0000;">w.lower()</span> <span style="background-color: rgb(51, 51, 255);"><span style="color:#33FF33;">for</span></span> w in text <span style="background-color: rgb(102, 0, 204);"><span style="color:#6666CC;"><span style="color:#33FFFF;">i</span><span style="color:#66FFFF;">f</span></span></span> w.ifalpha()])
</span>