本文基本借鉴大佬文章: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. 使用DotNetty编写跨平台网络通信程序

    长久以来,.Net开发人员都非常羡慕Java有Netty这样,高效,稳定又易用的网络通信基础框架.终于微软的Azure团队,使用C#实现的Netty的版本发布.不但使用了C#和.Net平台的技术特点, ...

  2. 【2017-06-05】Jquery.ajax

    AJAX  是一种网页数据异步加载技术 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 一.Json     ...

  3. abstract关键字

    概念 abstract关键字表示的是抽象的意思,可以用来修饰类和方法.修饰类我们称为抽象类,修饰方法我们称为抽象方法. abstract修饰类,抽象类 1.public  abstract  clas ...

  4. Swift 了解(1)

    Apple取消了oc的指针以及其他不安全的访问的使用,舍弃的smalltalk语法,全面改为点语法,提供了类似java的命名空间 范型 重载: 首先我们了解一下Swift这门语言.Swift就像C语言 ...

  5. 抓包工具 - Fiddler(详细介绍)

    Fiddler的详细介绍 一.Fiddler与其他抓包工具的区别 1.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大.模拟http请求的功能也不够,且firebug常常是需要 ...

  6. Python中的枚举

    在Python中想要实现枚举功能的方式比较多,可以通过字典这一数据结构,利用键与值的对应关系,可以实现枚举的功能. my_Enum={ 'red':1, 'yellow':2, 'blue':3 } ...

  7. comm的用法

    1.comm的功能 对两个排序过的文本文件进行逐行比较基本用法:comm -[123] file1 file2 2.例子 1)显示两个文本文件都有的行#comm -12 file1 file2 2)显 ...

  8. EF架构~codeFirst从初始化到数据库迁移

    一些介绍 CodeFirst是EntityFrameworks的一种开发模式,即代码优先,它以业务代码为主,通过代码来生成数据库,并且加上migration的强大数据表比对功能来生成数据库版本,让程序 ...

  9. pythonic-让python代码更高效

    何为pythonic? pythonic如果翻译成中文的话就是很python.很+名词结构的用法在中国不少,比如:很娘,很国足,很CCTV等等. 我的理解为,很+名词表达了一种特殊和强调的意味.所以很 ...

  10. 【踩坑记录】记一次MySQL主从复制延迟的坑

    最近开发中遇到的一个MySQL主从延迟的坑,记录并总结,避免再次犯同样的错误. 情景 一个活动信息需要审批,审批之后才能生效.因为之后活动要编辑,编辑后也可能触发审批,审批中展示的是编辑前的活动内容, ...