您现在的位置: 爱51代码网 >> 范文 >> 文章正文
NLP中文信息处理---正向最大匹配法分词

NLP中文信息处理---正向最大匹配法分词
弄了好几天正向最大匹配法分词,终于弄完了吧。Python写的。Python确实是一门好语言,写起来很简单、顺手。


一、关于正向最大匹配法分词

中文分词(Chinese Word Segmentation)指的是将一个汉字序列切分成一个一个单独的词。中文分词是文本挖掘的基础,对于输入的一段中文,成功的进行中文分词,可以达到电脑自动识别语句含义的效果。

正向最大匹配法:
例子: 将句子 ’ 今天来了许多新同事 ’ 分词。  设最大词长为5

今天来了许
今天来了
今天来
今天  ====》 得到一个词 – 今天
来了许多新
来了许多
来了许
来了
来   ====》 得到一个词 – 来
了许多新同
了许多新
了许多
了许
了   ====》 得到一个词 – 了
许多新同事
许多新同
许多新
许多 ====》得到一个词 – 许多
新同事
新同
新   ====》得到一个词 – 新
同事 ====》得到一个词 – 同事

最后正向最大匹配的结果是:/今天/来/了/许多/新/同事/
二、正向最大匹配分词算法
三、语料库的处理与算法的输入
语料库的处理流程:
输入:人民日报语料库199801.txt

输出:dict.txt词表文件
分词算法:论文网 

输入:将dict.txt处理后得到的list集,以及最大词长;待分词的句子

输出:分词后的句子
四、Python实现

1. 语料库的初步处理 ( MaxBuildDict.py )
[python] view plaincopyprint?
01.# -*- coding: cp936 -*-  
02.#最大匹配法进行分词----创建词表文件.  
03.#author 徐能  
04.#date 2013/3/23  
05.import string 
06.import re 
07. 
08.#输入:语料库199801.txt文件; 输出:换行分割后的词表文件dict.txt(已经去重复, 去日期)  
09.def create_dict(filename): 
10.    print("读取文件......") 
11.    src_data = open(filename,'r').read() 
12.    sp_data = src_data.split()#分割  
13. 
14.    print("原始词数为:",len(sp_data)) 
15.    set_data = set(sp_data) #去重复  
16.    data = list(set_data) #set转换成list, 否则不能索引  
17.    print("去除重复后总词数为:",len(data)) 
18. 
19.    print("正在建立词表文件......") 
20.    tmp = [] 
21.    for i in range(0,len(data)): 
22.        if re.compile(r'\d+\-\S+').match(data[i]):  #去除类似这样的词'19980101-01-001-002/m'  
23.            continue 
24.        else: 
25.            p_ok_data = re.compile(r'\/\w+').sub('\n',data[i]) #将类似的词'埃特纳/ns'替换为'埃特纳'  
26.            if re.compile(r'(\[\S+)|(\]\S+)').match(p_ok_data):    #找到以'['或']'开头的词  
27.                ok_data = re.compile(r'(\]\w+\[)|(\])|(\[)').sub('',p_ok_data) #去除']nt[澳门',']澳门','[澳门'三类词的头部无用部分(先匹配长的部分)  
28.                tmp.append(ok_data) 
29.                continue 
30.&n

[1] [2] [3] [4] [5] [6] 下一页

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    sharepoint 2010 获取用户信息Us
    设计包含max函数的队列
    随机从数组中取出指定的不重复的
    mysql主从同步延迟方案解决的学习
    青岛科学六年级下册教材分析
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    保险受益人制度相关问题的探讨
    初中生地理读图能力培养的研究
    搞笑生日祝福
    中国工作流厂商形成战略联盟
    TIME_WAIT状态下对接收到的数
    The layout of PID & PORT i
    hadoop核心逻辑shuffle代码分
    The layout of PID & PORT i
    The layout of PID & PORT i
    The layout of PID & PORT i
    MapReduce错误任务失败处理 
    Oracle恢复内部原理(介质恢
    在 Oracle 中如何确定远程 s
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |