一、.基本文本处理技能

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

算法流程:
从前往后取词,每次减一个字,直至词典命中或剩下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

还没整完 今晚补上