NLP-nltk篇

NLTK是Python中用于自然语言处理的工具包,包括分词、词性标注、停用词处理等功能。它提供了丰富的语料库和词汇资源,如情感分析、文本相似度和文本分类等应用。在处理社交网络语言时,需要利用正则表达式进行特殊字符的分词。词形归一化中,Stemming和Lemmatization是两种常见方法,用于减少词形变化。NLTK还提供词性标注符号和停用词列表,帮助优化文本预处理流程。
摘要由CSDN通过智能技术生成

nltk

by deamon(deamoncao@163.com) 
nltk的全称是natural language toolkit,是一套基于python的自然语言处理工具集,⾃带语料库,词性分类库,⾃带分类,分词,等等功能。

注意: 在运行命令nltk.download()安装 NLTK 的 nltk_data 模块的时候可能会出错。此时建议离线下载安装 NLTK 的 nltk_data 模块。
数据见:https://pan.baidu.com/s/1jIHTlyQ。 在下载完数据之后,将数据放在正确的nltk目录下,查看目录运行nltk.data.find("."),如下所示:

In [14]:
 
          
import nltk
nltk.data.find(".")
Out[14]:
FileSystemPathPointer('C:\\Users\\deamon\\AppData\\Roaming\\nltk_data')
In [ ]:
import nltk
#nltk.download()

NLTK功能如下表所示

NLTK⾃带语料库

In [15]:
from nltk.corpus import brown
brown.categories()
print(len(brown.sents()))
print(len(brown.words()))
 
     
57340
1161192

⽂本处理流程

Tokenize

In [16]:
import nltk
sentence = "hello, world"
tokens = nltk.word_tokenize(sentence)
print(tokens)
['hello', ',', 'world']

中英⽂NLP区别

英文直接使用空格分词,中文需要专门的方法进行分词:



社交⽹络语⾔的tokenize

In [7]:
from nltk.tokenize import word_tokenize
tweet = 'RT @angelababy: love you baby! :D http://ah.love #168cm'
print(word_tokenize(tweet))
['RT', '@', 'angelababy', ':', 'love', 'you', 'baby', '!', ':', 'D', 'http', ':', '//ah.love', '#', '168cm']

使用正则表达式对社交网络语言进行切词

如上面对'RT @angelababy: love you baby! :D http://ah.love #168cm'的切词客户已发现,切出来的数据不是很正确。那么对社交网络语言进行
tokenize的时候需要借助正则表达式,将表情符,网址,话题,@某人等作为一个整体.
正则表达式:http://www.regexlab.com/zh/regref.htm

In [8]:
import re
emoticons_str = r"""
    (?:
    [:=;] # 眼睛
    [oO\-]? # ⿐⼦
    [D\)\]\(\]/\\OpP] # 嘴
    )"""
regex_str = [
    emoticons_str,
    r'<[^>]+>', # HTML tags
    r'(?:@[\w_]+)', # @某⼈
    r"(?:\#+[\w_]+[\w\'_\-]*[\w_]+)", # 话题标签
    r'http[s]?://(?:[a-z]|[0-9]|[$-_@.&amp;+]|[!*\(\),]|(?:%[0-9a-f][0-9a-f]))+',
    # URLs
    r'(?:(?:\d+,?)+(?:\.?\d+)?)', # 数字
    r"(?:[a-z][a-z'\-_]+[a-z])", # 含有 - 和 ‘ 的单词
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值