在GitHub上发现一些很有意思的项目,由于本人作为Python的初学者,编程代码能力相对薄弱,为了加强Python的学习,特此利用前辈们的学习知识成果,自己去亲自实现。
来源:GitHub
Python练手小程序项目地址:https://github.com/Show-Me-the-Code/python
写作日期:2019.12.14
今天练习第0006题,题目如下:
这个题目,打算改变一下数据集,我打算利用kaggle上的NIPS-Papers的paper.csv文件,找出每个英文摘要中最重要的词,也就是所谓的提取关键词。
下面通过文本处理的几个步骤一一展开:
-
1、导入数据集
首先数据集paper.csv文件,我们主要分析摘要这个字段,在分析过程中其他字段先不处理。
# 利用pandas加载数据集
import pandas as pd
dataset = pd.read_csv('nips-papers/papers.csv')
# 查看数据集
dataset.head(5)
-
2、文本探索
在进行预处理之前,我们先根据每个摘要的字数,快速浏览一下整体摘要的情况,主要看下摘要的平均字数,总摘要数,以及摘要的最小字数和最大字数等信息。
# 对每个文章摘要计算字数
dataset['word_count'] = dataset['abstract'].apply(lambda x: len(str(x).split()))
# 查看下部分数据
dataset[['abstract', 'word_count']].head(5)
# 统计摘要字数分布情况
dataset['word_count'].describe()
可以看出一共有7241篇摘要,每个摘要平均字数是80.5,摘要字数范围从最小值2到最大值313.
下面我们看下最常见和最不常见的单词
# ' '.join(dataset['abstract']) 这个动作是先把所有摘要都拼接在一起
freq = pd.Series(' '.join(dataset['abstract']).split()).value_counts()
# 查看摘要中最常见的单词
print(freq[:30])
# 查看摘要中最不常见的单词
print(freq[-30:])
-
3、文本预处理
-
1)单词标准化处理,用到nltk,pip install nltk
这里的标准化,指的通过删除后缀来归一化文本,比如learn, learned, learning, learner,归一化这些转换为单个标准化版本:learn
-
2)删除停用词处理
-
3&#x
-