1个月前   要有好的心情      :
KTDictSeg 分词组件中加载字典的功能可否单独开一个线程处理? 针对for循环里的耗时操作
1楼 回到顶楼 
  1个月前   eaglet      :
加载字典只是在刚启动时加载一次,之后不再加载。即使你重新new,也不会加载。
不过要用针对lucene的那个分析器才行,如果你单独使用KTDictSeg,你可以自己缓存。
2楼 回到顶楼 
  1个月前   要有好的心情      :
是的,我在代码中看到了是只加载一次,我的意思指这一次也单独放到一个进程中,就是那个for循环
3楼 回到顶楼 
  1个月前   eaglet      :
第一次如果放到单独线程处理,好处是调用者可以立即返回,但在字典加载成功之前,调用者将无法进行分词。不过这个建议很好,我会考虑增加一个开关,由用户选择到底要不要异步加载字典。
4楼 回到顶楼 
  1个月前   要有好的心情      :
加个bool loaded 字段控制一下,加载前 为false
在EndInvoke中设置为true,segment时判断loaded ,否则用循环延时,直到为true,不知我的方法合不合理?
5楼 回到顶楼 
  1个月前   eaglet      :
基本应该是这个思路,要考虑到多线程时的同步,另外我觉得采用阻塞延时应比循环延时好。
6楼 回到顶楼 
  1个月前   要有好的心情      :
对,阻塞延时
7楼 回到顶楼 
  1个月前   乐逍遥      :
@eaglet
你好,我用的你的中文分词组件,在使用的时候,已经配置了"过滤停用词",但是对"四海捷高(北京)置业有限公司"分词,结果为什么总是有"("这个符号呢,
8楼 回到顶楼 
  1个月前   乐逍遥      :
@eaglet
我刚才又测试了一下,如果在KTDictSeg.xml文件里面,把
把这个值改成false,就没有这个"("号了,这说明是Name.dct文件的问题,可是,我用DictManage.exe这个工具无法打开这个文件,保存,错误信息如下"can not open dictionary, errmsg:无法将类型为:KTdictseg.t_chsnametraffic"的对象强制转换为类型"KTDICTSEG.T_DICTfILE""
9楼 回到顶楼 
  1个月前   eaglet      :
是有这个问题,应该是一个bug,当分词器找到“高”时认为其为中文的姓,结果就和后面那个词连起来了。去掉中文人名匹配就没有这个问题,我会在新版本中改掉这个bug
10楼 回到顶楼 
  1个月前   要有好的心情      :
能够解析一下 搜狗的词库吗?字典中是否可以将搜狗的词库合并进来?
11楼 回到顶楼 
  1个月前   eaglet      :
那个词库好像是加密的
12楼 回到顶楼 
  1个月前   要有好的心情      :
我看到有人写了一段代码,将其转成了txt文件
13楼 回到顶楼 
  1个月前   eaglet      :
你还能找到那段代码吗?
14楼 回到顶楼 

注册用户登录后才能回复,登录注册
> 返回“搜索引擎”


其他话题

相关链接
1 22856