自然语言处理 第三期

NLP

内容

  1. 基本文本处理技能
    1.1 分词的概念(分词的正向最大、逆向最大、双向最大匹配法);
    1.2 词、字符频率统计;(可以使用Python中的collections.Counter模块,也可以自己寻找其他好用的库)
  2. 2.1 语言模型中unigram、bigram、trigram的概念;
    2.2 unigram、bigram频率统计;(可以使用Python中的collections.Counter模块,也可以自己寻找其他好用的库)
  3. 文本矩阵化:要求采用词袋模型且是词级别的矩阵化
    步骤有:
    3.1 分词(可采用结巴分词来进行分词操作,其他库也可以);
    3.2 去停用词;构造词表。
    3.3 每篇文档的向量化。

实现

  1. 中文分词:汉语自然语言处理的第一部分是中文分词。因为中文不像英文那样,实行分词连写,即词与词之间用空格分隔。
    在分析中文文本之前必须将一个汉字序列切分成一个一个单独的词,这个过程称为中文分词。

中文分词主要分为机械师分词法(基于词典),基于语法和规则分词法,基于统计分词法。

最大匹配法:最大匹配是指以词典为依据,取词典中最长单词为第一个次取字数量的扫描串,在词典中进行扫描(为提升扫描效率,还可以跟据字数多少设计多个字典,然后根据字数分别从不同字典中进行扫描)。例如:词典中最长词为“中华人民共和国”共7个汉字,则最大匹配起始字数为7个汉字。然后逐字递减,在对应的词典中进行查找。
(1)正向最大匹配法:正向即从前往后取词,从7->1,每次减一个字,直到词典命中或剩下1个单字。
(2)逆向最大匹配法:逆向即从后往前取词,其他逻辑和正向相同。
(3)双向最大匹配法:两种算法都切一遍,然后根据大颗粒度词越多越好,非词典词和单字词越少越好的原则,选取其中一种分词结果输出。
2. 词、字符频率统计:

import jieba
txt = open("红楼梦.txt", "r", encoding="gb18030").read()

import collections

txt1 = txt
txt1 = txt1.replace('\n', '')  # 删掉换行符
txt1 = txt1.replace(',', '')  # 删掉逗号
txt1 = txt1.replace('。', '')  # 删掉句号
mylist = list(txt1)
mycount = collections.Counter(mylist
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值