【NLP】NO1:自然语言处理的完整机器处理流程

二、中文自然处理的主要步骤(1)语料清洗1.人工去重、对齐、删除和标注2.基于规则提取内容、正则表达式匹配3.根据词性和命名实体提取(2)中文分词—难点在于歧义和新词1.基于字符串匹配的分词方法2.基于理解的分词方法3.基于统计的分词方法4.基于规则的分词方法(3) 词性标注1.定义词的词性, 如形容词、 动词等, 在情感分析、 知识推理中用, 在文本分类中不用2.基于统...
摘要由CSDN通过智能技术生成

参考文章:https://www.jianshu.com/p/b87e01374a65在这里插入图片描述

二、中文自然处理的主要步骤

(1)语料清洗
1.人工去重、对齐、删除和标注
2.基于规则提取内容、正则表达式匹配
3.根据词性和命名实体提取

英文文本处理不同点:
(1)基于空格分词
(2)进行拼写检查、词干提取、词型还原
都是为了找到词的原始形式

  • 词干提取:更加激,可能找到不是词的词干
  • 词型还原:保守,一般能找到词的词干
#nltk中提供多种方法,一般wordnet比较好,不会把单词过分精简
from nltk.stem import WordNetLemmatizer
a = WordNetLemmatizer()
data['word'] = data['word'].apply(lambda x:a.WordNetLemmatizer(x))

1 去掉非文本部分
利用正则表达式或者直接替换,去除不提供任何其他信息的标签:html标签、标点符号等

#正则表达式
import re
p = re.complie('正则表达式')
word = re.sub(p,' ',word)
#直接替换
data['word'] = data['word'].str.replace('[^\w\s]','')

(2)中文分词—难点在于歧义和新词
1.基于字符串匹配的分词方法
2.基于理解的分词方法
3.基于统计的分词方法
4.基于规则的分词方法

#英文文本:基于空格分词
data['word'] = data['word'].apply(lambda x:" ".join(x for x in x.split()))
#中文分词:调用工具
import jieba
data['word'] = data['word'].apply(lambda x: list(jieba.cut(x)))

常用的中文分词有中科院计算所NLPIR、哈工大LTP、清华大学THULAC、斯坦福分词器、Hanlp分词器和jieba分词

1、jieba 的分词算法
1.基于统计词典,构造前缀词典,基于前缀词典对句子进行切分,得到所有切分可能,根据切分位置,构造一个有向无环图(DAG);
2.基于DAG图,采用动态规划计算最大概率路径(最有可能的分词结果),根据最大概率路径分词;
3.对于新词(词库中没有的词),采用有汉字成词能力的 HMM 模型进行切分。

2、结巴分词应用

import jieba
#默认模式:精确分词
word = jieba.cut(word,cut_all=False)
#全模式:所有可能是词语的都扫描出来,优点是速度快,缺点是不能解决歧义
word = jieba.cut(word,cut_all=True)
#搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率
word = jieba.cut_search(word)
#输入格式
print(" ".join(word))
#分词后返回list格式
word = jieba.lcut(word)
word = jieba.lcut_search(word)
#获取中文词性
import jieba.posseg as psg
[(x.word
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值