NLP 理论实践 Task2

11 篇文章 0 订阅

一、.基本文本处理技能

正向最大匹配法
分词目标:
在词典中进行扫描,尽可能地选择与词典中最长单词匹配的词作为目标分词,然后进行下一次匹配。

算法流程:
从前往后取词,每次减一个字,直至词典命中或剩下1个单字。
假设词典中最长的单词为 5 个,那么最大匹配的起始子串字数也为 5 个

(1)从左往右读入子串,扫描字典,测试读入的子串是否在字典中

(2)如果存在,则从输入中删除掉该子串,重新按照规则取子串,重复(1)

(3)如果不存在于字典中,则从右向左减少子串长度,重复(1)

逆向最大匹配法
分词目标:
在词典中进行扫描,尽可能地选择与词典中最长单词匹配的词作为目标分词,然后进行下一次匹配。 在实践中,逆向最大匹配算法性能优于正向最大匹配算法。

算法流程:
从后往前取词,每次减一个字,直至词典命中或剩下1个单字。
假设词典中最长的单词为 5 个,那么最大匹配的起始子串字数也为 5 个

(1)从右往左读入子串,扫描字典,测试读入的子串是否在字典中

(2)如果存在,则从输入中删除掉该子串,重新按照规则取子串,重复(1)

(3)如果不存在于字典中,则从左向右减少子串长度,重复(1)

双向最大匹配法
分词目标:
将正向最大匹配算法和逆向最大匹配算法进行比较,从而确定正确的分词方法。

算法流程:
正向最大与逆向最大两种算法都进行一遍分词,根据词的颗粒度越大越好且单字和非字典词越少越好,进行分词。

(1) 比较正向最大匹配和逆向最大匹配结果

(2) 如果分词数量结果不同,那么取分词数量较少的那个

(3) 如果分词数量结果相同

分词结果相同,可以返回任何一个
分词结果不同,返回单字数比较少的那个

1.2.1 字频

import numpy as np
from collections import Counter
word="大连海事大学一百一十周年快乐"
result=Counter(word)
print(result)

1.2.2 词频

from collections import Counter
import jieba
word="大连海事大学一百一十周年快乐"
seg_list = list(jieba.cut(word))
result = Counter(seg_list )
print(result)

2. unigram、bigram、trigram

还没整完 今晚补上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值