bigram分词

N-gram:

P(w1w2w3...wn)=P(w1)P(w2|w1)P(w3|w2,w1)...P(wn|wn-1,wn-2,...,w1)

bigram的语言模型:P(w1w2w3...wn)=P(w1)P(w2|w1)P(w3|w2)...P(wn|wn-1)

P(wn|wn-1)=count(wn,wn-1)/count(wn-1)

N-gram的基本思想是将文本内容按字节流进行大小为N的滑动窗口操作,形成长度为N的字节片段序列,每个字节片段即为gram,对全部gram的出现频度进行统计,并按照设定的阈值进行过滤,形成keygram列表,即为该文本的特征向量空间,每一种gram则为特征向量维度。

中文文本处理大多采用bi-gram进行分解,因为双字词出现概率比较大,即以大小为2的滑动窗口进行操作,切成长度为2的字节片段;

bigram切分方法在处理20%左右的中文多字词时,往往产生语义和语序方面的偏差。而多字词常常是文本的核心特征,处理错误会导致较大的负面影响。

自动产生多字特征词:基于n-gram改进的文本特征提取算法,在进行bigram切分时,不仅统计gram的出现频度,而且还统计某个gram与其前邻gram的情况,并将其记录在gram关联矩阵中,对于连续出现频率大于事先设定阈值的,就将其合并为多字特征词,可以较好弥补n-gram算法在处理多字词方面的缺陷。

听说这是一种比较简单粗暴有效的方法

时间: 2025-01-13 17:14:22

bigram分词的相关文章

Leetcode-5083 Occurrences After Bigram(Bigram 分词)

1 #define _for(i,a,b) for(int i = (a);i < b;i ++) 2 3 class Solution 4 { 5 public: 6 vector<string> findOcurrences(string text, string first, string second) 7 { 8 vector<string> rnt; 9 vector<string> li; 10 string tmp; 11 int i = 0; 1

最大正向匹配分词MM

RT,NLP第一次实验,96人民日报语料分词+unigram和bigram词频统计. 一开始写了个RMM,用了各种序列排序,然后分词的算法用了简单的前缀暴力匹配,果然跑语料的时间根本无法估计.. 果断重写..又找了一个blog,发现MM算法 一开始是想得太复杂了,导致循环太多,后来修改成简单版本的即可正常时间运行. python代码: # -*- coding: cp936 -*- import sys import os #词库矩阵,相同长度词的被放同一个列表中 def matrix(max_

Solr 5.x集成中文分词word,mmseg4j

使用标准分词器,如图: 使用word分词器 下载word-1.3.jar,注意solr的版本和word分词的版本 将文件word-1.3.jar拷贝至文件夹C:\workspace\Tomcat7.0\webapps\solr\WEB-INF\lib\下 修改如下文件C:\workspace\solr_home\solr\mysolr\conf\schema.xml ????在schema节点下添加如下节点: <fieldType name="word_cn" class=&qu

中文分词算法 之 基于词典的全切分算法

在使用 基于词典 的分词方法的时候,如果我们解决了下面4个问题: 1.如何把一句话中所有的词找出来呢?只要词典中有就一定要找出来. 2.如何利用1中找出来的词组合成完整的句子?组合成的句子要和原句一样. 3.如何保证2中组合而成的句子包含了所有可能的词序? 4.如何从所有可能的词序中选择最完美的一种作为最终的分词结果? 那么我们的分词方法称之为:基于词典的全切分算法. 下面我们以一个实例来说明,比如句子:中华人民共和国. 假设词典中包含如下词: 中华人民共和国 中华人民 中华 华人 人民共和国

NLP: 中文分词算法--正向最大匹配 Forward Maximum Matching

最近接触NLP中文分词, 在lunr.js的基础上, 实现了中文的最大正向匹配分词. 某些情况下, 我们在服务器端进行中文文本分词可以使用完整的基于mmseg算法的分词模块, 例如nodejieba, node-segment, 盘古分词等等,  但是在客户端环境下, 我们不能使用这些复杂的分词算法进行分词, 这个时候可以根据已经生成的索引进行简单的客户端分词, 就是所说的FMM (Forward Maximum Matching, 正向最大匹配), 有时候也可以使用正向匹配. 在做FMM的时候

中文分词原理和实现

三大主流分词方法:基于词典的方法.基于规则的方法和基于统计的方法. 1.基于规则或词典的方法 定义:按照一定策略将待分析的汉字串与一个"大机器词典"中的词条进行匹配,若在词典中找到某个字符串,则匹配成功. 按照扫描方向的不同:正向匹配和逆向匹配 按照长度的不同:最大匹配和最小匹配 1.1正向最大匹配思想MM 从左向右取待切分汉语句的m个字符作为匹配字段,m为大机器词典中最长词条个数. 查找大机器词典并进行匹配: 若匹配成功,则将这个匹配字段作为一个词切分出来. 若匹配不成功,则将这个匹

CRF++中文分词使用指南

http://blog.csdn.net/marising/article/details/5769653 前段时间写了中文分词的一些记录里面提到了CRF的分词方法,近段时间又研究了一下,特把方法写下来,以备忘,另外,李沫南同学优化过CRF++,见:http://www.coreseek.cn/opensource/CRF/.我觉得CRF++还有更大的优化空间,以后有时间再搞. 1 下载和安装 CRF的概念,请google,我就不浪费资源啦.官方地址如下:http://crfpp.sourcef

基于CRF的中文分词

http://biancheng.dnbcw.info/java/341268.html CRF简介 Conditional Random Field:条件随机场,一种机器学习技术(模型) CRF由John Lafferty最早用于NLP技术领域,其在NLP技术领域中主要用于文本标注,并有多种应用场景,例如: 分词(标注字的词位信息,由字构词) 词性标注(标注分词的词性,例如:名词,动词,助词) 命名实体识别(识别人名,地名,机构名,商品名等具有一定内在规律的实体名词) 本文主要描述如何使用CR

中文分词入门之字标注法4

http://www.52nlp.cn/%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D%E5%85%A5%E9%97%A8%E4%B9%8B%E5%AD%97%E6%A0%87%E6%B3%A8%E6%B3%954 上一节主要介绍的是利用最大熵工具包来做字标注中文分词,这一节我们直奔主题,借用条件随机场工具“CRF++: Yet Another CRF toolkit”来完成字标注中文分词的全过程. 关于条件随机场(CRF)的背景知识,推荐参考阅读一些经典的文献:<条件