中文自动分词算法

中文自动分词算法

  当在搜索引擎中搜索“软件使用技巧”时,搜索引擎通常会帮你找出同时含有”软件“、”使用“、”技巧“的网页。一个好的新闻网站通常会有“相关文件推荐”的功能,这也要依赖于自动分词的算法。要想让计算机准确切分并不容易,例如某网站报道北京大学生,而相关文章里列出的全是北京大学的新闻。这多半是分词算法错误地把标题中的“北京大学”当成了一个词。

  难题一,交集词。例如“结婚的和尚未结婚的”。“和尚”和“尚未”都是词。“中外科学名著”里,“中外”、“外科”、“科学”。。。全是词。类似的问题很多,“提高产品质量”、“鞭炮声响彻夜空”、“努力学习法语规则”。这些极端的例子下,分词算法的优劣一试便知。

  一种改进方法是构造一个不单独成词表,比如“”民“、”尘“、”伟“,这些字通常不会单独划出来,都要跟旁边的字一块组成一个词。在分词过程中,一理发现这些字被孤单出来,都要重新考虑它与前面的字组词的可能性。

  另一种改进方法是根据数据统计,计算出每个词出现的概率,来给一个句子打分。将句子中每种分词结果都打一个分,选取一个最高分。此种问题下,一些高频词会产生问题,如“的”字,考虑“的确”这个词组,“的”字总是以高分单独列出。

  难题二,组合词。如“个人恩怨”、”这个人“中,虽然都有”个人“,都要拆分成2个词。

  我们可以构造一个二元模型,P(w1,w2)表示w1后恰好是w2的概率。再定义一个句子的划分方案得分:P(s, w1)*P(w1, w2)。。。

  更多资料参考《思考的乐趣》11篇《中文自动分词算法》

时间: 2024-11-06 21:48:23

中文自动分词算法的相关文章

在Hadoop上运行基于RMM中文分词算法的MapReduce程序

原文:http://xiaoxia.org/2011/12/18/map-reduce-program-of-rmm-word-count-on-hadoop/ 在Hadoop上运行基于RMM中文分词算法的MapReduce程序 23条回复 我知道这个文章标题很“学术”化,很俗,让人看起来是一篇很牛B或者很装逼的论文!其实不然,只是一份普通的实验报告,同时本文也不对RMM中文分词算法进行研究.这个实验报告是我做高性能计算课程的实验里提交的.所以,下面的内容是从我的实验报告里摘录出来的,当作是我学

Mmseg中文分词算法解析

@author linjiexing 开发中文搜索和中文词库语义自己主动识别的时候,我採用都是基于mmseg中文分词算法开发的Jcseg开源project.使用场景涉及搜索索引创建时的中文分词.新词发现的中文分词.语义词向量空间构建过程的中文分词和文章特征向量提取前的中文分词等,整体使用下来,感觉jcseg是一个非常优秀的开源中文分词工具,并且可配置和开源的情况下,能够满足非常多场景的中文分词逻辑.本文先把jcseg使用到最主要的mmseg算法解析一下. 1. 中文分词算法之争 在分析mmseg

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

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

NLP: 中文分词算法---交集歧义检测 (cross ambiguity detect)

在 文章 http://blog.csdn.net/watkinsong/article/details/37697451 里面提到的FM中文分词算法中, 最大的问题就是将用户的query切分的太碎, 切分太碎也会对检索结果造成一定的影响. 这里, 可以采用FMM算法进行切分, 首先切分出最大的正向匹配, 然后进行交集歧义检测, 如果检测到存在交集歧义, 那么对可能存在歧义的一段文字进行FM切分, 获取所有的可能切分结果: 然后对剩下的query子句重复进行FMM切分, 直到query == n

中文分词算法综述

英文文本词与词之间以空格分隔,方便计算机识别,但是中文以字为单位,句子所有字连起来才能表达一个完整的意思.如英文"I am writing a blog",英文词与词之间有空格进行隔开,而对应的中文"我在写博客",所有的词连在一起,计算机能很容易的识别"blog"是一个单词,而很难知道"博"."客"是一个词,因此对中文文本序列进行切分的过程称为"分词".中文分词算法是自然语言处理的基础,

机器学习基础——一文讲懂中文分词算法

在前文当中,我们介绍了搜索引擎的大致原理.有错过或者不熟悉的同学,可以点击下方的链接回顾一下前文的内容. ML基础--搜索引擎基本原理 在介绍爬虫部分的时候,我们知道,爬虫在爬取到网页的内容之后,会先进行一些处理.首先要做的就是过滤掉HTML当中的各种标签信息,只保留最原生的网页内容.之后,程序会对这些文本内容提取关键词. 今天我们就来讲讲关键词提取当中最重要的一个部分--中文分词. 在世界上众多的语言当中,中文算是比较特殊的一种.许多语言自带分词信息,比如英文,机器学习写作machine le

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

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

中文分词算法-百度面试题

题目: 给定一个字符串, 一个数组,判断这个字符串能否被分隔成字典里的一个个单词. 用动态规划算法 我面试时写的是下面的代码 public static boolean divied2(String s,String[] dict){ boolean result=false; if(s.length()==0) return true; for (int i = 0; i < dict.length; i++) { int index=s.indexOf(dict[i]); if (index

基于统计的自动分词算法

简介:利用字与字间.词与词间的同现频率作为分词的依据,不一定需要建立好的词典.需要大规模的训练文本用来训练模型参数.优缺点:不受应用领域的限制:但训练文本的选择将影响分词结果. 概率最大统计分词算法 一.主要原理 对于任意一个语句,首先按语句中词组的出现顺序列出所有在语料库中出现过的词组:将上述词组集中的每一个词作为一个顶点,加上开始与结束顶点,按构成语句的顺序组织成有向图:再为有向图中每两个直接相连的顶点间的路径赋上权值,如 A→B,则 AB 间的路径权值为 B 的费用(若 B 为结束顶点,则