1. java 同义词查询怎么做
个人觉得需要一个同义词库,当用户输入“西红柿”的时候,你先到同义词库里面去找到“西红柿”的所有同义词,然后再到数据库中去查询。
因为虽然人知道西红柿和番茄是一个东西,但电脑是不知道的,所以你需要将其关联起来,比如构建一个同义词库。
希望对你帮助。。。。。有好的想法可以HI我。。。大家可以一起讨论。。。。。
2. java 同义词查询怎么做
个人觉得需要一个同义词库,当用户输入“西红柿”的时候,你先到同义词库里面去找到“西红柿”的所有同义词,然后再到数据库中去查询。
因为虽然人知道西红柿和番茄是一个东西,但电脑是不知道的,所以你需要将其关联起来,比如构建一个同义词库。
希望对你帮助。。。。。有好的想法可以HI我。。。大家可以一起讨论。。。。。
3. java中文分词组件word怎么使用
参考如下
1、快速体验
运行项目根目录下的脚本demo-word.bat可以快速体验分词效果
用法: command [text] [input] [output]
命令command的可选值为:demo、text、file
demo
text 杨尚川是APDPlat应用级产品开发平台的作者
file d:/text.txt d:/word.txt
exit
2、对文本进行分词
移除停用词:List<Word> words = WordSegmenter.seg("杨尚川是APDPlat应用级产品开发平台的作者");
保留停用词:List<Word> words = WordSegmenter.segWithStopWords("杨尚川是APDPlat应用级产品开发平台的作者");
System.out.println(words);
输出:
移除停用词:[杨尚川, apdplat, 应用级, 产品, 开发平台, 作者]
保留停用词:[杨尚川, 是, apdplat, 应用级, 产品, 开发平台, 的, 作者]
3、对文件进行分词
String input = "d:/text.txt";
String output = "d:/word.txt";
移除停用词:WordSegmenter.seg(new File(input), new File(output));
保留停用词:WordSegmenter.segWithStopWords(new File(input), new File(output));
4、自定义配置文件
默认配置文件为类路径下的word.conf,打包在word-x.x.jar中
自定义配置文件为类路径下的word.local.conf,需要用户自己提供
如果自定义配置和默认配置相同,自定义配置会覆盖默认配置
配置文件编码为UTF-8
5、自定义用户词库
自定义用户词库为一个或多个文件夹或文件,可以使用绝对路径或相对路径
用户词库由多个词典文件组成,文件编码为UTF-8
词典文件的格式为文本文件,一行代表一个词
可以通过系统属性或配置文件的方式来指定路径,多个路径之间用逗号分隔开
类路径下的词典文件,需要在相对路径前加入前缀classpath:
指定方式有三种:
指定方式一,编程指定(高优先级):
WordConfTools.set("dic.path", "classpath:dic.txt,d:/custom_dic");
DictionaryFactory.reload();//更改词典路径之后,重新加载词典
指定方式二,Java虚拟机启动参数(中优先级):
java -Ddic.path=classpath:dic.txt,d:/custom_dic
指定方式三,配置文件指定(低优先级):
使用类路径下的文件word.local.conf来指定配置信息
dic.path=classpath:dic.txt,d:/custom_dic
如未指定,则默认使用类路径下的dic.txt词典文件
6、自定义停用词词库
使用方式和自定义用户词库类似,配置项为:
stopwords.path=classpath:stopwords.txt,d:/custom_stopwords_dic
7、自动检测词库变化
可以自动检测自定义用户词库和自定义停用词词库的变化
包含类路径下的文件和文件夹、非类路径下的绝对路径和相对路径
如:
classpath:dic.txt,classpath:custom_dic_dir,
d:/dic_more.txt,d:/DIC_DIR,D:/DIC2_DIR,my_dic_dir,my_dic_file.txt
classpath:stopwords.txt,classpath:custom_stopwords_dic_dir,
d:/stopwords_more.txt,d:/STOPWORDS_DIR,d:/STOPWORDS2_DIR,stopwords_dir,remove.txt
8、显式指定分词算法
对文本进行分词时,可显式指定特定的分词算法,如:
WordSegmenter.seg("APDPlat应用级产品开发平台", SegmentationAlgorithm.BidirectionalMaximumMatching);
SegmentationAlgorithm的可选类型为:
正向最大匹配算法:MaximumMatching
逆向最大匹配算法:ReverseMaximumMatching
正向最小匹配算法:MinimumMatching
逆向最小匹配算法:ReverseMinimumMatching
双向最大匹配算法:BidirectionalMaximumMatching
双向最小匹配算法:BidirectionalMinimumMatching
双向最大最小匹配算法:
全切分算法:FullSegmentation
最少分词算法:MinimalWordCount
最大Ngram分值算法:MaxNgramScore
9、分词效果评估
运行项目根目录下的脚本evaluation.bat可以对分词效果进行评估
评估采用的测试文本有253 3709行,共2837 4490个字符
评估结果位于target/evaluation目录下:
corpus-text.txt为分好词的人工标注文本,词之间以空格分隔
test-text.txt为测试文本,是把corpus-text.txt以标点符号分隔为多行的结果
standard-text.txt为测试文本对应的人工标注文本,作为分词是否正确的标准
result-text-***.txt,***为各种分词算法名称,这是word分词结果
perfect-result-***.txt,***为各种分词算法名称,这是分词结果和人工标注标准完全一致的文本
wrong-result-***.txt,***为各种分词算法名称,这是分词结果和人工标注标准不一致的文本
4. java调用txt文件的路径问题
把代码提出来。
一种方式:把SegCn.java中的Dictionary.txt路径改为绝对路径,例如:d:/src/Dictionary.txt(or d:\\src\\Dictionary.txt )
另一种方式:相对目录,SegCn.java和Dictionary.txt放在一个目录下。
5. java如何创建英语单词词库
导入英语词库,可以用函数调用直接导入,不过先得有对应文件
6. 如何用Java编写程序去与情感词库匹配
情感词库大吗?不大你可以先读进来用hash表存储,方便后续查找;读完后用你的词袋向量顺序匹配情感词库中的词,比如你的词袋向量w=[1,2,3,4,5],正向情感词库表中hash表数据有[1,2,3],负向情感词库hash表数据有[4],那么你可以这样写,伪代码如下:
int posCount=0;
int negCount=0;
for(int i=0;i<w.lenth;i++){
if(posHash.contain(w[i])){
posCount++;
}
if(negHash.contain(w[i])){
negCount++;
}
}
7. java怎样在线实现英语单词翻译
首先你要有一个词库,里面有单词,以及中文意思,甚至例句 等等信息吧。
其次你需要一个强大的搜索引擎,可以快速地定位到你输入的单词信息。
例如分词器 + 倒排索引。Lucene就是一个例子。当然现在还有ES也可以实现检索。
8. 在java 中怎么调用 PullWord (http://api.pullword.com/) 分词接口
先说个通知,去年加入社交数据会员的同学们,数据都已经发给你们了,希望对大家的科研有帮助。 如果没收到邮件,请和我联系。
今天一个朋友来信,说我开放的那个分词,不支持跨域访问,需要在php中加这么一句:header("Access-Control-Allow-Origin: *");。加上后,他说可以了,我其实对php完全不懂,也不知道这是啥,其实分词我也是门外汉,我这个也没有用语言模型那套东西,完全走了另外一条路。
最开始pullword分词还很初级,本质上没有分词能力,就是把一句话切成两两,三三的string。比如“清华大学”构造出:“清华,华大,清华大,华大学,清华大学” 这样几个string。很显然里面“华大学”不是一个词。但是把这个揉到聚类中,聚出类后,会发现这些“烂词”在很多性质上很特别,比如在类上的分布。比如和清华大学在类分布上的相似性,用一些简单的规则可以砍掉很多词。。请注意到目前为止,我并没有利用词典来判断“华大学”不是一个词,而是根据一些结构性信息来做出“华大学”不是一个词。这样反复redo这个“切分词->聚类->得到烂词->改进且分词的能力”过程,最后通过类的信息可以构造出一个不错的字典。后来我发现了这个方法在行业语料和电商语料上“构建”了非常大的词库,并开始组建团队开始了词库创业之旅,虽然没有融到一毛钱,唯一一个老板愿意出资5万元,占股8%,我想也没想就拒绝了。。
很快挣到了一些钱,很多搞SEO,搞爬虫的找我买词库,对他们来说一个全的词库太重要了,原因大家都懂,我就不深入解释了。词库这个生意很难维持,这是因为买了词库的人,不会再买了,因为词的变化是比较少的,新词每年也就涌现有限的一点,这个生意失败后,我也就沉寂了。
直到有一天某大佬找我,说你搞这么大词库,分词行不行?我开始琢磨有了词库怎么做分词,当时一批搞机器学习的人在我身边经常交流,有一天我突然考虑了一种方法来把一句话中可能成词的每个词都用一种能量模型来进行概率量化,常识了下效果居然很好,后来有用了一些trick来让结果更稳定,比如正则化,比如随机drop一些梯度更新等等。在我的自动评分中从80分左右提高到了95分。当然这和很多分词软件提到的准确率99.99%还有距离,但是这些分词软件大部分在人民日报语料上做的,而不是在微博和贴吧这种大众化语料上做的,所以不需要多大词库也能做到很好的效果。
后来我把这个工具拿给这个大佬单位用,他给了我一笔经费(记得是2万元)。后来他说,你这个效果不错,干脆开放给社会吧。我在微信朋友圈提了这个想法,fenng马上就赞助了第一个月的费用,那会性能还不行,需要每个月1000多元来跑这个服务。后来陆续不少人赞助,直到美团云给了3.7万元,才结束了四处乞讨的生活。
快毕业的时候网络API store把pullword收录进去,目前从网络这个渠道已经累计调用3200万次,现在每天的请求也过200万次,有时候能达到400多万次,成为了一个服务社会的小产品。
后来有人问我为什么你不把语言模型和能量方程的方法结合起来,也许更好呢?语言模型的方法我觉得已经有人走的很深入了,用一个特别语言的路子解决语言问题可能并不对。而用一个不是那么语言的路子解决语言问题也不一定对,但起码值得探索。
pullword可能是我博士生涯对社会最重要的贡献,希望能为社会的进步出一份小小的力量。