python--nltk库预处理德语文本
1.文本预处理
程序的目的是找出高频不认识的词汇,因此直接删除停用词后再分词,以减小文本处理量。将文本噪音去除放在了最后,原因是书籍文本一般较为规整,在前序两步完成后已变为字符串,最后处理简单方便(仅判断是否为字符即可)。因此分3步做文本预处理。
- 删除停用词
- 分词
- 去除文本噪音
1.1 删除停用词
nltk中停用词查找方式:
import nltk
from nltk.corpus import stopwords
set(stopwords.words('german'))
德语原有停止词共232个
1.2 分词
即,将语句转为单独字符串
#step2 tokenize
word_tokens=word_tokenize(text)
filtered_txt=[]
for w in word_tokens:if w not in stopwords:filtered_txt.append(filtered_txt)
1.3 去除文本噪音
#清除无效字符,返回tagged_clean
#删除filtered_txt 中元素[0]不包含在字母表中的元素
list_len=len(filtered_txt)
filtered_clean=[]
for i in range(list_len): words=tagged_added[i]if words[0].isalpha():filtered_clean.append(tagged_added[i])
2. 标准化文本
德语变格及时态极多,通过NLTK的WordLemmatizer()函数进行词形还原(Lemmatization),另,词形还原在使用时,最好先指定单词的词性。标准化文本步骤:
- 获取词性
- 转换pos位(增加词性)
- 还原词形
2.1 获取词性
在NLP中,使用Parts of speech(POS)技术实现。在nltk中,使用nltk.pos_tag()
获取单词在句子中的词性。
#step3 tags标注词性
tagged_added = nltk.pos_tag(tokens)
tagged_added为:
[('Vorbemerkung', 'NNP'),('Herausgebers', 'NNPS'),('Die-Welt-von-Gestern', 'NNP'),('Vorbemerkung', 'NNP'),('HerausgebersStefan', 'NNP'),('Zweigs', 'NNP'),('›Welt', 'NNP'),('Gestern‹', 'NNP'),('großartiges', 'NNS'),('Denn', 'NNP'),('Rückschau', 'NNP'),('weit', 'VBD'),('mehr', 'JJ'),('Autobiographie', 'NNP'),('Blick', 'NNP'),('beschauliche', 'NN'),('behütete', 'NN'),('Kindheit', 'NNP'),('Jugend', 'NNP'),... ...
POS词性对照表:
2.2 转换pos位(增加词性)
WordNetLemmatizer()的pos参数定义了词形还原时的先行判断原词为形容词、动词、名词等,以增加原形还原准确度。
以nltk.pos_tag()获取的词性不能直接传入做为pos的实参,因此需定义转换函数:
- nltk tag 定义
#step5-1 单词的词性对应
def get_wordnet_pos(tag):if tag.startswith('J'):return wordnet.ADJelif tag.startswith('V'):return wordnet.VERBelif tag.startswith('N'):return wordnet.NOUNelif tag.startswith('R'):return wordnet.ADVelse:return None
2.3 还原词形
# step5-2 词形还原
wnl = WordNetLemmatizer()
Lemmatized=[]
for word in tagged_clean:wordnet_pos = get_wordnet_pos(word[1]) or wordnet.NOUNLemmatized.append(wnl.lemmatize(word[0], pos=wordnet_pos))
原文为:
预处理后原形为:
*发现德语效果并不好,如umfasst等,并未全部还原为原形。
尝试获取词干方法。
2.4 获取词干
词干获取时可设置语言。
from nltk.stem import SnowballStemmer
print(SnowballStemmer.languages)
('arabic', 'danish', 'dutch', 'english', 'finnish', 'french', 'german', 'hungarian', 'italian', 'norwegian', 'porter', 'portuguese', 'romanian', 'russian', 'spanish', 'swedish')
参考
wordnet
如何处理非英文字符:
python-nltk-stemming-lemmatization-natural-language-processing-nlptext-cleaning-nltk-library
NLTK用法总结
NLP入门(三)词形还原(Lemmatization)
ntlk词典资源
python--nltk库预处理德语文本相关推荐
- python 英语分词_基于Python NLTK库进行英文文本预处理
文本预处理是要文本处理成计算机能识别的格式,是文本分类.文本可视化.文本分析等研究的重要步骤.具体流程包括文本分词.去除停用词.词干抽取(词形还原).文本向量表征.特征选择等步骤,以消除脏数据对挖掘分 ...
- Python NLTK库安装Error:Resource u*corpora/gutenberg* not found.
转载请标明出处: http://blog.csdn.net/djy1992/article/details/72828734 本文出自:[奥特曼超人的博客] 提起聊天机器人, 想必大家会想起一个优秀的 ...
- python nltk是什么_Python文本处理nltk基础
自然语言处理 -->计算机数据 ,计算机可以处理vector,matrix 向量矩阵. NLTK 自然语言处理库,自带语料,词性分析,分类,分词等功能. 简单版的wrapper,比如textbl ...
- python textwrap_[Python标准库]textwrap——格式化文本段落
textwrap--格式化文本段落 作用:通过调整换行符在段落中出现的位置来格式化文本. Python 版本:2.5 及以后版本 需要美观打印时,可以用 textwra ...
- python自然语言处理案例-Python自然语言处理 NLTK 库用法入门教程【经典】
本文实例讲述了Python自然语言处理 NLTK 库用法.分享给大家供大家参考,具体如下: 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP).本教程将会使用 Python NLTK ...
- Python自然语言处理 NLTK 库用法入门教程【经典】
@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 本文实例讲述了Python自然语言处理 NLTK 库用法.分享给大家供大家参考,具体如下: 在这篇文章中,我们将基于 Python ...
- Python常用库 - 【持续整理归档】
Python常用库 - [持续整理归档],比较多,会逐步慢慢细化分类和扩从python常用库.(最后更新:2020-4-8) 为方便Python开发人员进行敏捷开发,高效的完成工作需求,耗时很久整理的 ...
- Python常用库的用法介绍都给大家整理出来啦,非常实用,建议收藏
前言 随着大数据和人工智能的发展,Python也与多种科技深深绑定. 比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端开发,云计算,游戏开发都有涉及. 万丈高楼平地起,Python这座大 ...
- Python NLTK 自然语言处理入门与例程
Python NLTK 自然语言处理入门与例程 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP).本教程将会使用 Python NLTK 库.NLTK 是一个当下流行的,用于自然语言 ...
最新文章
- 【Spark Summit EU 2016】使用Spark和StreamSets构建数据通道
- android将被代替的控件,Android 控件被忽略的属性
- mysql 数据怎么导出_mysql怎么导出数据
- android opencv hu moment,学习OpenCV:hu矩
- PCL库VTK显示点云法向时出错:no override found for vtkActor
- C++与QML逻辑分离
- 牛客网_PAT乙级1016_部分A+B (15)
- vue中请求接口怎么封装公共地址_vue请求接口的封装
- 一个奇怪的注意事项TNS-12545 TNS-12560 TNS-00515
- import pandas as pd什么意思_Pandas万花筒:让绘图变得更美观
- JDK 9 发布仅数月,为何在生产环境中却频遭嫌弃?
- MySQL快速上手[学习笔记](三)
- Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
- 在python3.5中使用pip
- html转换成ppt转换器,ppt转换成word|幻灯片转换成word ppt转视频轻松解决
- 【教学类-20-01】20221203《世界杯16强国旗-随机版》(大班)
- themeleaf基本语法
- 如何通adb命令删除安卓设备上指定的文件和apk
- Jdk1.8 Collectors类使用详解(实用干货)
- f2fs解析(十)nid 如何从nat_root中删除
热门文章
- CSS justify-content 属性
- php直播接口代码,网易云视频直播php版api
- 宝塔搭建docker运行Hyperf
- smallint mysql_mysql的数据类型int、bigint、smallint 和 tinyint取值范围
- VS2010上单独编译ocl模块(opencv248)
- c语言对10万位进行显示,C语言位运算
- 2021年中国电池片产量及重点企业对比分析(正泰电器VS明阳智能VS晶澳科技VS中来股份VS林洋能源)[图]
- 公众号可绑定到视频号直播间?来了解了解
- Edge浏览器提示您开启了窗口拦截程序解决方法
- python 异常处理 应急预案