栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

文本处理技能与文本数据清洗、提取、分词与统计

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

文本处理技能与文本数据清洗、提取、分词与统计

目录
  • 前言
  • 一、Linux的一些常用命令?
  • 二、Python的一些常用操作
  • 三、常用的一些自然语言处理工具包
    • 3-1、nltk工具包
      • 3-1-1、安装
      • 3-1-2、nltk的使用
    • 3-2、
  • 四、常用的一些分词模型
    • 4-1、朴素贝叶斯
    • 4-2、N-gram模型
  • 总结


前言

在开始进行NLP的相关任务时,首先需要做一些预备工作,比如说数据清洗、提取等,接下来就让我们来看一下具体有哪些操作吧。

一、Linux的一些常用命令?

wc -l file: 看文件一共有多少行
more file: 观察部分文件
head -10 file: 查看文件的前10行内容
更多Linux命令请查看我的另一篇文章.

二、Python的一些常用操作

strip(): 去掉开始和结尾的空格
upper(): 将字符串转化为大写
index(s): 寻找字符串中s字符出现的位置
find(s): 寻找字符串中s字符出现的位置
注意:它们的区别在于find()如果在指定字符中没有找到则返回-1;而index则会抛出ValueError异常。
[::-1]: 反转字符串。
split(s): 以字符s分割字符串,默认的话是以空格来分割字符串。
s.join(list): 将列表中的每个元素用字符s连接起来。参数是要连接的元素序列。
Counter(): 对字符串列表元祖字典进行计数,返回一个字典类型的数据,键是元素,值是元素出现的次数

# 举例
s = "hello-python-hello-world"
a = Counter(s)
print(a)
# 结果 
Counter({'-': 3, 'd': 1, 'e': 2, 'h': 3, 'l': 5, 'n': 1, 'o': 4, 'p': 1, 'r': 1, 't': 1, 'w': 1, 'y': 1})

re.findall(): 找到 RE 匹配的所有子串,并把它们作为一个列表返回

# re模块是使用正则表达式时主要使用到的模块
import re
str = 'abc!A_xyz'
# 下面语句的作用时去掉字母以外的相关字符
re.findall('[a-zA-Z]', str)

map(function, iterable, …): 会根据提供的函数对指定序列做映射,第一个参数时所要使用的功能(可以是自己定义的函数,也可以是匿名函数),第二个参数时迭代器,列表、字符串等。

>>> def square(x) :            # 计算平方数
...     return x ** 2
...
>>> map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
三、常用的一些自然语言处理工具包

使用工具包来对文档进行分词、词性标注、分类、指标评测等,可以使自然语言处理任务事半功倍。

3-1、nltk工具包

nltk可以用来干什么?
1、单词搜索
2、相似词搜索
3、相似关键词识别
4、词汇分布图
5、生成文本等等任务。
主要是用来英文分词的。

3-1-1、安装

1、使用命令安装:pip install nltk
2、下载数据包:
github上的安装包地址.
nltk官方文档.
nltk官网的数据包下载地址(分散的数据).
看看就行了,在GitHub下载数据包需要梯子,巧了,恰好我没有。托好兄弟给我下载了,分享给在座的各位。
链接:https://pan.baidu.com/s/1vq-06QvknDYoo5uDKyAU-w
提取码:ilq8
解压后复制其中的packages文件夹,放在下列位置中的任意一个地方。

安装完成!!

3-1-2、nltk的使用
import nltk
import matplotlib
from nltk.book import *
from nltk.util import bigrams

# 单词搜索
# concordance(word)函数,搜索word及其上下文
print('单词搜索')
text1.concordance('boy')
text2.concordance('friends')

# 相似词搜索
# similar(word),搜索word及其相关的词语
print('相似词搜索')
text3.similar('time')

# 共同上下文搜索
# common_contexts([word1, word2...]): 搜索多个单词的上下文
print('共同上下文搜索')
text2.common_contexts(['monstrous','very'])

# 词汇分布表
# dispersion_plot([word1,word2,word3...]):画出词在文本中的位置,从文本开始的位置开始计算
print('词汇分布表')
text4.dispersion_plot(['citizens', 'American', 'freedom', 'duties'])

# 词汇计数
print('词汇计数')
print(len(text5))
sorted(set(text5))
print(len(set(text5)))

# 重复词密度
print('重复词密度')
print(len(text8) / len(set(text8)))

# 关键词密度
print('关键词密度')
print(text9.count('girl'))
print(text9.count('girl') * 100 / len(text9))

# 频率分布
# FreqDist(text)函数,返回text文本中每个词出现的次数的元组列表
fdist = FreqDist(text1)
vocabulary = fdist.keys()
for i in vocabulary:
    print(i)

# 高频前20
# plot(): 绘制出来top多少的词汇累计频率图
fdist.plot(20, cumulative = True)

# 低频词
# hapaxes(): 返回低频词
print('低频词:')
print(fdist.hapaxes())

# 词语搭配
# bigrams([word1, word2, word3])生成双连词,返回列表嵌套元组的形式。
print('词语搭配')
words = list(bigrams(['louder', 'words', 'speak']))
print(words)
3-2、 四、常用的一些分词模型 4-1、朴素贝叶斯 4-2、N-gram模型
总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422904.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号