word2vec的Java实现 Word2VEC_Java

Apache
Java 查看源码»
跨平台
2016-04-21
开源中国股瞎

Word2VEC java版本的一个实现。

示例代码:

package com.kuyun.document_class;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.List;

import org.ansj.domain.Term;
import org.ansj.splitWord.analysis.ToAnalysis;

import com.alibaba.fastjson.JSONObject;
import com.ansj.vec.Learn;
import com.ansj.vec.Word2VEC;

import love.cq.util.IOUtil;
import love.cq.util.StringUtil;

public class Word2VecTest {
    private static final File sportCorpusFile = new File("corpus/result.txt");

    public static void main(String[] args) throws IOException {
        File[] files = new File("corpus/sport/").listFiles();

        //构建语料
        try (FileOutputStream fos = new FileOutputStream(sportCorpusFile)) {
            for (File file : files) {
                if (file.canRead() && file.getName().endsWith(".txt")) {
                    parserFile(fos, file);
                }
            }
        }

        //进行分词训练

        Learn lean = new Learn() ;

        lean.learnFile(sportCorpusFile) ;

        lean.saveModel(new File("model/vector.mod")) ;



        //加载测试

        Word2VEC w2v = new Word2VEC() ;

        w2v.loadJavaModel("model/vector.mod") ;

        System.out.println(w2v.distance("姚明")); ;

    }

    private static void parserFile(FileOutputStream fos, File file) throws FileNotFoundException,
                                                                   IOException {
        // TODO Auto-generated method stub
        try (BufferedReader br = IOUtil.getReader(file.getAbsolutePath(), IOUtil.UTF8)) {
            String temp = null;
            JSONObject parse = null;
            while ((temp = br.readLine()) != null) {
                parse = JSONObject.parseObject(temp);
                paserStr(fos, parse.getString("title"));
                paserStr(fos, StringUtil.rmHtmlTag(parse.getString("content")));
            }
        }
    }

    private static void paserStr(FileOutputStream fos, String title) throws IOException {
        List<Term> parse2 = ToAnalysis.parse(title) ;
        StringBuilder sb = new StringBuilder() ;
        for (Term term : parse2) {
            sb.append(term.getName()) ;
            sb.append(" ");
        }
        fos.write(sb.toString().getBytes()) ;
        fos.write("\n".getBytes()) ;
    }
}
的码云指数为
超过 的项目
加载中

评论(1)

暂无资讯

暂无问答

NLP自然语言处理中的hanlp分词实例

本篇分享的依然是关于hanlp的分词使用,文章内容分享自 gladosAI 的博客,本篇文章中提出了一个问题,hanlp分词影响了实验判断结果。为何会如此,不妨一起学习一下 gladosAI 的这篇文章。 学...

02/18 08:53
7
0
Java实例教程

Java当前日期/时间 Java将字符串转换为日期 Java当前工作目录 Java正则表达式 Java立方体 编译并执行Java Online 用于连接两个数组的Java程序 Java添加两个数组 字符串的Java字符 Java多字符...

2018/11/02 10:48
29
0
JVM -verbose参数详解(转)

转自:http://www.javaranger.com/archives/367 java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。 1.java -verbose:class 在程序运行的时候有多少类被加载!你可以用verbose...

2014/12/04 22:33
4K
1
41 Websites Every Java Developer Should Bookmark

41 Websites Every Java Developer Should Bookmark Category - Java News Oracle Technology Network - java.sun.com Well, this is the best place to start with! Being an official Java...

2014/02/21 08:49
40
0
Java学习线路图

Java学习线路图 Java教程 Java 教程 Java 简介 Java 开发环境配置 Java 基础语法 Java 对象和类 Java 基本数据类型 Java变量类型 Java修饰符 Java运算符 Java循环结构 Java分支结构 Java Num...

2018/10/10 17:41
34
0
30天Java核心基础视频教程-2019版

day00_编程入门 ----01-Java语言基础-资料文件结构1.avi ----02-Java语言基础-资料文件结构2.avi ----03-Java语言基础-入门概述 .avi ----04-Java语言基础-冯诺依曼体系结构.avi ----05-Jav...

04/06 18:23
0
0
Ubuntu 13.10 64位下安装配置 JDK 7

第一步:下载 jdk-7u45-linux-x64.tar.gz wget -c http://download.oracle.com/otn-pub/java/jdk/7u45-b18/jdk-7u45-linux-x64.tar.gz 或者直接下载:http://download.oracle.com/otn-pub/ja...

2014/03/24 18:19
2.4K
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部