赞
踩
NLP简介 自然语言处理属于人工智能领域。所有计算机都擅长对数值数据进行处理,NLP这一部分计算机技术是处理文本数据,用来分析世界上不同的语言的。 现在NLP的应用大多都在机器翻译、舆情监测、自动摘要、观点提取、文本分类、问题回答、文本语义对比、语音识别、中文OCR等方面。
今天我们要get到的技能就是使用 Python中Spacy和NLTK 等库对语言处理进行基本概念的学习。
众所周知我们分析原始文本数据,数据量,代码量小的情况下,可以人眼分析一些。
但是如果我们试图在编程中建立一种机制,使用Python从文本数据中分析和提取最大的信息的话,我们还是使用 jupyter notebook 协助python编程代码进行所有处理和分析语言处理比较好。(Jupyter采用anaconda 发行版。)
毕竟用jupyter notebook的话就不用在回顾项目的时候再一次次的重新跑一遍代码了!
介绍了本篇教程的目的和要使用工具,学姐要开始上硬菜了!
五步走主题如下:
第 1 步:Spacy和NLTK安装指南
第 2 步:关于文本的基本概念和正则表达式
第 3 步:标记化和词干
第 4 步:词形还原和停用词
第 5步:词性 (POS) 和命名实体识别 (NER)
别跑,接下来我们就一步一步的说,保管你能看懂学会。
首先安装 anaconda 发行版,安装后,anaconda会在环境中安装Spacy和NLTK库。
安装Spacy和NLTK
NLTK配置(安装NLTK库,命令行输入以下命令):
pip3 install nltk
有些时候的nltk代码需要语料库才能运行,运行下面的python代码下载语料库。
- import nltk
-
- nltk.download()
Spacy配置(安装spacy库,命令行输入以下命令):
pip3 install spacy
接着下载spacy的英语语言库:
python -m spacy download en #en stands for english
注意spacy使用时候需要声明使用的模型
- import spacy
-
- nlp = spacy.load('en_core_web_sm')
也可以下载spacy的中文语言库:
- python -m spacy download zh_core_web_sm
-
- import spacy
-
- nlp = spacy.load("zh_core_web_sm")
spacy库各语种下载传送门:https://spacy.io/usage/models#quickstart
安装下载好之后,接下来开始用 python读取这些文件,进行语言处理。先用一些文本数据来初步尝试一下,先从基本字符串开始:
- #打印普通字符串
-
- print('Amit')
-
- #output: Amit
举个例子:
字符串的名称是 GURUGRAM,这是一个城市的名字。如果需要选择特定范围的字母表时,要使用切片法和索引法。
当我们从左到右时,索引从0开始,当我们想要从右到左的字母表时,它从负 (-1) 开始,而不是从零开始。
然后用python进行以下操作:
- #首先将字符串插入到变量中
-
- string = GURUGRAM
-
- #获取第一个带有索引的字母
-
- print(string[0])
-
- #输出:G
-
- #打印多个字母
-
- print(string[2], string[5])
-
- #输出:RR
-
- #用于获取带有负索引的字母
-
- print(string[-4])
-
- #输出:G
现在通过切片获取字符:
- print(string[0:2])
-
- #output: GU
-
- print(string[1:4])
-
- #output: URU
是不是感觉有点意思了?那就开始挑战对句子的处理吧!
接下来是strip()函数表演时间,此函数可以删除开头和结尾的字符,但不能删除中间的字符,如果我们不指定删除字符,则默认情况下它将删除空格。
- #一个句子和句子中的移除字符
-
- sentence = "****Hello World! I am Amit Chauhan****"
-
- remove_character = "*"
-
- #使用strip函数去除
-
- star(*) sentence.strip(removing_character)
-
- #output:
-
- 'Hello World! I am Amit Chauhan'
上面的例子是从句子中去掉了星号。因此可以看出,这个函数可以去除字符,大家可以尝试以下不指定删除字符是什么样的结果。
和strip函数完全相反的操作是join操作,例子:
- str1 = "Happy"
-
- str2 = "Home""
- Good ".join([str1, str2])
-
- #output: 'Happy Good Home'
正则表达式有时称为关系表达式或 RegEx,用于字符或字符串匹配,在许多情况下用于查找和替换字符或字符串。
那如何在正则表达式中处理字符串和模式?首先学习在实际操作中导入正则表达式:
- # 要使用正则表达式,我们需要 import re
-
- import re
如何对简单字符串使用“re”?例子:
首先得有一个句子,然后在其中找到字符串,再对字符串进行一些操作
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。