其他分享
首页 > 其他分享> > 【自然语言处理通关手册_NLP】2.文本预处理

【自然语言处理通关手册_NLP】2.文本预处理

作者:互联网

【知识点总结】

1. 正则表达式

2. 分词

3. 词性标注

4.词干提取和词性还原

5. 命名实体识别

6. 文本的数据增强

(中文数据增强工具 nlpcda)

========================================================

 

1. 正则表达式

1) re模块

 

 

2. 分词

1)难点

    中文分词无统一标准:如/中华人民共和国/,中华/人民/共和国

    歧义词难分:羽毛球拍卖完了,羽毛球拍/卖/完了,羽毛球/拍卖/完了

    未登录词难以识别:新词e.g. 奥利给

2)方法

    介绍:首先将待分词的中⽂⽂本根据⼀定规则切分和调整,然后和词典中的词语进⾏匹配,匹配成功则按照词典的词分词,匹配失败通过调整或者重新选择,如此反复循环即可。

    优点:速度快、成本低。

    缺点:适应性不强,不同领域效果差异⼤。

    代表方法:正向最大匹配、逆向最大匹配、双向匹配

    优点:适应性较强。

    缺点:成本较⾼,速度较慢。

           

    优点:准确率⾼、适应性强。

    缺点:成本⾼,速度慢。

            

【分词问题转换为序列标注问题:B、M、E来表示词的头、中、尾,则王先生就职于武汉大学=BMEBESBMME,BME/BE/S/BMME = 王先生/就职/于/武汉大学】

 3)常见中文分词工具

4)jieba的使用

    全模式:把所有可能的分词结果展示出来

    精确模式:只取一种最有可能的切分方式

    搜索引擎模式:在精确模式的基础上,对长词再次划分

    新建一个词典文件,内容规则:

      一个新词占一行

      每一行三部分:词语、词频(可略)、词性(可略),空格隔开,顺序不能变

      文件优先用utf-8编码

    

    用jieba.load_userdict(词典文件路径)来加载新词典,再进行分词操作

    添加新词:jieba.add_word(词,freq=None,tag=None)

    删除词:jieba.del_word(词)

 

3. 词性标注

1)难点

2)方法

3)常见的具备词性标注功能的工具

4)应用工具,实现中英文词性标注

 

 

4. 词干提取与词形还原

只针对具有形态变化的语言。中文是固定形态的语言,不需要这两种预处理操作

1)异同点

    常见前后缀:第三人称-s、进行时-ing、过去分词-ed

  将词汇统一为一般形式再进行后续分析处理

  基于词典:不是简单地去掉前后缀,而是根据词典将单词转换

  are、is、been、was、were都变成been

 

2)NLTK工具包进行词干提取

 

  3)NLTK.stem进行词形还原

 

 4)对于文本,实施词性还原的三步骤

 

5. 命名实体识别 Named Entity Recognition (NER)

识别文本中具有特定意义的实体,比如人名、地点名、组织机构名、时间等

1)方法:

2)工具:

 3)NLTK工具包进行命名实体识别例子:

 

6. 文本的数据增强

收集的真实数据往往存在数据类别不平衡的问题。比如,垃圾邮件比正常邮件少些,有错字的文本比正常的文本少些。

对于样本少的类别,模型可能就学习不到其特性。而有时我们想识别那些样本少的类别,如错别字预测

针对文本数据,在未被转化成数值表征形式时,可以在字符层面进行数据增广

nlpcda 是一个中文数据增强工具

1)同义词替换

2)文本回译

    baidu_translate(content=原文本,appid=百度翻译api的appid,secretKey=百度翻译api的secretKey,t_from=原文本的语言,t_to=翻译文本的语言)

    申请 appid、secretKey 链接: http://api.fanyi.baidu.com/api/trans

3)词汇顺序变化

  针对某些特殊提交的文本(如条例类的文本),在语块层面重新进行语序的排列不影响整体语义的表达

标签:NLP,词性,文本,jieba,分词,NLTK,自然语言,预处理,标注
来源: https://www.cnblogs.com/Joyce0105/p/14830997.html