构建语言模型(一):文本语料处理
2016-12-13 10:55
1081 查看
关于语言模型的训练,网上搜索到的基本是理论为主,尤其训练文本的获取和处理, 往往一笔带过。通过项目中的实践经验,整理成文,可能存在疏漏乃至错误。
1. 语言模型概述与流程
1.1 LM概述
语言模型(Language Model, LM),是针对某种语言建立的概率模型,目的是建立一个能够描述给定词序列在语言中的出现的概率的分布。Ngram模型是最常用的建模技术,采用了马尔科夫假设(马尔科夫假设:一个词的出现仅仅依赖与它前面出现的有限的一个或者几个词。),可表示为p(S)=p(w1,w2,w3,w4,w5,…,wn)=p(w1)p(w2|w1)p(w3|w1,w2)…p(wn|w1,w2,…,wn-1)
语言模型技术广泛应用于语音识别、OCR、机器翻译、输入法等产品上。语言模型建模过程中,包括词典、语料、模型选择等,对产品的性能有至关重要的影响。
1.2 构建整体流程
构建语言模型的流程如下:利用爬虫从互联网抓取大量网页文本语料
网页文本处理成所需格式
文本训练生成LM
2. 文本语料抓取与处理
2.1 文本抓取
文本抓取过程见之前的文章 使用Scrapy递归爬取网页 。2.2 文本处理
文本处理的目的是,从原始html形式的文本中提取有效数据,并处理成构造语言模型(Language Model)所需要的格式。步骤如下:
预处理。[包括全半角字符转化,去掉注释、CSS样式、标签(单/多行)、&转义字符、url、大段英文数字、单个非中文词、空格等等]
分词。[可自己开发分词工具,或采用第三方工具,如结巴分词]
纯数字转成中文读音
将中文表示的数字进行拆分,如:一百二十三元 –> 一百 二十 三 元
去掉无用字符,保留中英文字符及部分标点,并按标点分句[可根据需要去掉所有标点]
对于大数据文本的处理,可通过拆分合并,每个文件保持一定的大小,通过多进程并行处理
相关文章推荐
- python+NLTK 自然语言学习处理四:获取文本语料和词汇资源
- 如何构建一个比较好的自定义异常处理模型?
- 使用perl脚本语言处理文本文件
- 【语言处理与Python】3.6规范化文本
- 文本语言模型的参数估计-最大似然估计、MAP及贝叶斯估计——转自北大杨柳同学
- ngram模型中文语料实验step by step(3)-ngram模型的光滑处理
- 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用
- Python语言和标准库(第七章:文本处理)
- 【语言处理与Python】3.1从网络和硬盘访问文本
- 【语言处理与Python】2.1获取文本语料库
- 5_Shell语言―――文本处理命令之wc、tr、cut、join、sort和uniq
- 文本处理语言awk在线实例极速入门 (全三部分)
- 隐含马尔可夫模型在语言处理中的应用~~“声学模型”
- ngram模型中文语料实验step by step(3)-ngram模型的光滑处理
- 【语言处理与Python】3.2字符串:最底层的文本处理
- 高效构建 CIM 事件处理模型
- Moses运行过程记录---Moses语言模型和翻译模型构建(三)
- 流行的脚本语言Python 中的文本处理
- 文本挖掘和自然语言处理
- Perl语言学习笔记 9 正则表达式处理文本