java手写简易中文分词器简易实现(算法)

public class secondwork {
	public static void main(String args[])
	{
		String[] cs =  {"你好","请问","什么","名字"};//词典
		String a = "你好!请问你叫什么名字?";
		System.out.print("原句:");
		System.out.print(a + '\n');
		System.out.print("拆分后为:");
		String[] cs2 = new String[100]; //结果数组
		int jud=0;//找到匹配字符串与否的标志
		int j=0;
		String temp=null;//初始化临时字符串
		for(;a.length()>0;)
		{
			for(int i = 0;i<a.length();i++)
			{
				temp = a.substring(i);//每次截取掉首个字符
				if(isin(cs,temp) == true)//如果目标字符串在数组中
				{
					cs2[j] = temp;
					jud = 1;
					int number = temp.length();
					a = a.substring(0,a.length()-number);
				}
			}
			if(jud == 0)//没有找到匹配字符串
			{
				cs2[j] = a.substring(a.length()-1,a.length());//将最后一个元素放在cs2里面
				a = a.substring(0, a.length()-1);//截掉最后一个元素继续循环。	
			}
			jud = 0;
			j++;
		}
		for(;j >= 0;j--)
		{
			if(cs2[j] != null)
				System.out.print(cs2[j]+"   ");
		}
	}
	
	/*
	
	 * 下面为判断字符串是否在词典中的函数方法
	
	*/
	
	static public boolean isin(String[] cs,String temp)//判断目标字符串是否在对比字符串数组中
	{
		int i;
		for(i = 0;i<cs.length;)
		{
			if(temp.equals(cs[i]))
				i = cs.length+1;
			else
				i++;
		}
		if(i == cs.length+1)
			return true;
		else
			return false;
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
贝叶斯分类是一种基于统计原理的分类方法,它可以用来实现手写数字识别。在使用Java实现贝叶斯分类时,我们可以按照以下步骤进行: 1. 数据准备:首先,我们需要准备用于训练和测试的手写数字数据集。常用的数据集有MNIST,它包含大量的手写数字图像及其对应的标签。 2. 特征提取:对于手写数字识别,常用的特征是图像的像素值。我们可以将图像转换为一个特征向量,其中每个元素是一个像素的灰度值。这样,每个数字就可以表示为一个向量。 3. 训练模型:使用训练数据集,计算每个数字类别的先验概率和条件概率。先验概率表示每个数字出现的概率,条件概率表示给定某个数字类别下某个像素的灰度值的概率。 4. 分类预测:对于给定的测试样本,计算它属于每个数字类别的概率,然后选择概率最大的类别作为预测结果。计算概率时,利用贝叶斯公式将先验概率和条件概率结合起来。 5. 模型评估:使用测试数据集,计算分类的准确率、精确率、召回率等指标,评估分类的性能。 在使用Java实现贝叶斯分类时,可以通过多维数组、循环和条件判断语句来完成特征提取、模型训练和分类预测的过程。同时,可以利用Java提供的数据结构和算法库来简化计算和数据处理的过程。 此外,还可以利用Java的多线程机制,对于大规模的手写数字数据集进行并行计算,提高分类的训练和预测速度。 总之,使用Java实现贝叶斯分类可以实现手写数字识别,通过合理设计和优化,可以得到高效准确的分类,并在实际应用中取得良好的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值