一、步骤

数据集说明:一段英文
(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语言模型的数据处理相关推荐

  1. Html5 Egret游戏开发 成语大挑战(五)界面切换和数据处理

    Html5 Egret游戏开发 成语大挑战(五)界面切换和数据处理 经过前面的制作,使用Egret的Wing很快完成了开始界面和选关卡界面,下面通常来说就是游戏界面,但此时界面切换和关卡数据还没有准备 ...

  2. 《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第五章 n-gram语言模型

    视频列表: 31 n-gram语言模型(一) 32 n-gram语言模型(二) 33 n-gram语言模型(三) 34 n-gram语言模型(四) 35 n-gram语言模型(五) 36 n-gram ...

  3. 语音合成(speech synthesis)方向五:多语言模型multi-lingual and code switch speech synthesis

    本文稍长,希望能耐住性子看下去 声明:工作以来主要从事TTS工作,工程算法都有涉及,平时看些文章做些笔记.文章中难免存在错误的地方,还望大家海涵.平时搜集一些资料,方便查阅学习:TTS 论文列表 ht ...

  4. NLP复习资料(2)-三~五章:形式语言、语料库、语言模型

    NLP复习资料-三~五章 1.第三章:形式语言 2.第四章:语料库 3.第五章:语言模型 国科大,宗老师<自然语言处理>课程复习笔记,个人整理,仅供参考. 1.第三章:形式语言 1.语言描 ...

  5. excel分类_Excel数据处理学习(七)使用分类汇总

    端午节快乐 今天端午节呀,所以更新的有点晚-这个系列的日更只会迟到,但不会缺席! 来看看分类汇总和定位工具的应用以及创建组工具吧- 01 先来看看数据源,会发现使用的数据源就是我们第一节讲的数据透视表 ...

  6. NLP《语言模型(一)-- 基于统计的N-Gram语言模型》

    前言,上一篇我们学习了一些基于醉打匹配规则的分词方法,这一篇我们介绍基于概率统计的方法之一,概率语言模型LM. 一:什么是语言模型? 每一句话,都是由若干个词语组成,这些词语的排列组合由若干种,但是只 ...

  7. [转]开源大数据处理工具汇总

    查询引擎 一.Phoenix 贡献者::Salesforce 简介:这是一个Java中间层,可以让开发者在Apache HBase上执行SQL查询.Phoenix完全使用Java编写,代码位于GitH ...

  8. Python大数据处理,应对海量数据挑战

    Python大数据处理,应对海量数据挑战 Python的特点及在大数据处理中的优势 1 Python语言的特点 2 Python在大数据处理中所具备的优势 二.Python常用的大数据处理工具介绍 1 ...

  9. Pytorch项目实战聊天机器人(02.项目的准备阶段)

    Pytorch项目实战聊天机器人(02.项目的准备阶段) 02.项目的准备阶段 二.2-2 NLP涉及知识 三.2-3 NLTK库 四 ,2-4 语料和词性标注 五 ,2-5 分词 六 , 2-6 T ...

最新文章

  1. Java学习笔记10
  2. 关于Spring 国际化 No message found under code 的解决方案
  3. v系列服务器cpu,服务器cpu v什么意思
  4. SAP OData Total = 80是这样计算出来的
  5. 使用phpstorm+wamp实现php代码实时调试审计
  6. python取数字第一位数_python基础:8.切片和缩进
  7. 8个最高效的Python爬虫框架,你用过几个?
  8. Python是什么?Python能干什么?一篇文章让你对Python了如指掌!!
  9. java安装_JAVA 安装
  10. cocostudio 在VS模拟器中加载资源显示混乱问题
  11. 当磁盘工具无法修复磁盘时,你可以这样做!
  12. listary什么意思_listary pro有什么功能
  13. 七绝高手都有哪些?中国历史上10大七言绝句诗人排行榜
  14. krpano php,krpano调试模式的开启
  15. 增量式(相对式)编码器与绝对式编码器工作原理
  16. python数据分析:新闻文本聚类
  17. 【机器学习原理实战01】Ridge回归模型
  18. OFDMA trigger frame
  19. 小企业如何利用区块链和大数据获利?
  20. adb自动化控制手机工具类

热门文章

  1. 力扣第八题 myatoi
  2. 亿美软通参与编制,《5G消息业务显示规范》等团标正式发布
  3. gamemaker学习笔记:读取JSON
  4. 哈哈!研究生入学也要军训!更惨的是一周一次!
  5. 视频内容转文字怎么转,让你学会3个简单方法
  6. 【2023届秋招面试篇】经纬恒润自动驾驶感知算法岗位一面
  7. Python爬取某宝宝商品评论等数据
  8. Qt进行矩形绘图填充颜色
  9. [搞定一面] 快速搞定一面~技术面
  10. android华为账号登陆,华为手机怎么找回华为账号密码?华为账号密码两种找回方法...