package test.testAi;import java.util.ArrayList;
import java.util.List;public class Test01 {public static void main(String[] args) {String[] words = new String[]{"我们","明天","去","郊游","打篮球","喝","风华正茂","书生意气"};String message = "你好,明天天气怎样?适合打篮球吗?";System.out.println(cut(message,words));}/*** 分词功能 基于最大正向匹配算法* @param message*/public static List<String > cut(String message,String[] words) {int maxWordLength = getMaxWordLength(words);List<String > cutResult = new ArrayList<String>();while (message.length() > 0) {String matchMessage = message.substring(0, maxWordLength>message.length()?message.length():maxWordLength);while (!strsContain(words,matchMessage)) {if (matchMessage.length() > 1) {matchMessage = matchMessage.substring(0, matchMessage.length() - 1);} else{break;}}cutResult.add(matchMessage);message = message.substring(matchMessage.length());}return cutResult;}public static boolean strsContain(String[] strs,String str){for(String st:strs){if(st.equals(str)){return true;}}return false;}public static int getMaxWordLength(String[] strs){int maxWordLength = strs[0].length();for (int i = 0; i <strs.length ; i++) {if(maxWordLength<strs[i].length()){maxWordLength = strs[i].length();}}return maxWordLength;}
}

基于最大正向匹配算法的中文分词相关推荐

  1. 基于词典的逆向最大匹配中文分词算法,更好实现中英文数字混合分词

    基于词典的逆向最大匹配中文分词算法,能实现中英文数字混合分词.比如能分出这样的词:bb霜.3室.乐phone.touch4.mp3.T恤.实际分词效果比正向分词效果好 publicclass RMM ...

  2. 基于词典的前缀扫描中文分词

    说明 中文分词是很多文本分析的基础.最近一个项目,输入一个地址,需要识别出地址中包含的省市区街道等单词.与以往的分词技术不同.jieba/hanlp等常用的分词技术,除了基于词典,还有基于隐马尔科夫/ ...

  3. 基于双向BiLstm神经网络的中文分词详解及源码

    基于双向BiLstm神经网络的中文分词详解及源码 基于双向BiLstm神经网络的中文分词详解及源码 1 标注序列 2 训练网络 3 Viterbi算法求解最优路径 4 keras代码讲解 最后 源代码 ...

  4. 基于条件随机场模型的中文分词改进(Python中文分词)

    目录 改进分词速度 一.更改存储特征值的数据结构 二.缩短对语料库的遍历时间(对语料库的预处理) 三.先将所有的特征值保存到数据库中 改进分词的准确度 实验项目和结果截图 实验项目 保存特征值时采用多 ...

  5. 基于HTTP协议的开源中文分词系统:HTTPCWS 1.0.0 发布

    基于HTTP协议的开源中文分词系统:HTTPCWS 1.0.0 发布[原创] 发布版本: httpcws 1.0.0 (最新版本:2009-08-10发布) 程序网址:http://code.goog ...

  6. 基于python的几种中文分词-词性获取

    基于python的几种中文分词-词性获取 1.测试环境 2.安装与使用 2.1 jieba分词 2.2 清华大学的THULAC 2.3 HanLP 2.4 pynlpir 基于python的几种中文分 ...

  7. java正向最大匹配算法_java中文分词之正向最大匹配法实例代码

    前言 基于词典的正向最大匹配算法(最长词优先匹配),算法会根据词典文件自动调整最大长度,分词的好坏完全取决于词典. 所谓词典正向最大匹配就是将一段字符串进行分隔,其中分隔 的长度有限制,然后将分隔的子 ...

  8. python双向最大匹配算法_中文分词算法 之 基于词典的逆向最大匹配算法

    在之前的博文中介绍了基于词典的正向最大匹配算法,用了不到50行代码就实现了,然后分析了词典查找算法的时空复杂性,最后使用前缀树来实现词典查找算法,并做了3次优化. 下面我们看看基于词典的逆向最大匹配算 ...

  9. 基于N-gram的双向最大匹配中文分词

    • 摘要 这次实验的内容是中文分词.将一个句子的所有词用空格隔开,将一个字串转换为一个词序列. 而我们用到的分词算法是基于字符串的分词方法中的正向最大匹配算法和逆向最大匹配算法.然后对两个方向匹配得出 ...

  10. 中文分词算法python代码_中文分词算法之最大正向匹配算法(Python版)

    最大匹配算法是自然语言处理中的中文匹配算法中最基础的算法,分为正向和逆向,原理都是一样的. 正向最大匹配算法,故名思意,从左向右扫描寻找词的最大匹配. 首先我们可以规定一个词的最大长度,每次扫描的时候 ...

最新文章

  1. Qtum量子链作客第四届拉美商业科技大会
  2. Android NFC读取电子标签
  3. 对Servlet容器的补充
  4. 学习笔记5-C语言-数组
  5. Git Flow工作流图
  6. elasticsearch group by java_java elasticsearch聚合查询实例详解
  7. Flash/Flex学习笔记(26):AS3自定义右键菜单
  8. Linux中缺32位运行库steam,Steam游戏必备运行库
  9. 微信公众号推送模板消息(三):获取关注者列表 openid
  10. HTML第五章课后作业,第五章 组合逻辑电路 课后习题答案详解 资料资料资料.pdf...
  11. python输入多个数用逗号隔开、计算平均值_python实现输入五个数并求平均值
  12. 不同tric 改进的理由
  13. 运维审计系统是堡垒机么?跟堡垒机有啥区别?
  14. 递归实现顺序输出整数
  15. python123 第四次作业答案_Python第四次作业——黄亦杨
  16. Python基本语法(初学者,不是很完善)
  17. 关于QT源代码文件的归类
  18. [Plant Simulation]使用Battery的Transporter(Battery参数的使用以及小车状态统计)
  19. (三十七:2021.01.13)Pre-MICCAI 2019学习(二)《前列腺近距离放射治疗中,检测粒子在CT中的3D位置和方向》
  20. 如何判断一个对象里面的属性值都为空

热门文章

  1. Linux Mint---开启桌面三维特效
  2. moss form验证 配置文件关键部分
  3. 13、细说装饰器与闭包
  4. 7-28 搜索树判断(25 分)
  5. Hbase总结(三)--使用spring-data-hadoop进行hbase的读写操作
  6. python 教程 第十章、 输入/输出
  7. C++输出九九乘法表
  8. 在CentOS 5.5安装 Apache2 和 PHP5 及 MySQL
  9. MOSS提升权限方法
  10. 大家知道,我的废话很多,所以来凑热闹