结巴中文分词(PHP 版本):做最好的 PHP 中文分词、中文断词语组件(composer )

2017-02-25 07:20:54   Laravel

  中文分词   composer   结巴分词   PHP 中文分詞   中文断词语組件  

结巴中文分词(PHP 版本):做最好的 PHP 中文分詞、中文断词组件

结巴分词组件:fukuball/jieba-php

网址:https://packagist.org/packages/fukuball/jieba-php

利用composer 拉去结巴分词组件

  1. composer require fukuball/jieba-php:dev-master

拉取成功以后 会在vendor文件夹里 发现fukuball目录,这个就是结巴分词组件,

然后在控制器里引入

  1. use Fukuball\Jieba\Jieba;
  2. use Fukuball\Jieba\Finalseg;
  3. public function jieba(Request $request)
  4. {
  5. $paragraph = $request->input('paragraph');
  6. Jieba::init(array(
  7. 'mode'=>'default',
  8. 'dict'=>'samll'
  9. ));
  10. Finalseg::init();//
  11. $seg_list = Jieba::cut($paragraph);
  12. dd($seg_list);
  13. }

原始文章

  1. 中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,不过在词这一层上,中文比之英文要复杂的多、困难的多。

分词后的

  1. array:102 [▼
  2. 0 => "中文"
  3. 1 => "分词"
  4. 2 => "Chinese"
  5. 3 => "Word"
  6. 4 => "Segmentation"
  7. 5 => "指"
  8. 6 => "的"
  9. 7 => "是"
  10. 8 => "将"
  11. 9 => "一个"
  12. 10 => "汉字"
  13. 11 => "序列"
  14. 12 => "切"
  15. 13 => "分成"
  16. 14 => "一个"
  17. 15 => "一个"
  18. 16 => "单独"
  19. 17 => "的"
  20. 18 => "词"
  21. 19 => "分词"
  22. 20 => "就是"
  23. 21 => "将"
  24. 22 => "连续"
  25. 23 => "的"
  26. 24 => "字"
  27. 25 => "序列"
  28. 26 => "按照"
  29. 27 => "一定"
  30. 28 => "的"
  31. 29 => "规范"
  32. 30 => "重新组合"
  33. 31 => "成词"
  34. 32 => "序列"
  35. 33 => "的"
  36. 34 => "过程"
  37. 35 => "我们"
  38. 36 => "知道"
  39. 37 => "在"
  40. 38 => "英文"
  41. 39 => "的"
  42. 40 => "行文"
  43. 41 => "中"
  44. 42 => "单词"
  45. 43 => "之间"
  46. 44 => "是"
  47. 45 => "以"
  48. 46 => "空格"
  49. 47 => "作为"
  50. 48 => "自然"
  51. 49 => "分界"
  52. 50 => "符"
  53. 51 => "的"
  54. 52 => "而"
  55. 53 => "中文"
  56. 54 => "只是"
  57. 55 => "字"
  58. 56 => "句"
  59. 57 => "和"
  60. 58 => "段"
  61. 59 => "能"
  62. 60 => "通过"
  63. 61 => "明显"
  64. 62 => "的"
  65. 63 => "分界"
  66. 64 => "符来"
  67. 65 => "简单"
  68. 66 => "划界"
  69. 67 => "唯独"
  70. 68 => "词"
  71. 69 => "没有"
  72. 70 => "一个"
  73. 71 => "形式"
  74. 72 => "上"
  75. 73 => "的"
  76. 74 => "分界"
  77. 75 => "符"
  78. 76 => "虽然"
  79. 77 => "英文"
  80. 78 => "也"
  81. 79 => "同样"
  82. 80 => "存在"
  83. 81 => "短语"
  84. 82 => "的"
  85. 83 => "划分"
  86. 84 => "问题"
  87. 85 => "不过"
  88. 86 => "在"
  89. 87 => "词"
  90. 88 => "这"
  91. 89 => "一层"
  92. 90 => "上"
  93. 91 => "中文"
  94. 92 => "比"
  95. 93 => "之"
  96. 94 => "英文"
  97. 95 => "要"
  98. 96 => "复杂"
  99. 97 => "的"
  100. 98 => "多"
  101. 99 => "困难"
  102. 100 => "的"
  103. 101 => "多"
  104. ]
  • 功能1 : 分词
    1. cut 方法接受多个输入参数:
    2. 1) 第一个参数为需要分词的字符串
    3. 2cut_all 参数用来控制分词模式
    4. cutForSearch 方法接受一个参数:需要分词的字符串,该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
    5. 注意:待分词的字符串是 utf-8 字符串
    6. cut 以及 cutForSearch 返回的结构是一个可迭代的 array
  • 功能2 : 添加自定义词典

    1. 开发者可以指定自己自定义的词典,以便包含 jieba 词库裡没有的词。虽然 jieba 有新词识别能力,但是自行添加新词可以保证更高的正确率
    2. 用法: Jieba::loadUserDict(file_name) # file_name 为自定义词典的绝对路径
    3. 词典格式和 dict.txt 一样,一个词佔一行;每一行分为三部分,一部分为词语,一部分为词频,一部分为词性,用空格隔开
    4. 事例: 李小福 / / 创新 / / 主任 / / / / 计算 / 方面 / / 专家 / 加载自定义词库后: 李小福 / / 创新办 / 主任 / / / 云计算 / 方面 / / 专家 /

原始文章

  1. 中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字、句和段能通过明显的分界符来简单划界,唯独词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,不过在词这一层上,中文比之英文要复杂的多、困难的多。

分词后的

  1. array:102 [▼
  2. 0 => "中文"
  3. 1 => "分词"
  4. 2 => "Chinese"
  5. 3 => "Word"
  6. 4 => "Segmentation"
  7. 5 => "指"
  8. 6 => "的"
  9. 7 => "是"
  10. 8 => "将"
  11. 9 => "一个"
  12. 10 => "汉字"
  13. 11 => "序列"
  14. 12 => "切"
  15. 13 => "分成"
  16. 14 => "一个"
  17. 15 => "一个"
  18. 16 => "单独"
  19. 17 => "的"
  20. 18 => "词"
  21. 19 => "分词"
  22. 20 => "就是"
  23. 21 => "将"
  24. 22 => "连续"
  25. 23 => "的"
  26. 24 => "字"
  27. 25 => "序列"
  28. 26 => "按照"
  29. 27 => "一定"
  30. 28 => "的"
  31. 29 => "规范"
  32. 30 => "重新组合"
  33. 31 => "成词"
  34. 32 => "序列"
  35. 33 => "的"
  36. 34 => "过程"
  37. 35 => "我们"
  38. 36 => "知道"
  39. 37 => "在"
  40. 38 => "英文"
  41. 39 => "的"
  42. 40 => "行文"
  43. 41 => "中"
  44. 42 => "单词"
  45. 43 => "之间"
  46. 44 => "是"
  47. 45 => "以"
  48. 46 => "空格"
  49. 47 => "作为"
  50. 48 => "自然"
  51. 49 => "分界"
  52. 50 => "符"
  53. 51 => "的"
  54. 52 => "而"
  55. 53 => "中文"
  56. 54 => "只是"
  57. 55 => "字"
  58. 56 => "句"
  59. 57 => "和"
  60. 58 => "段"
  61. 59 => "能"
  62. 60 => "通过"
  63. 61 => "明显"
  64. 62 => "的"
  65. 63 => "分界"
  66. 64 => "符来"
  67. 65 => "简单"
  68. 66 => "划界"
  69. 67 => "唯独"
  70. 68 => "词"
  71. 69 => "没有"
  72. 70 => "一个"
  73. 71 => "形式"
  74. 72 => "上"
  75. 73 => "的"
  76. 74 => "分界"
  77. 75 => "符"
  78. 76 => "虽然"
  79. 77 => "英文"
  80. 78 => "也"
  81. 79 => "同样"
  82. 80 => "存在"
  83. 81 => "短语"
  84. 82 => "的"
  85. 83 => "划分"
  86. 84 => "问题"
  87. 85 => "不过"
  88. 86 => "在"
  89. 87 => "词"
  90. 88 => "这"
  91. 89 => "一层"
  92. 90 => "上"
  93. 91 => "中文"
  94. 92 => "比"
  95. 93 => "之"
  96. 94 => "英文"
  97. 95 => "要"
  98. 96 => "复杂"
  99. 97 => "的"
  100. 98 => "多"
  101. 99 => "困难"
  102. 100 => "的"
  103. 101 => "多"
  104. ]
  • 功能1 : 分词
    1. cut 方法接受多个输入参数:
    2. 1) 第一个参数为需要分词的字符串
    3. 2cut_all 参数用来控制分词模式
    4. cutForSearch 方法接受一个参数:需要分词的字符串,该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
    5. 注意:待分词的字符串是 utf-8 字符串
    6. cut 以及 cutForSearch 返回的结构是一个可迭代的 array
  • 功能2 : 添加自定义词典

    1. 开发者可以指定自己自定义的词典,以便包含 jieba 词库裡没有的词。虽然 jieba 有新词识别能力,但是自行添加新词可以保证更高的正确率
    2. 用法: Jieba::loadUserDict(file_name) # file_name 为自定义词典的绝对路径
    3. 词典格式和 dict.txt 一样,一个词佔一行;每一行分为三部分,一部分为词语,一部分为词频,一部分为词性,用空格隔开
    4. 事例: 李小福 / / 创新 / / 主任 / / / / 计算 / 方面 / / 专家 / 加载自定义词库后: 李小福 / / 创新办 / 主任 / / / 云计算 / 方面 / / 专家 /

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

感谢你的支持,我会继续努力!
扫码打赏,建议金额1-10元