plan的现在分词是什么是分词和词汇

人无远虑,必有近忧
在前一篇中的倒排索引介绍中, 我们了解到要把一篇文档(或者在电商业务中一个商品相关信息)放入索引系统中, 要对该文档的关键词进行提取分析出来后建立相应的倒排列表. 现在问题来了, 我们怎么从一篇文档中抽出所有以前可能要索引的词. 比如一个显示器的标题是 "三星显示器S22D300NY 21.5寸 LED液晶显示器完美屏 替代S22C150N", 那么用户可能在系统中通过输入"三星显示器"或者"S22D300NY"或者"21.5寸"后, 都能正确返回这个显示器的信息. 这就是所谓的分词, 或者词条化技术.
基于分词在不同的语言中, 所要解决的难点问题是不同的. 拿我们知道的英语和汉语来说. 英语的分词看起来简单, 比如 "i love you! " , 我们完全可以根据空格抽出三个词: i, love, you. 但是也有一些复杂的情况要考虑, 如果 i , me ,my 其实他们表达的意思差不多, 用户希望输入 i 的时候, &相关的文档也可以查询出来. 还有一些单复数, 名词/形容词/副词 的形式转化, 而汉语分词的难道是断词, 因为我们的语言是没有空格的, 一句话所有的字全挤在一起, 如"工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作" , 如果让计算机分词的话, 通过怎么样的算法能抽取出满足我们需求的词项呢? 如果分析出一些敏感词(你懂的)肯定不是我们想要的. 所以针对不同的语言, &因为语言自身的特性, 导致它们的难点完全不同(有的文字还是从右往左写的). 我们也只重点关注英文和汉语的问题.
在英语中, 对词的不同形态进行统一, 叫做(stemmin), 实现这有很多算法, 被证实效率较高, 使用较广的是. &可以在lucene中找到相关的java实现代码:&org.apache.lucene.analysis.en.PorterStemmer.
汉语的分词其实也是比较复杂的, 也有很多不同的方法, google下"中文分词"会有很多介绍. lucene中也有相关的实现:&analyzers-smartcn. 这里我们以: 分词 来介绍下中文分词的思路. &可以分为三步: 准备词典; 抽取所有组成词语的组合; 找出最优(最好)的一组.&
既然中文语法是没有空格加以断词, 那么我们肯定事先把可能的所有词语都准备好.中通过Trie树结构保存所有的词语, 这样可以在分析句子时高速扫描出所有包含的词语.&
用夏变夷 3 nz
用天因地 3 l
用头巾包 3 l
用奴用 3 n
用字不当 3 l
用尽 110 v
用尽心机 3 l
用尽方法 3 l
用工 117 n
用工夫 5 n
用布 241 v
用当其用 3 l
每一个词语载入Trie树的逻辑如下:
def load(word):
for c in word:
if c not in p:
分析句子,生成所有的词组合
有了Trie树, 解析一个句子中所有的词组合是很容易的, 在jieba分词中用一个DAG(有向图)来表达这个结构. 我们举例说明下, 现在有一个这样的句子: "买水果然后来世博园". 通过扫描前面的Trie树, 可以得到如下词语组合:
买 / 水果 / 果然 / 然后 / 后来 / 来世 / 世博 / 世博园 / 博园
计算最优组合
接着上面的例子, 我们得到"买 / 水果 / 果然 / 然后 / 后来 / 来世 / 世博 / 世博园 / 博园"这些词, 但是显然这只是简单的把所有可能的词全部罗列出来, 但是根据这个句子的语境, 其实我们更想得到这样的组合:&
买 / 水果 / 然后 / 来 / 世博园
在jieba分词, 使用的原理是: 通过每个词的出现概率, 来计算基于这个句子的所有切分组合中总概率最大的一个组合, 这是典型的动态规划计算模型. 用个图来说明下这个模型:
我们通过动态规划算法计算一条最大概率的路径即是最优组合:
def calc(sentence,DAG,idx,route):
N = len(sentence)
route[N] = (0.0,'')
for idx in xrange(N-1,-1,-1):
candidates = [ ( FREQ.get(sentence[idx:x+1],min_freq) + route[x+1][0],x ) for x in DAG[idx] ]
route[idx] = max(candidates)
这是jieba分词中动态规划的逻辑代码, 也算很简洁了(python写的代码果然很牛). 到止我们已经完成了分析的基本功能.
------------------------EOF
阅读(...) 评论()自然语言处理为什么要分词?_词汇网
自然语言处理为什么要分词?
责任编辑:词汇网 发表时间: 2:42:44
比较基础的问题,但是希望能够得到精炼的回答。【以下解答】精炼回答:硬件、资源、成本、盈利
上一集:没有了 下一集:
相关文章:
最新添加资讯
24小时热门资讯
附近好友搜索1、 StopAnalyzer
StopAnalyzer能过滤词汇中的特定字符串和词汇,并且完成大写转小写的功能。
2、 StandardAnalyzer
StandardAnalyzer根据空格和符号来完成分词,还可以完成数字、字母、E-mail地址、IP地址以及中文字符的分析处理,还可以支持过滤词表,用来代替StopAnalyzer能够实现的过滤功能。
3、 SimpleAnalyzer
SimpleAnalyzer具备基本西文字符词汇分析的分词器,处理词汇单元时,以非字母字符作为分割符号。分词器不能做词汇的过滤,之进行词汇的分析和分割。输出地词汇单元完成小写字符转换,去掉标点符号等分割符。
在全文检索系统开发中,通常用来支持西文符号的处理,不支持中文。由于不完成单词过滤功能,所以不需要过滤词库支持。词汇分割策略上简单,使用非英文字符作为分割符,不需要分词词库的支持。
4、 WhitespaceAnalyzer
WhitespaceAnalyzer使用空格作为间隔符的词汇分割分词器。处理词汇单元的时候,以空格字符作为分割符号。分词器不做词汇过滤,也不进行小写字符转换。
实际中可以用来支持特定环境下的西文符号的处理。由于不完成单词过滤和小写字符转换功能,也不需要过滤词库支持。词汇分割策略上简单使用非英文字符作为分割符,不需要分词词库支持。
5、 KeywordAnalyzer
KeywordAnalyzer把整个输入作为一个单独词汇单元,方便特殊类型的文本进行索引和检索。针对邮政编码,地址等文本信息使用关键词分词器进行索引项建立非常方便。
6、 CJKAnalyzer
CJKAnalyzer内部调用CJKTokenizer分词器,对中文进行分词,同时使用StopFilter过滤器完成过滤功能,可以实现中文的多元切分和停用词过滤。在Lucene3.0版本中已经弃用。
7、 ChineseAnalyzer
ChineseAnalyzer功能与StandardAnalyzer分析器在处理中文是基本一致,都是切分成单个的双字节中文字符。在Lucene3.0版本中已经弃用。
8、 PerFieldAnalyzerWrapper
PerFieldAnalyzerWrapper功能主要用在针对不同的Field采用不同的Analyzer的场合。比如对于文件名,需要使用KeywordAnalyzer,而对于文件内容只使用StandardAnalyzer就可以了。通过addAnalyzer()可以添加分类器。
9、 IKAnalyzer
实现了以词典为基础的正反向全切分,以及正反向最大匹配切分两种方法。IKAnalyzer是第三方实现的分词器,继承自Lucene的Analyzer类,针对中文文本进行处理。
10、JE-Analysis
JE-Analysis是Lucene的中文分词组件,需要下载。
11、 ICTCLAS4J
ictclas4j中文分词系统是sinboy在中科院张华平和刘群老师的研制的FreeICTCLAS的基础上完成的一个java开源分词项目,简化了原分词程序的复杂度,旨在为广大的中文分词爱好者一个更好的学习机会。
12、 Imdict-Chinese-Analyzer
imdict-chinese-analyzer 是 imdict智能词典 的智能中文分词模块,算法基于隐马尔科夫模型(Hidden Markov Model, HMM),是中国科学院计算技术研究所的ictclas中文分词程序的重新实现(基于Java),可以直接为lucene搜索引擎提供简体中文分词支持。
13、 Paoding Analysis
Paoding Analysis中文分词具有极 高效率 和 高扩展性。引入隐喻,采用完全的面向对象设计,构思先进。其效率比较高,在PIII 1G内存个人机器上,1秒可准确分词100万汉字。采用基于不限制个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。能够对未知的词汇进行合理解析。
14、 MMSeg4J
mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法(http://technology.chtsai.org/mmseg/ )实现的中文分词器,并实现 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。 MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex 加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%。mmseg4j 已经实现了这两种分词算法。
博客地址:
阅读(...) 评论()什么单词分词形式双写有什么规律?
刷反粉专用298
1.闭音节:闭音节是以一个元音字母加一个或几个辅音字母结尾的音节.例如:not,thank,ten,am,six等.重读闭音节就是所谓的元音字母不是发它本身的字母音. 因此,mix是一个重读闭音节单词. 2.以重读闭音节结尾,末尾只有一个辅音字母的动词,要双写这一辅音字母,再加-ing/ed.例如: bag[b&g],其现在分词,过去式,过去分词为: baging - bagged - bagged mix[miks],看看它的音标,在元音字母"i"的后面还有"ks"两个辅音节,而bag[b&g],在其元音字母"a"后面只有一个辅音节"g". 所以,mix的现在分词,过去式,过去分词为: mixing - mixed - mixed 同类的单词如: box ( boxing - boxed - boxed )
为您推荐:
其他类似问题
以重读闭音节结尾且结尾只有一个辅音字母的,双写这个辅音字母 ,也就是最后一个字母和倒数第三个字母中间夹一个元音
动词过去式,过去分词不规则变化 AB型 can could shall should will would may might AAA型 cost cost cost cut cut cut hit hit hit hurt hurt hurt let let let must must must ...
1.以重读闭音节结尾且结尾只有一个辅音字母的,双写这个辅音字母 ,也就是最后一个字母和倒数第三个字母中间夹一个元音 如 put putting
双音节重读音节在第二音节有一个元音一个辅音字母的,双写这个辅音字母 ,也就是最后一个字母如 refer
referring...
以重读闭音节结尾且结尾只有一个辅音字母的,双写这个辅音字母
扫描下载二维码}

我要回帖

更多关于 什么是分词 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信