包含词问题

bit6211 2009-11-10
大家好,
假如有一句话:“张三丰是太极拳创始人。”
当我搜索“张三”时,这句话会被找出来,因为这句话里含有“张三丰”这个词。有没有区分这种情况呢,当搜索“张三”时,“张三丰”不会被找出来。
谢谢。
HuangSui.cn 2009-11-17
分词索引的时候是“张三丰”就不会被检索出来了
bit6211 2009-11-17
HuangSui.cn 写道
分词索引的时候是“张三丰”就不会被检索出来了


你好,谢谢你的答复,但我不是很理解你的意思,你能描述详细一点吗?谢谢。
HuangSui.cn 2009-11-18
你用你建索引的分词器测试下“张三丰是太极拳创始人”的切分结果,如果切分结果只包含“张三丰”(完整的),不是“张三”和“丰”或者“张”“三”“丰”,那么搜索“张三”就不会搜索到了。
bit6211 2009-11-18
HuangSui.cn 写道
你用你建索引的分词器测试下“张三丰是太极拳创始人”的切分结果,如果切分结果只包含“张三丰”(完整的),不是“张三”和“丰”或者“张”“三”“丰”,那么搜索“张三”就不会搜索到了。


谢谢你的答复。

你说得没错。

但我用的是solr内建的切词器,也就是说,它对汉语是按字切分的。“张三丰”会被切成“张”“三”“丰”,这也是为了查全考虑。

嗯,如果按你所说的办法,对于每个包含词都要考虑的话,工程量会不会太大。

我之前想过用字母代替,比如“张三”用“A”代替,“张三丰”用“B”代替,这样在切词后,先转成字母再查索引,就可以了。
可是这种情况下,建索引就成问题了。呵呵,进入死循环了。
HuangSui.cn 2009-11-25
如果你能识别“张三”和“张三丰”就没必要用A、B代替了,如果你的意思是按词进行索引和搜索,那么你就要使用基于词表的分词器

不过即便是词表的分词器也不能保证有很好的效果,“张三”搜不到“张三丰”那么“淘宝”要不要搜到“淘宝网”呢?如果再往细里说会涉及更多,比如未登录词,命名实体识别。
bit6211 2009-11-25
HuangSui.cn 写道
如果你能识别“张三”和“张三丰”就没必要用A、B代替了,如果你的意思是按词进行索引和搜索,那么你就要使用基于词表的分词器

不过即便是词表的分词器也不能保证有很好的效果,“张三”搜不到“张三丰”那么“淘宝”要不要搜到“淘宝网”呢?如果再往细里说会涉及更多,比如未登录词,命名实体识别。



是的,往细里想确实越来越麻烦,初步是加入人工干涉的方法来纠正程序无法解决的错误,比如类似搜“淘宝”搜不到“淘宝网”,出现未登录词等情况。而命名实体识别目前没有考虑到。

系统是按字建立索引的,目的是为了搜的时候能搜全,所以才会出现包含词问题。谢谢你一直来的帮助。
HuangSui.cn 2009-11-26
如果用人工干涉的方法的话,我使用的方法非常方便(http://buckcn.appspot.com/),是基于歧义知识库的,如果加入到知识库中,伪歧义的字段按理都可以按知识库的方式切分。

bit6211 2009-11-26
HuangSui.cn 写道
如果用人工干涉的方法的话,我使用的方法非常方便(http://buckcn.appspot.com/),是基于歧义知识库的,如果加入到知识库中,伪歧义的字段按理都可以按知识库的方式切分。




哈哈 非常不错
相当于手工从无到有 创建一个自己的歧义知识库么 
十分感谢  

by the way  5小时前,你每天工作到4点多么 呵呵
HuangSui.cn 2009-11-26
是靠手工的,不过程序可以输出所有的组合歧义和交集歧义数据,然后人工建立知识库
知识库数据可多可少,查询机制和词典一样

没工作,所以比较自由
Global site tag (gtag.js) - Google Analytics