- 前言
- 一、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命令请查看我的另一篇文章.
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、生成文本等等任务。
主要是用来英文分词的。
1、使用命令安装:pip install nltk
2、下载数据包:
github上的安装包地址.
nltk官方文档.
nltk官网的数据包下载地址(分散的数据).
看看就行了,在GitHub下载数据包需要梯子,巧了,恰好我没有。托好兄弟给我下载了,分享给在座的各位。
链接:https://pan.baidu.com/s/1vq-06QvknDYoo5uDKyAU-w
提取码:ilq8
解压后复制其中的packages文件夹,放在下列位置中的任意一个地方。
安装完成!!
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提供了大量能使我们快速便捷地处理数据的函数和方法。



