注意: 在运行命令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]:
In [ ]:
import nltk
#nltk.download()
In [15]:
from nltk.corpus import brown
brown.categories()
print(len(brown.sents()))
print(len(brown.words()))
In [16]:
import nltk
sentence = "hello, world"
tokens = nltk.word_tokenize(sentence)
print(tokens)
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'的切词客户已发现,切出来的数据不是很正确。那么对社交网络语言进行
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]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-f][0-9a-f]))+',
# URLs
r'(?:(?:\d+,?)+(?:\.?\d+)?)', # 数字
r"(?:[a-z][a-z'\-_]+[a-z])", # 含有 - 和 ‘ 的单词

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



4030

被折叠的 条评论
为什么被折叠?



