免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: crazyhadoop
打印 上一主题 下一主题

互联网文本处理挑战巨大 中文分词系统设计如何面对? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-05-29 08:49 |只看该作者
回复 1# crazyhadoop


    这个的基础应该是hadoop 处理

论坛徽章:
27
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-09-18 15:24:09CU大牛徽章
日期:2013-09-18 15:24:20CU大牛徽章
日期:2013-09-18 15:24:25CU大牛徽章
日期:2013-09-18 15:24:31CU大牛徽章
日期:2013-09-18 15:24:36CU大牛徽章
日期:2013-09-18 15:24:41CU大牛徽章
日期:2013-09-18 15:24:48CU大牛徽章
日期:2013-09-18 15:24:52处女座
日期:2013-09-27 17:45:43
12 [报告]
发表于 2012-05-29 10:04 |只看该作者
我在做我公司的站内搜索时,使用lucene搜索引擎,其中分词法我找了很多种类型的分词工具,例如paoding,ictclas4j,imdict-chinese,mmseg4j,IKAnalyzer。
比较下来我发现IKAnalyzer比较适合我的需求,
1)它有通用词库,对于一些常用词基本上可以分析出来。
2)它同时也有扩展库,我可以自己定义词库,因为我公司的网站是一个专业型网站,专业词汇比较多。
3)它不像其它基于词库的的分词器就是简单地根据词库进行分词,他有一个比较简单的分词程序能够按照自然语言进行分词。
ictclas4j据说是中科院的分词器java版,分词能力很强,但是它太复杂了,不太适合我。
我需要把分词器改造为适合我的,我修改了IKAnalyzer,让它从数据库里读取词库,这样我可以动态增加词库。
我设想中的分词器,应该还有一项功能:学习能力,就是根据用户搜索的词的频率自动把搜索频率比较高的词加入到词库中。类似于google输入法或者qq输入法,能够根据用户输入的词的频率,自动加入到常用词里,自动联想。

论坛徽章:
1
天蝎座
日期:2013-12-06 18:23:58
13 [报告]
发表于 2012-05-29 10:05 |只看该作者
回复 10# dooros


    这个做敏感词用的到哦

论坛徽章:
1
天蝎座
日期:2013-12-06 18:23:58
14 [报告]
发表于 2012-05-29 10:06 |只看该作者
回复 12# yifangyou


    对的,理想的情况就是具备学习能力。这样这个词库才有生命力

论坛徽章:
0
15 [报告]
发表于 2012-05-29 14:49 |只看该作者
好的分词方法要有未登录词的识别功能,就是能将词典里未出现的词语识别出来。
还有就是专门的新词发现。根据词频统计和规则过滤等。

回复 9# crazyhadoop

论坛徽章:
0
16 [报告]
发表于 2012-05-29 14:55 |只看该作者
前面的帖子中讲到未登录词的问题。下面将讲述一种对未登录词的简单处理策略。

登录字串的处理
首先,考虑未登陆字串的定义。未登陆字串是指在训练语料中没有作为词语出现的字串。这包括两种情形:
a.        在训练集中作为字串出现过但没有作为词语出现过
b.        在训练集中没有出现过的字串。
对于这两种未登陆字串,本文做统一处理。
对于未登陆字串,如果将其WR设为0,则会使得整个路径的切分概率为0,这样会导致无法识别未登录词,因此不可取。因此,需要给每个未登录字串其设定一个略大于0的概率。
对于一个未登陆字串,我们可以根据其长度为其估算一个概率。有两种做法,一种方法是简单根据长度来设定概率,我们通过实践发现,如下设定是一种合适的选择:
      WR(US)=0.1^(1.1*len-0.1)
其中len是未登陆字串US的长度。值得注意的是,实践表明,当 大于3时,通常取WR(US)的值为0。也就是,未登陆词的长度不大于3,这样的识别效果最好。也就是说,长度大于3时,这种方法效果并不好。而且,由于多数未登陆词是人名和地名等,这些词的长度多为2和3。
另一种方法,根据统计来估计不同长度的未登陆字串的成词概率WR。即将语料分割为训练集和调整集两部分,将那些只在调整集中出现而未在训练集中出现的词语,均视为未登陆词。为了估计不同长度的未登陆字串的成词概率,可以统计在调整集中某长度的未登陆词的数量,除以该长度的未登陆字串的总数,所得的值就是该长度的未登陆字串的成词概率。
本文所述的系统采用了第一种方法进行平滑估计。

论坛徽章:
5
亥猪
日期:2013-10-15 13:41:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34申猴
日期:2013-10-28 10:55:45辰龙
日期:2013-10-31 13:29:29丑牛
日期:2014-02-14 11:25:54
17 [报告]
发表于 2012-05-29 14:56 |只看该作者
回复 8# huihui_2012


    这样优化过的词频的计算方式分词和用传统二元分词相比有什么优势和劣势?

论坛徽章:
0
18 [报告]
发表于 2012-05-29 15:02 |只看该作者
这样的方式下有两个好处:便于加入词典(后面仍将讲述),节省存储空间(前面已经提到)

回复 17# lkk_super


   

论坛徽章:
0
19 [报告]
发表于 2012-05-29 15:04 |只看该作者
添加外部词典
我们注意到WR值的计算依赖于切分语料,但是语料的标注耗时耗力,规模是受限制。现实中的新词不断涌现,因此我们需要将外部词典引入到分词系统中。
如果词典中的词语在训练集中作为词语出现,我们直接采用WR的定义公式进行计算。
如果词典中的词语没有在训练集中作为词语出现(符合上面的未登录字串的定义),该怎么计算它的WR值呢?显然,其成词概率高于一般的未登录字串,计算方法如下:
WR(DW)=1/(1+count(DW))
其中DW是词典里出现的词语, count(DW)是该词语在训练集中作为字串出现的次数。


论坛徽章:
0
20 [报告]
发表于 2012-05-29 16:37 |只看该作者
以前对这个挺感兴趣的,毕设想做短文本聚类,boss死活不让,于是就没做这个了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP