当前位置: 首页 > 软件库 > 程序开发 > 数学计算 >

Word2VEC_Java

word2vec的Java实现
授权协议 Apache
开发语言 Java
所属分类 程序开发、 数学计算
软件类型 开源软件
地区 不详
投 递 者 孔厉刚
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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.下载Word2Vec(Java版地址) 2.根据自己情况准备语料库(搜狗2012全网新闻数据) 3.处理语料库。 以搜狗2012全网新闻数据为例: (1)首先处理掉HTML标签并转为utf8编码格式:cat news_tensite_xml.dat | iconv -f gb18030 -t utf-8 -c | grep "<conte

  • 软件简介 Word2VEC java版本的一个实现。 示例代码: package com.kuyun.document_class; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import jav

  • 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.

  • Word2VEC_java word2vec java版本的一个实现 有人抱怨没有测试代码。我工作中用到。写了个例子正好发这里。大家领会下精神把 package com.kuyun.document_class; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; imp

  • Word2VEC_java word2vec java版本的一个实现 有人抱怨没有测试代码。我工作中用到。写了个例子正好发这里。大家领会下精神把 package com.kuyun.document_class; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; imp

  • Word2VEC_java word2vec java版本的一个实现 有人抱怨没有测试代码。我工作中用到。写了个例子正好发这里。大家领会下精神把 package com.kuyun.document_class; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; imp

  • 第一步,读取语料(已经分过词),把每个词出现的频率放在wordMap中。 private void readVocab(File file) throws IOException { MapCount<String> mc = new MapCount<>(); try (BufferedReader br = new BufferedReader(new InputStreamR

  • 前言 在学习了word2vec的牛逼后,开始进入实战,解决问题了。 实战 添加依赖 com.medallia.word2vec word2vecjava_2.11 1.0-ALLENAI-4 训练模型 由于语料比较小,各项参数,都调小了。 @Service @Slf4j public class Word2vecService { public Word2VecModel train() { tr

  • 這里只介紹如何使用,不介紹原理(想要了解原理的看這里) 1.下載Word2Vec(Java版地址) 2.根據自己情況准備語料庫(搜狗2012全網新聞數據) 3.處理語料庫。 以搜狗2012全網新聞數據為例: (1)首先處理掉HTML標簽並轉為utf8編碼格式:cat news_tensite_xml.dat | iconv -f gb18030 -t utf-8 -c | grep "" > co

  • 数据集:data/souhu下面的所有文件夹的所有txt文件 代码: import os import re import sys import jieba import torch from gensim.models import Word2Vec, word2vec import numpy as np import jieba.analyse import matplotlib.pyplo

 相关资料
  • 问题内容: 标准api不包含AtomicBitSet实现。我可以将自己放在AtomicIntegerArray之上,但也不要这样做。 是否有人知道根据与Apache 2兼容的许可证发布的现有实现?我只需要基本操作即可设置和检查位。 编辑: 代码是性能和内存的关键,因此我想避免同步或每个标志使用整数(如果可能)。 问题答案: 我将使用AtomicIntegerArray,并且每个整数将使用32个标志

  • 问题内容: SCIM是Google,Salesforce,Ping Identity..etc等提出的用于用户配置的新标准。是否存在现有的Java实现来支持此功能? 问题答案: WSO2 Charon是另一个基于Java的SCIM实现。 http://www.slideshare.net/HasiniG/wso2-charon

  • 我正在使用IBM JRE,我想为我的密码实现PBEWithSHAAnd128BitRC4算法,所以我应该为我的SecretKeyFactory和SecretKeySpec使用哪种算法,下面是我从Provider.getInfo()方法为IBMJCE Provider获得的支持algos的密钥。 多谢了。

  • 我是新来的,所以请原谅我的小错误。我目前正在做一个我的小项目,看到我处理长度在四万或更多的数字。 我目前正在使用BigInteger来处理这些值,我需要一些执行速度更快的东西。我读到BigInteger在其实现中使用了一个整数数组,我需要知道的是BigInteger是使用这个数组中的每个索引来表示每个小数点,就像1-9一样,还是使用了更有效的方法。 我这么问是因为我已经想到了一个使用位操作的实现,

  • 标准api不包括原子位集实现。我可以在AtomicIntegerArray上滚动我自己的,但我不太喜欢。 有人知道在与Apache 2兼容的许可下发布的现有实现吗?我只需要基本操作来设置和检查位。 编辑: 代码对性能和内存都很关键,所以如果可能的话,我希望避免同步或每个标志一个整数。

  • 我是Qpid的新手,我正在尝试设置环境。在阅读了大量文档之后,我设法下载了Apache Qpid并在localhost:8080中运行它 我还安装了maven、cmake。现在我正在尝试在Eclipse中启动一个新的maven项目以发送一条简单的消息。我根本不熟悉API接口和概念。我必须在我的项目解决方案中包含任何类型的jar吗?或者我如何使用服务器? 我也找到了这个https://github.

  • 问题内容: 是否有针对JAX-WS RI,Axis2,CXF或其他工具包的WS-Discovery规范的任何实现? 问题答案: 我知道的唯一Java实现是以下一种:http : //code.google.com/p/java-ws-discovery/ Wiki中有JAX-WS示例。

  • 问题内容: 是否有经过验证的Java Pair类实现? 我的意思是随时可用,被广泛接受并经过测试,也许是更广泛的库(例如Apache Commons或Guava)的一部分。 问题答案: 是的,看看Apache Commons 。 尽量少用, 如果在所有 ; 并没有真正传达元素之间的内容或关系的任何信息。 (该类被故意遗漏在标准Java API中。)