word分词

利用word分词来对文本进行词频统计

帅比萌擦擦* 提交于 2020-02-28 13:05:35
word分词 中的 org.apdplat.word.WordFrequencyStatistics 类提供了词频统计的功能 命令行脚本的调用方法如下: 将需要统计词频的文本写入文件:text.txt chmod +x wfs.sh & wfs.sh -textFile=text.txt -statisticsResultFile=statistics-result.txt 程序运行结束后打开文件statistics-result.txt查看词频统计结果 在程序中的调用方法如下: //词频统计设置 WordFrequencyStatistics wordFrequencyStatistics = new WordFrequencyStatistics(); wordFrequencyStatistics.setRemoveStopWord(false); wordFrequencyStatistics.setResultPath("word-frequency-statistics.txt"); wordFrequencyStatistics.setSegmentationAlgorithm(SegmentationAlgorithm.MaxNgramScore); //开始分词 wordFrequencyStatistics.seg("明天下雨,结合成分子

word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器分词效果评估

有些话、适合烂在心里 提交于 2019-12-07 21:12:07
word分词是一个Java实现的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。 能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名等未登录词。 同时提供了Lucene、Solr、ElasticSearch插件。 word分词器分词效果评估 主要评估下面7种分词算法: 正向最大匹配算法:MaximumMatching 逆向最大匹配算法:ReverseMaximumMatching 正向最小匹配算法:MinimumMatching 逆向最小匹配算法:ReverseMinimumMatching 双向最大匹配算法:BidirectionalMaximumMatching 双向最小匹配算法:BidirectionalMinimumMatching 双向最大最小匹配算法:BidirectionalMaximumMinimumMatching 所有的双向算法都使用 ngram 来消歧,分词效果评估分别评估 bigram 和 trigram 。 评估采用的测试文本有253 3709行,共2837 4490个字符, 标准文本和测试文本 一行行对应,标准文本中的词以空格分隔,评估标准为严格一致,评估核心代码如下: /** * 分词效果评估 * @param resultText 实际分词结果文件路径 * @param standardText

基于word分词提供的文本相似度算法来实现通用的网页相似度检测

守給你的承諾、 提交于 2019-12-05 13:52:52
实现代码: 基于word分词提供的文本相似度算法来实现通用的网页相似度检测 运行结果: 检查的博文数:128 1、检查博文:192本软件著作用词分析(五)用词最复杂99级,相似度分值:Simple=0.968589 Cosine=0.955598 EditDistance=0.916884 EuclideanDistance=0.00825 ManhattanDistance=0.001209 Jaccard=0.859838 JaroDistance=0.824469 JaroWinklerDistance=0.894682 SørensenDiceCoefficient=0.924638 SimHashPlusHammingDistance=0.976563 博文地址1: http://my.oschina.net/apdplat/blog/388816 博文地址2: http://yangshangchuan.iteye.com/blog/2194214 2、检查博文:APDPlat的系统启动和关闭流程剖析,相似度分值:Simple=0.837996 Cosine=0.711649 EditDistance=0.55001 EuclideanDistance=0.003669 ManhattanDistance=0.000992 Jaccard=0.549422

实现JDK没有提供的AtomicFloat

喜夏-厌秋 提交于 2019-12-02 21:26:41
Java8内置了强大的多核支持,我们在处理数据的时候,如果不充分利用多核,都好不意思跟老板打招呼。 我们经常会使用AtomicInteger来做计数器,如下所示: List<String> words = Files.readAllLines(Paths.get("src/main/resources/dic.txt")); AtomicInteger i = new AtomicInteger(); words.parallelStream().forEach(word -> { //获取word的同义词、反义词以及相关词 //...... LOGGER.info("进度:" + total + "/" + i.incrementAndGet() + " 来自线程:" + Thread.currentThread()); }); 在这段代码中,我们需要注意两点,一是parallelStream,二是变量i。 parallelStream的使用表示forEach中的代码段有可能会在不同线程中并发执行,因此变量i的incrementAndGet方法要保证是原子操作,否则计数器的数据就可能会出错。 没啥问题,一切都还很美好,so far so nice。 有一天,我们的需求复杂了,我们需要的计数器不仅仅 只是 +1,而是要支持小数,如2.5,3.1等等,这有什么大不了的,我们把

superword开源项目中的定义相似规则

落爺英雄遲暮 提交于 2019-11-28 20:29:34
两个词之间的关系有同义、反义、近义(有多近?)、相关(有多相关?)等等。 我们如何来判断两个词之间的关系呢?利用计算机能自动找出这种关系吗?当然可以,不仅能找出来,而且还能量化 出 有多近和有多相关。 本文描述了 superword 开源项目中的 定义相似规则 ,利用词的定义计算词和词之间的相似性。词的定义使用的是韦氏词典,同时也支持牛津词典。相似性算法使用的是 word分词 提供的10大相似性算法。 定义相似规则 主要包括以下6步: 1、获取要计算的词的定义: String wordDefinition = MySQLUtils.getWordDefinition(word, WordLinker.Dictionary.WEBSTER.name()); 2、获取分级词汇,分级词汇的具体定义见 这里 : Set<Word> words = (Set<Word>)application.getAttribute("words_"+request.getAttribute("words_type")); 3、获取分级词汇的定义,代码见 这里 : List<String> allWordDefinition = MySQLUtils.getAllWordDefinition(WordLinker.Dictionary.WEBSTER.name(), words); 4、从 word分词

Java应用系统中自动实时检测资源文件内容变化

孤人 提交于 2019-11-28 14:44:26
在Java应用系统中,我们经常需要配置文件来定制系统行为,这些配置文件可能包括:类路径下的文件和文件夹、非类路径下的绝对路径和相对路径的文件和文件夹,在分布式环境中,还需要通过HTTP从统一集中的Web服务器中获得配置信息,如何对这些配置信息进行自动加载并实时检测变化呢? Java分布式中文分词组件 - word分词 已经实现了这个功能,我们看看是如何实现的: package org.apdplat.word.util; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file

给LUKE增加word分词器

纵然是瞬间 提交于 2019-11-28 14:07:20
word分词是一个Java实现的分布式中文分词组件 1、下载 http://luke.googlecode.com/files/lukeall-4.0.0-ALPHA.jar (国内不能访问) 2、下载并解压 Java中文分词组件word-1.0-bin.zip 3、将解压后的 Java中文分词组件word-1.0-bin/word-1.0 文件夹里面的4个jar包解压到当前文件夹,用压缩解压工具如winrar打开lukeall-4.0.0-ALPHA.jar,将当前文件夹里面除了.jar、.bat、.html文件外的其他所有文件拖到lukeall-4.0.0-ALPHA.jar里面 4、执行命令 java -jar lukeall-4.0.0-ALPHA.jar 启动luke,在Search选项卡的Analysis里面就可以选择 org.apdplat.word.lucene.ChineseWordAnalyzer 分词器了 5、在Plugins选项卡的Available analyzers found on the current classpath里面也 可以选择 org.apdplat.word.lucene.ChineseWordAnalyzer 分词器 下载已经集成好的Luke插件: lukeall-4.0.0-ALPHA-with-word-1.0.jar

利用word分词提供的文本相似度算法来辅助记忆英语单词

99封情书 提交于 2019-11-27 14:25:16
本文实现代码: 利用word分词提供的文本相似度算法来辅助记忆英语单词 本文使用的英语单词囊括了几乎所有的考纲词汇共18123词: /** * 考纲词汇 * @return */ public static Set<Word> getSyllabusVocabulary(){ return get("/word_primary_school.txt", "/word_junior_school.txt", "/word_senior_school.txt", "/word_university.txt", "/word_new_conception.txt", "/word_ADULT.txt", "/word_CET4.txt", "/word_CET6.txt", "/word_TEM4.txt", "/word_TEM8.txt", "/word_CATTI.txt", "/word_GMAT.txt", "/word_GRE.txt", "/word_SAT.txt", "/word_BEC.txt", "/word_MBA.txt", "/word_IELTS.txt", "/word_TOEFL.txt", "/word_TOEIC.txt", "/word_考 研.txt"); } 启动程序后控制台输出: -------------------------------

利用word分词通过计算词的语境来获得相关词

北战南征 提交于 2019-11-27 14:25:02
我们如何通过计算词的 语境 来获得 相关词 呢? 语境 的定义是: 在一段文本中,任意一个词的语境由它的 前N个词和后N个词 组成。 相关词 的定义是: 如果两个词的语境越相似,那么这两个词就越相似,也就越相关。 算法由两个步骤组成: 1、从大规模语料库中计算每一个词的语境 ,并使用 词向量 来表示语境。 实现代码 2、把求两个词的相似度的问题 转换为 求这两个词的 语境 的 相似度 的问题。通过计算语境的相似度,就可得到词的相似度,越相似的词就越相关。 实现代码 关于相似度 计算,word分词还提供了很多种算法, 参考这里 使用方法如下: 1、使用 word分词 内置 语料库: 运行 word分词 项目根目录下的脚本 demo-word-vector-corpus.bat 或 demo-word-vector-corpus.sh 2、使用自己的文本内容: 运行 word分词 项目根目录下的 脚本 demo-word-vector-file.bat 或 demo-word-vector-file.sh 由于语料库很大,所以启动的时间会很长,请耐心等待,下面以例子来说明: 比如我们想分析 兰州 这个词的相关词有哪些,我们运行脚本 demo-word-vector-corpus.sh ,启动成功之后命令行提示: 开始初始化模型 模型初始化完成 可通过输入命令sa=cos来指定相似度算法

Java中文分词组件

前提是你 提交于 2019-11-27 09:42:43
Java分布式中文分词组件 - word分词 word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名等未登录词。能通过自定义配置文件来改变组件行为,能自定义用户词库、自动检测词库变化、支持大规模分布式环境,能灵活指定多种分词算法,能使用refine功能灵活控制分词结果,还能使用词性标注、同义标注、反义标注、拼音标注等功能。同时还无缝和Lucene、Solr、ElasticSearch、Luke集成。注意:word1.3需要JDK1.8 API在线文档: word 1.0 API word 1.1 API word 1.2 API 编译好的jar包下载(包含依赖): word 1.0 word 1.1 word 1.2 Maven依赖: 在pom.xml中指定dependency,可用版本有1.0、1.1、1.2: <dependencies> <dependency> <groupId>org.apdplat</groupId> <artifactId>word</artifactId> <version>1.2</version> </dependency> </dependencies> 分词使用方法: 1、快速体验