java通过搜狗词库过滤指定词性,JAVA通过搜狗词库过滤指定词性
http://www.0x32.cn/html/y2010/563.html
在测试过程中需要从文本中拿到指定词性的词,比如名词或者动词,各种词性的定义我们可以依靠搜狗的语料库来实现,从搜狗实验室下载到词库后解压可以看到搜索词库的格式:
图中的数据表示:词、在互联网的词频、然后是词性。
看这个东西就可以一目了然,多种词性,包括平时很少会用到得。
下面我们需要判断一个从文本中分出的词是否为名词或者动词,就需要读取这个搜狗词库,大小在2Mb左右,结果返回一个布尔就可以了。
我们期望调用的形式:
FreqWordsHandler.isFreqWords(word);
word表示需要判断的词,这句代码会返回一个布尔值,FreqWordsHandler是需要我们实现的一个静态的类,代码如下:
/**
*
*/
package org.nsir.terms;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* 用于得到指定词性的词
*
* @author HideHai
*
*/
public class FreqWordsHandler {
private static List freqWordsList = null;
public static boolean isFreqWords(String words) {
// System.out.println(words);
for (String s : freqWordsList) {
if (s.equals(words)) {
return true;
}
}
return false;
}
public static List getFreqWords(String path, String type) {
List reList = new ArrayList();
File file = new File(path);
try {
FileReader reader = new FileReader(file);
BufferedReader buffer = new BufferedReader(reader);
String tempStr = "";
while ((tempStr = buffer.readLine()) != null) {
if (tempStr.contains(",")) {
String[] freqWors = tempStr.split("");
String words = freqWors[0];
String wordType = freqWors[2];
String[] freqType = wordType.split(",");
for (String splittype : freqType) {
if (splittype.equals("N")
|| splittype.equals("V")
//|| splittype.equals("ADV")
//|| splittype.equals("ADJ")
) {
reList.add(words);
}
}
} else if (tempStr.contains("IDIOM")) {
String[] freqWors = tempStr.split("");
reList.add(freqWors[0]);
}
}
buffer.close();
reader.close();
return reList;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
static {
if (freqWordsList == null) {
freqWordsList = getFreqWords(
"x:\Freq\SogouLabDic.dic", "N");
}
}
public static void main(String[] args) {
isFreqWords("稗官小说");
}
}
这样如果传入的词在词库中标记为名词或者动词,我们就返回一个True。
java通过搜狗词库过滤指定词性,JAVA通过搜狗词库过滤指定词性相关推荐
- 网站发帖敏感字java_网站敏感词过滤的实现(附敏感词库)
现在基本上所有的网站都需要设置敏感词过滤,z似乎已经成了一个网站的标配,如果你的网站没有,或者你没有做相应的处理,那么小心相关部门请你喝茶哦. 最近在调研Java web网站的敏感词过滤的实现,网上找 ...
- java实现敏感词过滤算法DFA并忽略敏感词中的特殊字符
参考文章:https://blog.csdn.net/chenssy/article/details/26961957 补充说明: 1.具体的DFA介绍参考原文章,此处只是补充了文章中没有介绍的点以及 ...
- 敏感词过滤算法 为内容保驾护航 Java/.Net/C++/c/Python等语言是如何进行敏感词打码限制的 高效防范违规内容
有人的地方,就有江湖,有输入框的地方,就有注入风险!有输入框的地方,就有敏感词!敏感词就像一个平台杀手,可能直接导致平台被封锁! 敏感词是一个APP.一个网站.一个内容平台的"杀手" ...
- 从搜狗获取行业词库并转换成jieba可用的词库文件
从搜狗获取行业词库并转换成jieba可用的词库文件 从搜狗获取行业词库 利用网站在线转换 利用Django建立网站 从搜狗获取行业词库 搜狗官方的词库地址 下载下来后是.scel扩展名的文件 利用网站 ...
- JAVA开源中文分词器Ansj(依赖注入+调用方式+停词器)
Java有11大开源中文分词器,分别是word分词器,Ansj分词器,Stanford分词器,FudanNLP分词器,Jieba分词器,Jcseg分词器,MMSeg4j分词器,IKAnalyzer分词 ...
- php怎么过滤关键字,PHP屏蔽过滤指定关键字的方法,php屏蔽过滤关键字_PHP教程...
PHP屏蔽过滤指定关键字的方法,php屏蔽过滤关键字 本文实例讲述了PHP屏蔽过滤指定关键字的方法.分享给大家供大家参考.具体分析如下: 实现思路: 一.把关键字专门写在一个文本文件里,每行一个,数量 ...
- guava 集合转换_Guava的Collections2:过滤和转换Java集合
guava 集合转换 Groovy的便利之一是能够通过Groovy的闭包支持轻松地对集合执行过滤和转换操作. Guava将对集合的过滤和转换引入标准Java,这是本文的主题. Guava的Collec ...
- Guava的Collections2:过滤和转换Java集合
Groovy的便利之一是能够通过Groovy的闭包支持轻松地对集合执行过滤和转换操作. Guava将对集合的过滤和转换引入标准Java,这是本文的主题. Guava的Collections2类具有两个 ...
- jsp java el表达式_jsp相关笔记,el表达式、jsp标签库(jstl)
一.jsp基础部分 1.介绍 概念 JSP(Java Server Page),java服务器端页面,可以定义html标签,又可以定义java代码. 原理 JSP本质上就是一个Servlet 2.JS ...
最新文章
- Palo Alto 亚太区首席安全官:未来中国五大安全问题突出...
- NB-IoT,你真是太让我失望了
- 关于__VA_ARGS__的说明
- Delphi资源文件的应用(转)
- 1720: 交换瓶子
- Git 使用,命令说明
- Winsock编程补遗
- 生死狙击服务器名字怎么修改器,生死狙击修改金币方法
- 装饰者模式(Decorator pattern)
- 使用SVG绘制湖南地图
- R软件本地安装GitHub下载的R包
- springboot 整合 j2cache
- coodblock调试_codeblocks怎么调试?
- python爬虫学习(2) —— 爬一下ZOL壁纸
- ipad iphone开发_如何在iPhone或iPad上恢复已删除的照片
- 获取矩阵内非零元素坐标
- 2019年 十款Mac上必备的实用软件列表
- 基于BootStrap仿淘宝星星商品评价案例
- 千锋逆战班学习第二十五天
- designed for 和designed to 区别