基于NLTK的NLP语料库文档数据分析(Jupyter)

本文详细介绍了如何在Windows上使用Anaconda管理和配置Python虚拟环境,包括创建、激活、删除环境以及在Jupyter中使用虚拟环境。此外,还涵盖了如何在NLP项目中进行数据采集、预处理,如分词、词频分析、文本可视化等内容。
摘要由CSDN通过智能技术生成

一、安装Anaconda等

略。

二、Jupyter环境配置

2.1 虚拟环境配置的相关命令

Windows+R,输入cmd或点击Anaconda Powershell Prompt打开命令行。

1.查看环境(打开cmd 或powershell)

conda info –envs

2.新建环境    

conda create --name 新环境名称 python==版本号

3.按照路径新建环境    

conda create -p 新环境路径 python==版本号

例:conda create -p D:\\Anaconda3\envs\TextMining python==3.7

4.克隆环境    

conda create --name 新环境名称2 --clone 旧环境名称

5.删除环境    

conda remove --name 新环境名称2 --all

6.激活(进入)环境     

conda activate 新环境名称

例:conda activate D:\\Anaconda3\envs\TextMining

7.退出环境       

conda deactivate

2.2 在虚拟环境中配置相关库

1.进入虚拟环境

activate 环境名

例:activate normal_language

2.安装所需库(使用镜像源加速)

pip install 库名 -i 镜像源网址

conda install 库名 -c 镜像源网址

例:pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

常用的镜像源:

清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

阿里云 http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣(douban) http://pypi.douban.com/simple/

中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

2.3 在Jupyter中使用虚拟环境

2.3.1.安装需要的库

conda install jupyter
conda install ipykernel        # jupyter内核

# 添加虚拟环境到jupyter中
python -m ipykernel install --user --name 虚拟环境名 --display-name 在jupyter中显示的环境名称

例:python -m ipykernel install --user --name normal_language --display-name normal_language

2.3.2.启动虚拟环境

1、 在Jupyter中新建一个文件

2、 选择内核进行编程

三、语料库数据分析

3.1 下载作品文本集,完成数据采集和预处理

import nltk
from nltk.book import *

3.2 获取保存的文件列表

from nltk.corpus import PlaintextCorpusReader
corpus_root = r"C:\Users\wwwhisky\anaconda3\nltk_data\data"
wordlists = PlaintextCorpusReader(corpus_root, '.*')  # 获取语料库中的文本标识列表
wordlists.fileids()  # 获取文件列表

3.3 读取本地语料

with open(r"C:\Users\wwwhisky\anaconda3\nltk_data\data\金庸-神雕侠侣.txt", 'r') as f:  # 打开文本
    str = f.read()  # 读取文本
    print("统计用词量:", len(set(str)))  # 统计用词量
    print("平均每个词的使用次数:", len(str)/len(set(str)))  # 平均每个词的使用次

3.4 查询词频

print("小龙女出现的次数:", str.count('小龙女'))  # 使用次数
print("杨过出现的次数:", str.count('杨过'))  # 使用次数
print("雕出现的次数:", str.count('雕'))  # 使用次数
print("侠出现的次数:", str.count('侠'))  # 使用次数

3.5 查看《神雕侠侣》语料中的部分文本

str[5394:6008]

3.6 查看《神雕侠侣》一书中前30个高频词和高频标识符的次数

fdist = FreqDist(str)
print("前30个高频词或高频标识符:", fdist.most_common(30))  # 统计前30个高频词或高频标识符

3.7查询词频在指定区间内的词数量

from collections import Counter
W = Counter(str)
# 查询词频在0~100的词量
print("查询词频在0~100的词量:", len([w for w in W.values() if w < 100]))
# 查询词频在100~1000的词量
print("查询词频在100~1000的词量:", len([w for w in W.values() if w > 100 and w < 1000]))
# 查询词频在1000~5000的词量
print("查询词频在1000~5000的词量:", len([w for w in W.values() if w > 1000 and w < 5000]))
# 查询词频在5000以上的词量
print("查询词频在5000以上的词量:", len([w for w in W.values() if w > 5000]))

3.8 使用Jieba库进行分词

import re
import jieba
print(str)
# \u4e00-\u9fa5用于判断是不是中文的一个条件
cleaned_data = ''.join(re.findall('[\u4e00-\u9fa5]', str)) 
wordlist = jieba.lcut(cleaned_data)  # 结巴分词处理
text = nltk.Text(wordlist)  # 封装成text对象
print(text)

3.9 查看指定单词上下文

text.concordance(word='杨过', width=30, lines=3)

3.10 搜索相似词语

text.similar(word='李莫愁', num=10)

3.11 绘制词汇离散图

import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
words=['小龙女', '杨过', '郭靖', '黄蓉']
nltk.draw.dispersion.dispersion_plot(text, words, title='词汇离散图')

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值