(五)N-gram语言模型的数据处理
一、步骤
数据集说明:一段英文
(1)分词:把原始的英文分词,只保留词之间的顺序不变,多个句子也是看出整体进行分词。
(2)统计词频:按照n元进行词频统计,比如“I love NLP I enjoy it”当n=2时候,可以划分为(【I love】,【love NLP】,【NLP I】…),分别统计【I love】,【love NLP】等出现的次数。(在朴素贝叶斯中只是统计一个词,这里是统计n个前后关联的词)
(3)对统计好的词进行大到小的排序,取m和词作为特征向量
其他步骤同文本分类步骤
二、代码
# -*- coding:utf-8 -*-
import urllib2
import re
import string
import operatordef cleanText(input):input = re.sub('\n+', " ", input).lower() # 匹配换行,用空格替换换行符input = re.sub('\[[0-9]*\]', "", input) # 剔除类似[1]这样的引用标记input = re.sub(' +', " ", input) # 把连续多个空格替换成一个空格input = bytes(input) # .encode('utf-8') # 把内容转换成utf-8格式以消除转义字符# input = input.decode("ascii", "ignore")return inputdef cleanInput(input):input = cleanText(input)cleanInput = []input = input.split(' ') # 以空格为分隔符,返回列表for item in input:item = item.strip(string.punctuation) # string.punctuation获取所有标点符号if len(item) > 1 or (item.lower() == 'a' or item.lower() == 'i'):cleanInput.append(item)return cleanInputdef getNgrams(input, n):#把一段英文处理成一个个词语,保留了分词后每个词在原短文中的顺序input = cleanInput(input)output = {} # 构造字典for i in range(len(input) - n + 1):ngramTemp = " ".join(input[i:i + n])if ngramTemp not in output: # 词频统计output[ngramTemp] = 0output[ngramTemp] += 1return output# 获取数据,content为一段英文
content = urllib2.urlopen(urllib2.Request("http://pythonscraping.com/files/inaugurationSpeech.txt")).read()
#2-grams
ngrams = getNgrams(content, 2)
sortedNGrams = sorted(ngrams.items(), key=operator.itemgetter(1), reverse=True) # =True 降序排列
print(sortedNGrams)
(五)N-gram语言模型的数据处理相关推荐
- Html5 Egret游戏开发 成语大挑战(五)界面切换和数据处理
Html5 Egret游戏开发 成语大挑战(五)界面切换和数据处理 经过前面的制作,使用Egret的Wing很快完成了开始界面和选关卡界面,下面通常来说就是游戏界面,但此时界面切换和关卡数据还没有准备 ...
- 《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第五章 n-gram语言模型
视频列表: 31 n-gram语言模型(一) 32 n-gram语言模型(二) 33 n-gram语言模型(三) 34 n-gram语言模型(四) 35 n-gram语言模型(五) 36 n-gram ...
- 语音合成(speech synthesis)方向五:多语言模型multi-lingual and code switch speech synthesis
本文稍长,希望能耐住性子看下去 声明:工作以来主要从事TTS工作,工程算法都有涉及,平时看些文章做些笔记.文章中难免存在错误的地方,还望大家海涵.平时搜集一些资料,方便查阅学习:TTS 论文列表 ht ...
- NLP复习资料(2)-三~五章:形式语言、语料库、语言模型
NLP复习资料-三~五章 1.第三章:形式语言 2.第四章:语料库 3.第五章:语言模型 国科大,宗老师<自然语言处理>课程复习笔记,个人整理,仅供参考. 1.第三章:形式语言 1.语言描 ...
- excel分类_Excel数据处理学习(七)使用分类汇总
端午节快乐 今天端午节呀,所以更新的有点晚-这个系列的日更只会迟到,但不会缺席! 来看看分类汇总和定位工具的应用以及创建组工具吧- 01 先来看看数据源,会发现使用的数据源就是我们第一节讲的数据透视表 ...
- NLP《语言模型(一)-- 基于统计的N-Gram语言模型》
前言,上一篇我们学习了一些基于醉打匹配规则的分词方法,这一篇我们介绍基于概率统计的方法之一,概率语言模型LM. 一:什么是语言模型? 每一句话,都是由若干个词语组成,这些词语的排列组合由若干种,但是只 ...
- [转]开源大数据处理工具汇总
查询引擎 一.Phoenix 贡献者::Salesforce 简介:这是一个Java中间层,可以让开发者在Apache HBase上执行SQL查询.Phoenix完全使用Java编写,代码位于GitH ...
- Python大数据处理,应对海量数据挑战
Python大数据处理,应对海量数据挑战 Python的特点及在大数据处理中的优势 1 Python语言的特点 2 Python在大数据处理中所具备的优势 二.Python常用的大数据处理工具介绍 1 ...
- Pytorch项目实战聊天机器人(02.项目的准备阶段)
Pytorch项目实战聊天机器人(02.项目的准备阶段) 02.项目的准备阶段 二.2-2 NLP涉及知识 三.2-3 NLTK库 四 ,2-4 语料和词性标注 五 ,2-5 分词 六 , 2-6 T ...
最新文章
- Java学习笔记10
- 关于Spring 国际化 No message found under code 的解决方案
- v系列服务器cpu,服务器cpu v什么意思
- SAP OData Total = 80是这样计算出来的
- 使用phpstorm+wamp实现php代码实时调试审计
- python取数字第一位数_python基础:8.切片和缩进
- 8个最高效的Python爬虫框架,你用过几个?
- Python是什么?Python能干什么?一篇文章让你对Python了如指掌!!
- java安装_JAVA 安装
- cocostudio 在VS模拟器中加载资源显示混乱问题
- 当磁盘工具无法修复磁盘时,你可以这样做!
- listary什么意思_listary pro有什么功能
- 七绝高手都有哪些?中国历史上10大七言绝句诗人排行榜
- krpano php,krpano调试模式的开启
- 增量式(相对式)编码器与绝对式编码器工作原理
- python数据分析:新闻文本聚类
- 【机器学习原理实战01】Ridge回归模型
- OFDMA trigger frame
- 小企业如何利用区块链和大数据获利?
- adb自动化控制手机工具类