Results 123 comments of hankcs

Thank you, I studied that implementation several years ago. It requires byte segmentation of char. In C++, this is easy because a char is natively a byte, but in Java...

是个好想法,但目前不支持配置,默认标准分词。

如果去掉\n,highlighter就会对不齐。

https://github.com/hankcs/AhoCorasickDoubleArrayTrie/blob/6225461111a0eb710f0787baa15db92989cb7e34/src/main/java/com/hankcs/algorithm/AhoCorasickDoubleArrayTrie.java#L465 这个方法直接return nodePos就可以。

感谢反馈,目前的自定义词典机制并不适合频繁地修改更新。具体到solr等应用场景,也没有考虑同步的问题。此处提供一些可行的解决方案: 1. 缓存的目的是为了频繁地启动debug,而不是reload。所以你需要禁止HanLP生成缓存,此时大概花费数秒钟加载所有的txt。这可以通过修改`com.hankcs.hanlp.dictionary.CustomDictionary#loadMainDictionary`实现。新版本可能会加一个禁用缓存的开关。 1. 我并没有时间去研究solr的机制,也许在reload core的时候会有一个通知?你需要在接受该通知的时候reload HanLP的词典。如果你对时效非常敏感,可能需要同时创建新的Segment对象,以免多线程不同步。 1. 你可以将词典放到唯一的一台服务器,编写自己的IOAdapter,提供远程访问功能。 总之,由于人力有限,HanLP项目只能提供解决思路,而无法代替用户开发所有的功能,请见谅。

目前的双数组实现的确会比较耗内存,可以考虑将常用字符映射为连续整数。

是的,ACDAT只是是两个术语的顺序组合。

使用HanLP提供的[AhoCorasickDoubleArrayTrieSegment](https://github.com/hankcs/HanLP/blob/master/src/main/java/com/hankcs/hanlp/seg/Other/AhoCorasickDoubleArrayTrieSegment.java#L29)

请参考:https://github.com/hankcs/HanLP/issues/477

请参考http://cs229.stanford.edu/section/cs229-linalg.pdf 中Matrix Calculus一章。 另,我不常与人实时聊天,抱歉了。