当前位置:   article > 正文

matlab如何分割中文与其它字符_matlab中文分词

matlab中文分词

函数1:   

  1. function result = splitChinese(label)
  2. % label为char类型字符
  3. % 确定汉字的位置
  4. log = arrayfun(@(x) (x >= '一' && x <= '龥'),label);
  5. % 初始状态为第一个字符和对应的逻辑值
  6. currentChar = label(1);
  7. currentLog = log(1);
  8. % 汉字到非汉字变化的次数;再+1就是分割的段数
  9. changeCount = sum(diff(log) ~= 0);
  10. result = cell(changeCount+1,1);
  11. N = 1;
  12. % 开始遍历字符数组和逻辑数组
  13. for i = 2:length(label)
  14. if log(i) == currentLog
  15. currentChar = [currentChar, label(i)];
  16. else
  17. % 将当前字符存储在结果数组中
  18. result{N} = currentChar;
  19. % 更新当前字符和对应的逻辑值
  20. currentChar = label(i);
  21. currentLog = log(i);
  22. N = N+1;
  23. end
  24. end
  25. % 加载最后一段字符
  26. result{N} = currentChar;
  27. end

函数2: 避免循环,更少的代码

  1. function result = splitChinese2(label)
  2. % label为char类型字符
  3. % 确定汉字的位置
  4. log = arrayfun(@(x) (x >= '一' && x <= '龥'),label);
  5. Indxs = find(diff(log) ~= 0);
  6. % 分割中文、英文字符
  7. result.Data = arrayfun(@(x,y) extractBetween(label,x,y),[0 Indxs]'+1,[Indxs length(label)]');
  8. result.flag = [log(Indxs),log(end)]; % 中文字段标记为1
  9. end

运行结果:

  1. label = '你好hello哈哈werweh反对131';
  2. result1 = splitChinese(label)
  3. result2 = splitChinese2(label)

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

闽ICP备14008679号