初探nlp 词频统计,去停顿词

一些简单且实用的python操作

rainbow = open(r'C:\Users\Linsinan\Desktop\彩虹.txt')
text = rainbow.read().split()

text.count('the') # 词频计算
words = set(text) # 不重复的元组数据
len(words) # 有19657个不重复的单词
'draw'[::-1] # 对一个单词进行反转

{w for w in words if w == w[::-1] and len(w) > 4} # 长度大于4且反转后还是自己的单词
{w for w in words if w == w[::-1] and len(w) > 4} # set + lambda的操作,学到了


简单的词频统计

import string
from urllib.request import urlopen
import nltk
import matplotlib.pyplot as plt
from nltk.corpus import stopwords

shakespeare = urlopen('http://composingprograms.com/shakespeare.txt')
text = shakespeare.read().decode().lower().split()
words = set(text)
countsDict = {index: text.count(index) for index in words}
# countsDict = nltk.FreqDist(text),最快最直接的方式

# 去掉标点
for i in string.punctuation:
    try:
        countsDict.pop(i)
    except:
        pass


# 前10名频率的单词
rankWord = sorted(countsDict, key=lambda x: countsDict[x], reverse=True)
values = [countsDict[i] for i in rankWord[:10]]
plt.bar(range(len(values)), values, tick_label=rankWord[:10])
plt.show()


# 前10名的非停用词
for i in stopwords.words('english'):
    try:
        countsDict.pop(i)
    except:
        pass

rankWord = sorted(countsDict, key=lambda x: countsDict[x], reverse=True)
values = [countsDict[i] for i in rankWord[:10]]
plt.bar(range(len(values)), values, tick_label=rankWord[:10])
plt.show()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值