一、安装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='词汇离散图')