language-detection 语言检测工具 java版的应用demo
本文基本借鉴大佬文章: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的更多相关文章
- Java静态检测工具/Java代码规范和质量检查简单介绍(转)
静态检查: 静态测试包括代码检查.静态结构分析.代码质量度量等.它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行.代码检查代码检查包括代码走查.桌面检查.代码审查等,主要检查代码 ...
- Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序
Android For JNI(一)--JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序 当你的Android之旅一步步的深入的时候,你其实会发现,很多东西都必须去和framew ...
- 数据结构与抽象 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. ...
- 三分钟极速体验:Java版人脸检测
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Java版人脸检测详解上篇:运行环境的Docker镜像(CentOS+JDK+OpenCV)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Java版人脸检测详解下篇:编码
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 三分钟:极速体验JAVA版目标检测(YOLO4)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- JCEF3——谷歌浏览器内核Java版实现(一):使用jawt获取窗体句柄
前言 最近一段时间研究谷歌浏览器内核.谷歌浏览器内核一直开源,并维护更新,它的开源项目中内核更新速度和Chrome浏览器版本更新进度一样!而且它不同于WebKit(值得一题的是谷歌浏览器已不使用Web ...
- 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息
第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...
随机推荐
- php处理表单中的复选框问题以及js实现全选
做的一个项目中遇到了全选和取消全选的问题,这是一个很普遍的功能,,虽然我们经常用到,但是真正做起来却发现行不通,在网上找了些,大部分都是ie,但是谷歌内核浏览器不能正常实现,所以经过小小的调整,今天就 ...
- Mapreduce在Yarn调用出错
共享原因:虽然用一篇博文写问题感觉有点奢侈,但是搜索百度,相关文章太少了,苦苦探寻日志才找到解决方案. 遇到问题:mapreduce程序一直迟迟没有结果. [QC] INFO [main] org.a ...
- typecho for SAE
url:http://cloudbbs.org/forum.php?mod=viewthread&tid=22817 typecho和wordpress差不多,目前使用的用户非常之多.这里分享 ...
- POI使用:用poi接口不区分xls/xlsx格式解析Excel文档(41种日期格式解析方法,5种公式结果类型解析方法,3种常用数值类型精度控制办法)
一.使用poi解析excel文档 注:全部采用poi接口进行解析,不需要区分xls.xlsx格式,不需要判断文档类型. poi中的日期格式判断仅支持欧美日期习惯,对国内的日期格式并不支持判断,怎么办? ...
- web 直播&即时聊天------阿里云、融云(三)
经过前面的知识,基本已经把聊天室的功能搞定了,剩下的就是直播的问题了... 一如既往,阿里云的web demo也是少的可怜,只有一个web播放器(Prismplayer),所以这里主要就此播放器踩的坑 ...
- WPF MVVM 架构 Step By Step(6)(把actions从view model解耦)
到现在为止,我们创建了一个简单的MVVM的例子,包含了实现了的属性和命令.我们现在有这样一个包含了例如textbox类似的输入元素的视图,textbox用绑定来和view model联系,像点击but ...
- 学容器必须懂 bridge 网络 - 每天5分钟玩转 Docker 容器技术(32)
上一节我们讨论了 none 和 host 类型的容器网络,本节学习应用最广泛也是默认的 bridge 网络. Docker 安装时会创建一个 命名为 docker0 的 linux bridge.如果 ...
- Appcan开发笔记:结合JQuery的$.Deferred()完善批量异步发送
appcan的 uexXmlHttpMgr.send 或者 appcan.ajax无法同步请求(没有找到这个属性),只能异步,造成循环多次提交时由于延迟或网络堵塞等原因无法同步响应,导致提交顺序混乱, ...
- 【LeetCode】105 & 106. Construct Binary Tree from Inorder and Postorder Traversal
题目: Given inorder and postorder traversal of a tree, construct the binary tree. Note:You may assume ...
- Unity 游戏框架搭建 (二) 单例的模板
上一篇文章中说到的manager of managers,其中每个manager都是单例的实现,当然也可以使用静态类实现,但是相比于静态类的实现,单例的实现更为通用,可以适用大多数情况. 如何设计 ...