`
jimmee
  • 浏览: 538042 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

转-语言检测工具language-detection

    博客分类:
  • J2SE
 
阅读更多
给你一段文字,让你检测它是什么语言?有两个开源的项目可以使用。一个是Apache Tika,一个是language-detection。language-detection是google Code上开源的一个语言检测软件包,不折不扣的日货,但使用起来非常方便,其project链接如下:http://code.google.com/p/language-detection。基本上,你只需要引用langdetect.jar和其依赖的jsonic-1.3.0.jar(也是日货)即可,下面是一个简单的例子。



新建一个Java工程,将上述两个jar包引入工程,新建一个测试类,如下:
import java.net.URISyntaxException;

import com.cybozu.labs.langdetect.*;

/**
 * @author XXX
 *
 */
public class LangTest
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        try
        {
            DetectorFactory.loadProfile(Thread.currentThread().getContextClassLoader().getResource("lang").getPath());
        } catch (LangDetectException e)
        {
            e.printStackTrace();
        }
        
        Detector detect;
        try
        {
            detect = DetectorFactory.create();
            detect.append("我靠a靠靠靠a");
            System.out.println(detect.detect());
        } catch (LangDetectException e)
        {
            e.printStackTrace();
        }
        
    }

}


这段文字的检测结果是zh-cn,很简单。



language-detection基本的初始化工作都由DetectorFactory完成。检测前,需要先载入语言包(其实就是各个语言的样本,可以自行添加)。语言包最初是通过addProfile方法加入,其方法原型是addProfile(LangProfile profile, int index, int langsize),你可以构建自己的词汇表,然后通过addProfile方法添加。也可以使用loadProfile方法,把一个目录下的所有语言文件(按照要求的格式,下载的jar包有样例)一次性载入。后面就很简单了,通过DetectorFactory创建一个Detector,append需要检测的文字,detect一下,就返回语言类别,收工。

测试代码参看附件.
分享到:
评论
4 楼 matay 2014-08-25  
您好,能不能把语言包给我发过来,我找不到。谢谢 179095844@qq.com
3 楼 jimmee 2013-09-23  
抢街饭 写道
谢谢你了,我研究半天都没有弄明白 邮箱lzwsoft@sina.com


你好, 我已经将示例的工程代码用email发送给你了, 请查收.
2 楼 抢街饭 2013-09-13  
谢谢你了,我研究半天都没有弄明白 邮箱lzwsoft@sina.com
1 楼 抢街饭 2013-09-13  
你的语言包是怎么导入的啊,有具体的Demo吗

相关推荐

Global site tag (gtag.js) - Google Analytics