首页新闻招聘找找看知识库
  • 回复:330 浏览:44793 2009-08-14 07:54 来自 eaglet

    盘古分词是一个中英文分词组件。作者eaglet 曾经开发过KTDictSeg 中文分词组件,拥有大量用户。作者基于之前分词组件的开发经验,结合最新的开发技术重新编写了盘古分词组件。

    项目首页:

    http://www.codeplex.com/pangusegment

     

    为了更好的为大家服务,盘古分词的问题解答统一转移到HubbleDotNet 中文社区进行回复,请大家在HubbleDotNet 中文社区提问和交流。

    中文社区网址

    http://hubbledotnet.51aspx.com/

  • eaglet
    2010-09-08 07:32 eaglet
    @howareu
    0x1000 代表词性
    字典中如果有了,会跳过。
    第201楼 回到顶楼
  • blosee
    2010-09-15 10:28 blosee
    我请教个问题,我现在在用盘古分词
    我想自已建分词库
    想把您原来那个默认的词库词条全部删了
    我重新来加,如何删啊?
    第202楼 回到顶楼
  • eaglet
    2010-09-15 12:48 eaglet
    @blosee
    你不用那个文件不就完了吗?
    用 Txt 文件转换成 dct 文件就可以了。
    第203楼 回到顶楼
  • liwanyu
    2010-09-26 22:37 liwanyu
    我创建索引时
    IndexWriter writer = new IndexWriter(INDEX_STORE_PATH, new StandardAnalyzer(), true)
    用他自带的生成索引成功,而我用 PanGuAnalyzer 就生成索引失败。与版本没有什么 关系 吧?
    第204楼 回到顶楼
  • eaglet
    2010-09-27 07:50 eaglet
    @liwanyu
    PanGu 要用最新版本,较老的版本不支持 Lucene 2.9
    第205楼 回到顶楼
  • liwanyu
    2010-09-27 11:01 liwanyu
    @eaglet
    我用的2.3
    第206楼 回到顶楼
  • liwanyu
    2010-09-27 11:01 liwanyu
    Search\_0.fdt”正由另一进程使用,因此该进程无法访问此文件。总报这个错.
    第207楼 回到顶楼
  • eaglet
    2010-09-27 12:25 eaglet
    @liwanyu
    这个和分词没关系,分词组件不会去读写lucene 的文件。你检查代码其他地方有没有问题。
    第208楼 回到顶楼
  • liwanyu
    2010-09-27 15:06 liwanyu
    @eaglet
    问题解决了,谢谢组长了。
    第209楼 回到顶楼
  • blosee
    2010-09-27 15:16 blosee
    我想请教下楼主,lucene查询时,如果让它少返回些记录啊
    比如我输入:我是中国人
    经过查询,结果显示了很多不相干的内容?(我 是 中 国 人 只要包含这些单个字的记录也都显出来了},我理想的情况是只返回 : 我是中国人 中国 中国人 
    包含这些记录就够了,不必拆成单个字的记录也显出来.要咱个搞哦?
    第210楼 回到顶楼
  • eaglet
    2010-09-27 15:29 eaglet
    @blosee
    分词时不能按一元分词方式来分。不按一元分词,记录会少很多,但还是无法完全达到你的要求,lucene 似乎没有一个完美的解决方案。HubbleDotNet 可以通过在精确搜索中设置某些词可以为或来解决。
    第211楼 回到顶楼
  • 在路上狂奔的蜗牛
    2010-10-31 23:31 在路上狂奔的蜗牛
    如果我的网站买的是空间的,那我怎么安装来用呢?
    第212楼 回到顶楼
  • eaglet
    2010-11-01 06:35 eaglet
    @在路上狂奔的蜗牛
    空间目前还无法支持,以后我可能会联系空间的提供商提供这个服务,或者你们作为客户向空间提供商提出来,他们可能更会接受,到时候他们服务器上安装这个服务就可以了。
    第213楼 回到顶楼
  • zhanglu
    2010-11-05 22:05 zhanglu
    请问如何在英文分词中也加入词性。
    如" eaglet是个好同志"。将eaglet最为人名分出
    第214楼 回到顶楼
  • eaglet
    2010-11-06 12:51 eaglet
    @zhanglu
    目前还不可以
    第215楼 回到顶楼
  • 鸿慧
    2010-11-09 13:00 鸿慧
    我也正在做搜索这块,正好是别人推荐的 lucene.net+盘古分词, 看来这里会经常来了

    希望跟eaqlet哥,还有大家多多学习
    第216楼 回到顶楼
  • 鸿慧
    2010-11-09 13:54 鸿慧
    大侠们,问下, 索引库放在什么样的地方比较合理些, 比如 C盘?项目所在的D盘?与项目分开的F、H盘?
    第217楼 回到顶楼
  • eaglet
    2010-11-10 07:21 eaglet
    @鸿慧
    如果是出于性能考虑,索引放在一个独立的硬盘上性能会好一些。
    另外 你也可以在 http://hubbledotnet.51aspx.com/ 上提问。
    第218楼 回到顶楼
  • OecansBlue
    2010-11-13 14:13 OecansBlue
    我是用 lucene.net+盘古分词的,请问【组长】 eaglet,
    假设有A用户和B用户,都在竞价关键字是"电脑软件",如B用户出价比A高,就把B用户的信息排在前面,请问应该怎样做呢?
    我的代码大概是:(q是"电脑软件",价格字段是"price")
    q = GetKeyWordsSplitBySpace(q, new PanGuTokenizer());
    QueryParser queryParser = new QueryParser("keyword", new PanGuAnalyzer(true));
    Query query = queryParser.Parse(q);
    BooleanQuery bq = new BooleanQuery();
    bq.Add(query, BooleanClause.Occur.SHOULD);
    Hits hits = search.Search(bq);
    第219楼 回到顶楼
  • 鸿慧
    2010-11-13 14:55 鸿慧
    @eaglet

    我上午用某个关键字 可以搜二十万的记录, 中间修修改改过后,下午就只能收到几万条,再回想想,也没动过搜索的代码呀,索引库都用的同一个,,,,我实在困惑了,

    你能跟我讲讲,可能出现这种情况原因

    还有 我现在新增一条数据 写入索引库, 竟然搜不出来, 昨天都可以的

    你可以给点提示吗
    第220楼 回到顶楼
  • eaglet
    2010-11-15 07:41 eaglet
    @OecansBlue
    你用文档权重试试
    @鸿慧
    已经在HubbleDotNet 中文社区回答你的问题,可以在那里继续讨论。
    第221楼 回到顶楼
  • OecansBlue
    2010-11-15 09:04 OecansBlue
    @eaglet
    文档权重一般在建索引时添加document.SetBoost(price);
    但price(竞价)在数据库中是经常发生变化的,不是要经常重建索引吗,重建索引是重新把数据库的数据放入,还是只是把更新了的部分添加呢?
    第222楼 回到顶楼
  • eaglet
    2010-11-15 09:55 eaglet
    @OecansBlue
    lucene 的文档索引居然是建索引时静态添加的,我以前还真的不知道,这样设计感觉问题很大。我在设计HubbleDotNet 时从一开始就是考虑文档权重可以动态调整,因为我感觉静态设置权重没有实用价值,我也一直以为lucene 是可以动态调整文档权重的,如果不可以,那用lucene就很难解决了,除非你每次调整这个权重都把对应文档删了再重新加,如果更新很频繁,效率就有影响。如果你是独立主机,你可以试试HubbleDotNet.
    第223楼 回到顶楼
  • OecansBlue
    2010-11-15 14:33 OecansBlue
    @eaglet
    发现lucene.net有更新功能writer.UpdateDocument(term,doc);
    可以动态修改文档权重,但添加了writer.Optimize();后还是很慢,但如果不添加不知对以后的搜索带来什么问题?
    第224楼 回到顶楼
  • eaglet
    2010-11-15 14:43 eaglet
    @OecansBlue
    不要每次改完都优化
    第225楼 回到顶楼
  • OecansBlue
    2010-11-15 14:46 OecansBlue
    @eaglet
    请问一般什么时候做优化呢,如果不优化,我发现index目录下多了很多文件。
    第226楼 回到顶楼
  • eaglet
    2010-11-15 17:28 eaglet
    不优化不影响查询结果,但查询效率肯定会比较低,你可以用两个索引,一个查询,一个修改并优化,这样交替进行。
    第227楼 回到顶楼
  • OecansBlue
    2010-11-17 09:56 OecansBlue
    @eaglet
    "你可以用两个索引,一个查询,一个修改并优化,这样交替进行。"
    不太明白你的意思,我现在是在主后台里做一个优化索引按钮,自己手动优化索引文件.
    第228楼 回到顶楼
  • eaglet
    2010-11-17 17:54 eaglet
    @OecansBlue
    就是搞两个相同的索引,一个负责查询,查询的时候,另外一个索引负责更新,等更新完了,切换一下,负责查询那个负责更新,负责更新那个负责查询。
    第229楼 回到顶楼
  • eaglet
    2010-11-17 17:54 eaglet
    @OecansBlue
    就是搞两个相同的索引,一个负责查询,查询的时候,另外一个索引负责更新,等更新完了,切换一下,负责查询那个负责更新,负责更新那个负责查询。
    第230楼 回到顶楼
  • eaglet
    2010-11-17 17:54 eaglet
    @OecansBlue
    就是搞两个相同的索引,一个负责查询,查询的时候,另外一个索引负责更新,等更新完了,切换一下,负责查询那个负责更新,负责更新那个负责查询。
    第231楼 回到顶楼
  • OecansBlue
    2010-11-18 11:46 OecansBlue
    @eaglet
    这样不会做成一部份更新数据在A索引,一部份更新数据在B索引吗,还是你说的更新是指把每次更新都从数据库中把所有数据重新放索引中?
    第232楼 回到顶楼
  • eaglet
    2010-11-18 14:06 eaglet
    这个要看你的设计了,两边都要记录一下从什么地方开始更新的,需要有个类似数据库多点复制的设计。你如果用 hubbledotnet ,这些东西,系统都帮你做好了,但如果用lucene,你需要自己来完成这些设计。
    第233楼 回到顶楼
  • OecansBlue
    2010-11-18 14:46 OecansBlue
    请问@eaglet有HubbleDotNet + 盘古分词的实例吗?
    我在官方网上只找到PanGu4Lucene
    第234楼 回到顶楼
  • eaglet
    2010-11-18 17:42 eaglet
    @OecansBlue
    当然有了,这个下面有一个 0.9.6.0-Demo.zip
    http://hubbledotnet.codeplex.com/releases/view/51161
    还有这个是中文的文档
    http://www.cnblogs.com/eaglet/archive/2010/04/07/1706305.html
    这个是中文社区
    http://hubbledotnet.51aspx.com/
    第235楼 回到顶楼
  • OecansBlue
    2010-11-22 09:11 OecansBlue
    @eaglet
    请问HubbleDotNet如何发布到服务器呢?
    要不要在服务器端再安装HubbleDotNet
    第236楼 回到顶楼
  • eaglet
    2010-11-23 07:33 eaglet
    @OecansBlue
    服务器上要安装的
    第237楼 回到顶楼
  • ldc311
    2010-11-23 17:07 ldc311
    最新的盘古分词有没有vs2005版的
    第238楼 回到顶楼
  • Yung Wang
    2010-11-23 17:27 Yung Wang
    @eaglet:
    我想请问下我分词出来效果:美赞臣(0,2)/美赞(0,3)/美赞臣安儿健(0,5)/臣安儿健(2,3)/安儿健(3,2)/A+(6,5)/儿童(8,2)/儿童配(8,3)/儿童配方奶粉(8,5)/配方奶粉(10,2)/方奶粉(11,3)/900(14,1)/克(17,1)/3(19,1)/岁以(20,2)/岁(20,3)/岁以上(20,5)/以上(21,3)/上(22,2)/)(23,1)/
    但是为什么我在搜索“美赞臣”这个关键字的时候不能高亮呢。
    谢谢
    第239楼 回到顶楼
  • OecansBlue
    2010-11-24 09:06 OecansBlue
    @eaglet
    HubbleDotNet功能上很不错,但是如果能改成免安装的绿色版,或改成像Lucene使用组件形式就完美了。
    第240楼 回到顶楼
  • eaglet
    2010-11-25 03:47 eaglet
    @OecansBlue
    安装时要做一些配置,其实代码都是开源的,你如果一定要免安装,可以自己琢磨琢磨怎么做,组件形式理论上也是支持的,没有提供是因为不推荐,因为这种形式有很多缺陷,hubble 内部做了很大优化,以及一些后台任务都是基于服务存在的,以后要提供的分布式搜索,缓存服务等等都是基于服务存在的,基于这些考虑,不太推荐用组件形式,组件形式功能局限会比较大。
    第241楼 回到顶楼
  • eaglet
    2010-11-25 03:50 eaglet
    @ldc311
    代码可以在 VS2005 下编译通过的,你把代码拷贝出来,在VS2005下见个项目添加进去就可以了。
    高亮问题,我不知道你搜索用的什么组件,高亮又是用的什么组件,不好分析。
    第242楼 回到顶楼
  • Yung Wang
    2010-11-27 09:19 Yung Wang
    @eaglet:
    我想请问下我分词出来效果:美赞臣/美赞/美赞臣安儿健/臣安儿健/安儿健/A+/儿童/儿童配/儿童配方奶粉/配方奶粉/方奶粉/900/克/3/岁以/岁/岁以上/以上/上/)/
    但是为什么我在搜索“美赞臣”这个关键字的时候不能高亮呢。 高亮我是用的盘古的高亮。
    谢谢
    第243楼 回到顶楼
  • eaglet
    2010-11-29 06:03 eaglet
    @Yung Wang
    搜索用的什么组件?
    第244楼 回到顶楼
  • Yung Wang
    2010-11-29 15:00 Yung Wang
    @eaglet
    搜索使用的Lucene.net(2.9.2版本)。
    第245楼 回到顶楼
  • eaglet
    2010-11-29 17:39 eaglet
    @Yung Wang
    不应该的,如果真的是这样分词,应该能高亮的。
    第246楼 回到顶楼
  • Yung Wang
    2010-11-30 10:32 Yung Wang
    @eaglet
    是啊,但是如果在搜索的时候把多元分词打开,把冗余度设置为2的时候,就可以高亮了。
    打开多元分词搜索关键字被分解为:美赞/美/美赞臣/赞臣/
    不打开多元分词搜索关键字被分解为:美赞臣

    另外我好像问下,除了用你写的那工具查看分词效果以外,还有没有其他办法能查到索引文件里面的分词分词效果啊。
    第247楼 回到顶楼
  • eaglet
    2010-11-30 10:41 eaglet
    @Yung Wang
    高亮和索引没有关系,实际上就是把搜索到的文本在客户端重新分词一下,然后匹配后高亮,你没打开多元分词,不可能分出你前面那个帖子说的那个效果。你要把具体情况描述清楚才行,不要误导我。
    第248楼 回到顶楼
  • Yung Wang
    2010-11-30 12:04 Yung Wang
    生成索引文件是我做的一套程序,采用的是多元分词。然后搜索是另外一套程序,,我把多远分词关了的时候没有高亮,当我再打开多元分词的时候,他就高亮了。
    请问你有联系方法吗,谢谢。
    第249楼 回到顶楼
  • 问题很严重,加班吧。
    dict.dct 我下载了怎么没有呀
    第250楼 回到顶楼
登录后才能评论,请先登录注册