本文关键词:文本数据预处理、中文文本预处理、自然语言处理
摘要: 要进行自然语言处理相关工作,文本数据预处理是个必不可少的过程。本文将对文本数据预处理相关的内容进行归纳整理,主要包括以下4个方面内容:
“巧妇难为无米之炊”,要做文本数据处理,首先需要获得文本数据。对于此问题,大家可以“八仙过海,各显神通”,借助一切合法、合理方式收集数据集。一般的,可以通过:自有数据整理、公开数据爬取和开源数据引用三个渠道获取数据。
图片豆瓣电影评论爬取可参考:
https://www.cnblogs.com/fengxi177/p/16939376.html
项目名 | 项目链接 | 项目概述 |
---|---|---|
CLUEDatasetSearch | 收集了众多中英文NLP数据集 | |
funNLP | 分门别类的组织了众多的NLP数据集和项目 | |
awesome-chinese-nlp | 收集了中文自然语言处理相关资料 | |
Chinese_medical_NLP | 收集了医疗NLP领域(主要关注中文)评测数据集与论文相关资源 |
由此,在收集好原始数据集后便可进行后续相关的NLP分析了。
特别的,数据集可以保存为txt、json、csv、tsv、sql表等等格式,只要你喜欢,都可以(哈哈哈,有些格式可能会比较占用内存,较大数据集时需要留意)。
图片此处分享一个csv超大文件数据读取技巧,即利用pandas的chunksize分块读取。
import pandas as pd
df = pd.read_csv("data.csv", chunksize=10000) # 每次读取1w行数据
for df_chunk in df:
print(df_chunk)
文本数据作为一种非结构化数据,除了特别处理过的数据集,大多数直接收集的文本数据会掺杂或多或少的无用信息,如果直接将其进行相关的文本分析于建模是无益的。通常,需要先对文本数据进行预处理操作。
文本数据预处理的主要目的一般有两个,即:
(1)将文本数据清洗干净(标准自定)
(2)将文本数据格式化(需求自定)
至此,经过常规预处理后,文本数据会变的比较干净与规整,可以用于后续nlp研究与应用。(说明,适用于自己任务的操作才是必须的,其他的参照奥卡姆剃刀“如无必要,勿增实体”)。
前面介绍了通常情况下文本预处理可能涉及的注意点,但是要真正的做好数据预处理,应该与具体的任务相结合起来。比如:数据不平衡问题,数据增强问题、数据标注问题等等。
特别的,如需获得泛化性能好的模型,首先需要关注解决不平衡问题。
数据太少,那就需要利用规则和算法增强数据,使数据多样化。
对于文本预处理工作,目前已有一些专门的工具包,功能比较多样,大家可以试用一下,提升自己处理数据的效率和质量。
本文对文本预处理,特别是中文文本预处理做了一个简要的概述,希望于相关的nlper有所帮助。后续,将依次递进分享相应的NLP文章,敬请关注。
你是如何看待“文本预处理”的呢? 欢迎关注留言讨论
特别的,如本文有疏漏,麻烦留言指出,以期校正提升。
如看到文章的小伙伴有感兴趣的nlp主题,欢迎留言交流讨论,共同撰文分享。
原文首发于微信公众号:实用自然语言处理
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。