赞
踩
自然语言处理NLP(Natural Language Processing),就是使用计算机对语言文字进行处理的相关技术。本文主要是总结一下中、英文的常用的文本预处技术。
文本分析的流程如下:
由于Python2不支持unicode的处理,因此我们使用Python2做中文文本预处理时需要遵循的原则是,存储数据都用utf8,读出来进行中文相关处理时,使用GBK之类的中文编码。
目前流行的中文工具包:
备注:特定领域的分词可以加入自己词库进行分词,如果分词误差比较大,可以重新训练自己的分词模型。
import jieba
s = '沙瑞金赞叹易学习的胸怀,是金山的百姓有福,可是这件事对李达康的触动很大。' \
'易学习又回忆起他们三人分开的前一晚,大家一起喝酒话别,易学习被降职到道口县当县长,' \
'王大路下海经商,李达康连连赔礼道歉,觉得对不起大家,他最对不起的是王大路,就和易学' \
'习一起给王大路凑了5万块钱,王大路自己东挪西撮了5万块,开始下海经商。没想到后来王大路' \
'竟然做得风生水起。沙瑞金觉得他们三人,在困难时期还能以沫相助,很不容易。'
jieba.suggest_freq('沙瑞金', True) # 加入词库
jieba.suggest_freq('易学习', True)
jieba.suggest_freq('王大路', True)
jieba.suggest_freq('京州', True)
document_cut = jieba.cut(s)
result = ' '.join(document_cut)
print(result)
常用的中文停用下载链接(1208个):http://files.cnblogs.com/files/pinard/stop_words.zip
from enchant.checker import SpellChecker
chkr = SpellChecker("en_US")
chkr.set_text("Many peope likee to watch In the Name of People.")
for err in chkr:
print "ERROR:", err.word
词干提取(stemming)和词型还原(lemmatization)都是要找到词的原始形式。词干提取(stemming)会更加激进一点,它在寻找词干的时候可以会得到不是词的词干。比如"imaging"的词干可能得到的是"imag", 并不是一个词。而词形还原则保守一些,它一般只对能够还原成一个正确的词的词进行处理。一般使用nltk工具包进行处理。
import nltk
nltk.download() # 下载语料包
from nltk.stem import SnowballStemmer
stemmer = SnowballStemmer("english") # Choose a language
stemmer.stem("countries") # Stem a word
from nltk.stem import WordNetLemmatizer
wnl = WordNetLemmatizer()
print(wnl.lemmatize('countries'))
这么做的原因和词干提取的原因一样,减少词库,加快计算。
常用的英文停用下载链接:http://www.matthewjockers.net/wp-content/uploads/2013/04/uwm-workshop.zip
NLP入门-- 文本预处理Pre-processing:https://zhuanlan.zhihu.com/p/53277723
Useful Text Preprocessing on the datasets:https://www.kaggle.com/l3nnys/useful-text-preprocessing-on-the-datasets
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。