当前位置:   article > 正文

计算文本相似度方法比对(2)_com.hankcs 中文比对

com.hankcs 中文比对

hanlp分词

1.标准分词器:StandardTokenizer

2.NLP分词器:NLPTokenizer

3.索引分词器:IndexTokenizer

4.N-最短路径分词器:SpeedTokenizer

5.最短路径分词

6.极速词典分词

  1. 依賴:
  2. <dependency>
  3. <groupId>com.hankcs.hanlp.restful</groupId>
  4. <artifactId>hanlp-restful</artifactId>
  5. <version>0.0.7</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>com.hankcs</groupId>
  9. <artifactId>hanlp</artifactId>
  10. <version>portable-1.3.4</version>
  11. </dependency>
  1. 实战案例:
  2. public class HanLP{
  3. private static final Segment N_SHORT_SEGMENT = new NShortSegment().enableCustomDictionary(false).enablePlaceRecognize(true).enableOrganizationRecognize(true);
  4. private static final Segment DIJKSTRA_SEGMENT = new DijkstraSegment().enableCustomDictionary(false).enablePlaceRecognize(true).enableOrganizationRecognize(true);
  5. public static Map<String, String> segMore(String text) {
  6. Map<String, String> map = new HashMap<>();
  7. map.put("标准分词", standard(text));
  8. map.put("NLP分词", nlp(text));
  9. map.put("索引分词", index(text));
  10. map.put("N-最短路径分词", nShort(text));
  11. map.put("最短路径分词", shortest(text));
  12. map.put("极速词典分词", speed(text));
  13. return map;
  14. }
  15. private static String standard(String text) {
  16. StringBuilder result = new StringBuilder();
  17. StandardTokenizer.segment(text).forEach(term->result.append(term.word).append(" "));
  18. return result.toString();
  19. }
  20. private static String nlp(String text) {
  21. StringBuilder result = new StringBuilder();
  22. NLPTokenizer.segment(text).forEach(term->result.append(term.word).append(" "));
  23. return result.toString();
  24. }
  25. private static String index(String text) {
  26. StringBuilder result = new StringBuilder();
  27. IndexTokenizer.segment(text).forEach(term->result.append(term.word).append(" "));
  28. return result.toString();
  29. }
  30. private static String speed(String text) {
  31. StringBuilder result = new StringBuilder();
  32. SpeedTokenizer.segment(text).forEach(term->result.append(term.word).append(" "));
  33. return result.toString();
  34. }
  35. private static String nShort(String text) {
  36. StringBuilder result = new StringBuilder();
  37. N_SHORT_SEGMENT.seg(text).forEach(term->result.append(term.word).append(" "));
  38. return result.toString();
  39. }
  40. private static String shortest(String text) {
  41. StringBuilder result = new StringBuilder();
  42. DIJKSTRA_SEGMENT.seg(text).forEach(term->result.append(term.word).append(" "));
  43. return result.toString();
  44. }
  45. public static void main(String[] args) {
  46. // Map<String,String> map = segMore("借鉴hashmap算法找出可以hash的key值");
  47. Map<String,String> map = segMore("找出test中华人民共和国人民解放军English");
  48. System.out.println(map.get("标准分词"));
  49. System.out.println(map.get("NLP分词"));
  50. System.out.println(map.get("索引分词"));
  51. System.out.println(map.get("N-最短路径分词"));
  52. System.out.println(map.get("最短路径分词"));
  53. System.out.println(map.get("极速词典分词"));
  54. }
  55. }
  1. 运行结果:
  2. 标准分词:找出 test 中华人民共和国 人民解放军 English
  3. NLP分词:找出 test 中华人民共和国 人民解放军 English
  4. 索引分词:找出 test 中华人民共和国 中华 华人 人民 共和国 共和 人民解放军 人民 解放军 解放 English
  5. N-最短路径分词:找 出 test 中华人民共和国 人民 解放军 English
  6. 最短路径分词:找 出 test 中华人民共和国 人民 解放军 English
  7. 极速词典分词:找 出 t e s t 中华人民共和国 人民 解放军 E n g l i s h

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/877947
推荐阅读
相关标签
  

闽ICP备14008679号