《Python自然语言处理》第一章

语言处理与Python

本章主要介绍了一些NLP领域和Python的入门知识,对于NLP领域我确实是门外汉,但是Python之前倒是用过了一些,所以看起来问题不大,速度比较快。

首先在命令行里

 pip install nltk

使用Pycharm进行了例程代码的复现。
在Pycharm里面开一个console

>>>  import nltk
>>>  nltk.download()

在出来的python 交互式界面里面下载book数据就可以开始实验了。

>>> from ntlk.book import * 
#导入数据
>>> text1.concordance("monstrous"#搜索文本  在text1中搜索monstrous

>>> text1.similar("monstrous")
#搜索相似的词(这个相似的定义比较不一般  如果两个词上下文都比较一致,认为这两个词相似


>>> text4.dispersion_plot(["citizens","democracy","freedom","duties","America"])
#绘制词汇分布图,这个功能应该稍微实用酷炫一点(text4是美国总统就职演说语料库),这个绘图功能的实现要求安装有matplotlib包

>>>text3.generate()
#生成随机文本的一个功能,但是这个功能在python3中被去掉了,所以会报错

计数相关功能

这一部分主要是一些统计计数相关的功能。


>>> len(text3) 
#显示文本text3的长度(标识符的个数,词和标点符号都是标识符)

>>> set(text3)
#获取text3的词汇表

>>> sorted(set(text3))
###对词汇表进行排序
>>> 3/2
#python2里是整除 得到1
>>> 3/2
#python3里是浮点除法得到1.5

简单的统计

>>> fdist1 = FreqDist(text1)
>>> vocabulary1 = fdist1.keys()
>>> vocabulary1[:50]
#此处会报错错误类型: ’dict_keys’ object is not subscriptable  Python3中  这个vocabulary也是一个字典,要把它转成list  链表才可以这么用
#更改方法:
>>> vocabulary1 = list(fdist1.keys())
>>> vocabulary1[:50]

>>> fdist1.plot(50,cumulative = True)
#绘制词汇累积频率图,即使用量前50的词汇占全文的比例,有实际意义
#自己实验时的纵坐标是次数不是频率,跟书中不太一样

习题

  • 6 text2.dispersion_plot([“Elinor”,”Marianne”,”Edward”,”Willoughby”])
  • 7 text5.collocations()
  • 9
    a 定义一个字符串,并且将它分配给一个变量,如:my_string = ‘My String’(在 字符串中放一些更有趣的东西)。用两种方法输出这个变量的内容,一种是通过简 单地输入变量的名称,然后按回车;另一种是通过使用 print 语句。
    b 尝试使用 my_string+ my_string 或者用它乘以一个数将字符串添加到它自身, 例如:my_string* 3。请注意,连接在一起的字符串之间没有空格。怎样能解决这个问题?
    解法:
    b
    ans = (my_string + ’ ‘) * 3
    print(ans[0:-1]

“`

猜你喜欢

转载自blog.csdn.net/generalli95/article/details/79420704