use of org.ansj.domain.Result in project ansj_seg by NLPchina.
the class DicLibraryTest method delete.
/**
* 删除关键词
*/
@Test
public void delete() {
insertTest();
DicLibrary.delete(DicLibrary.DEFAULT, "增加新词");
Result parse = DicAnalysis.parse("这是用户自定义词典增加新词的例子");
System.out.println(parse);
boolean flag = false;
for (Term term : parse) {
flag = flag || "增加新词".equals(term.getName());
}
Assert.assertFalse(flag);
}
use of org.ansj.domain.Result in project ansj_seg by NLPchina.
the class FilterRecognitionTest method test.
@Test
public void test() {
String str = "我的小鸡鸡丢了!";
Result parse = ToAnalysis.parse(str);
System.out.println(parse);
StopRecognition fitler = new StopRecognition();
fitler.insertStopNatures("uj");
fitler.insertStopNatures("ul");
fitler.insertStopNatures("null");
fitler.insertStopWords("我");
fitler.insertStopRegexes("小.*?");
Result modifResult = parse.recognition(fitler);
for (Term term : modifResult) {
Assert.assertNotSame(term.getNatureStr(), "uj");
Assert.assertNotSame(term.getNatureStr(), "ul");
Assert.assertNotSame(term.getNatureStr(), "null");
Assert.assertNotSame(term.getName(), "我");
Assert.assertNotSame(term.getName(), "小鸡鸡");
}
System.out.println(modifResult);
}
use of org.ansj.domain.Result in project ansj_seg by NLPchina.
the class NlpDemo method main.
public static void main(String[] args) throws IOException {
List<String> value = new ArrayList<String>();
// value.add("《屌丝男士》是搜狐视频自制节目《大鹏嘚吧嘚》除“大鹏剧场秀“之外的第二个衍生品牌,是独立于《大鹏嘚吧嘚》每周播出的迷你剧集,第一季于2012年10月10日首播,每周三更新.该片由赵本山第53位弟子,网络第一主持人大鹏(董成鹏)导演并主演,是一部向德国电视剧《屌丝女士》致敬的喜剧短片.大鹏在片中饰演现实生活中的各种男性,而大鹏的各位明星好友,也在片中有惊喜表演.第一季客串明星:柳岩,李响,刘心,何云伟,李菁,如花李健仁,李亚红,乔衫,修睿,赵铭,于莎莎,司马南,不加V,沈腾等");
// value.add("二次元乳量大不一定是王道");
value.add("洁面仪配合洁面深层清洁毛孔 清洁鼻孔面膜碎觉使劲挤才能出一点点皱纹 脸颊毛孔修复的看不见啦 草莓鼻历史遗留问题没辙 脸和脖子差不多颜色的皮肤才是健康的 长期使用安全健康的比同龄人显小五到十岁 28岁的妹子看看你们的鱼尾纹");
// value.add("搜索日志是理解互联网用户信息的宝贵资源。本文基于搜索日志的特点,提出一种双层识别模型方法识别计算机领域查询串。第一层模型采用贝叶斯模型基于领域词库对查询串进行识别,可以达到较高的准确率,由于日志中查询串长度有限,信息量不足等特点导致一些查询串无法召回;针对如上情况我们提出补充信息维度,即在此基础上对其进行第二层模型训练,主要方法是依据查询串点击的URL信息进行可信度训练,依据查询串召回的URL信息进行行业可信度训练计算,以达到召回了更多计算机领域查询串的目的。实验结果表明,双层模型识别后结果不但在准确率上得到保障,并比第一层模型的召回率提高了20个百分点,达到了78%的召回率和96%的精准率。此方法迅速而准确的识别出计算机类别查询串,对其他领域查询识别及查询意图分类具有借鉴意义。");
// value.add("贾瑞听了,魂不附体,只说:“好侄儿,只说没有见我,明日我重重的谢你。”贾蔷道:“你若谢我,放你不值什么,只不知你谢我多少?况且口说无凭,写一文契来。”贾瑞道:“这如何落纸呢?\"贾蔷道:“这也不妨,写一个赌钱输了外人帐目,借头家银若干两便罢。”贾瑞道:“这也容易.只是此时无纸笔。”贾蔷道:“这也容易。”说罢翻身出来,纸笔现成,拿来命贾瑞写.他两作好作歹,只写了五十两,然后画了押,贾蔷收起来.然后撕逻贾蓉.贾蓉先咬定牙不依,只说:“明日告诉族中的人评评理。”贾瑞急的至于叩头.贾蔷作好作歹的,也写了一张五十两欠契才罢.贾蔷又道:“如今要放你,我就担着不是.老太太那边的门早已关了,老爷正在厅上看南京的东西,那一条路定难过去,如今只好走后门.若这一走,倘或遇见了人,连我也完了.等我们先去哨探哨探,再来领你.这屋你还藏不得,少时就来堆东西.等我寻个地方。”说毕,拉着贾瑞,仍熄了灯,出至院外,摸着大台矶底下,说道:“这窝儿里好,你只蹲着,别哼一声,等我们来再动。”说毕,二人去了");
// value.add("接了个小私活,帮一个初中高中连读的中学做一个学生日常考评系统,就是记录迟到、早退、违纪什么的一个系统,由班主任管理记录,还要有什么表扬榜的。对于报价不了解,不知道该报多少,大家说说看,多少合适?");
// value.add("若雅虎关闭了,我就不访问网站了!");
// 学习机器是有状态的
long start = System.currentTimeMillis();
// 此对象可以公用一个.随着语料的增多可以学习新的词语
LearnTool learn = new LearnTool();
// 关闭人名识别
learn.isAsianName = true;
// 关闭外国人名识别
learn.isForeignName = true;
for (String string : value) {
Result parse = new NlpAnalysis().setLearnTool(learn).parseStr(string);
System.out.println(parse);
}
System.out.println("这次训练已经学到了: " + learn.count + " 个词!");
System.out.println(System.currentTimeMillis() - start);
System.out.println(learn.getTopTree(100));
}
use of org.ansj.domain.Result in project ansj_seg by NLPchina.
the class Test method main.
public static void main(String[] args) throws Exception {
// 构造一个用户词典
Forest forest = Library.makeForest("library/default.dic");
forest = new Forest();
// 增加新词,中间按照'\t'隔开
DicLibrary.insert(DicLibrary.DEFAULT, "ansj中文分词", "userDefine", 1000);
Result terms = ToAnalysis.parse("我觉得Ansj中文分词是一个不错的系统!我是王婆!");
System.out.println("增加新词例子:" + terms);
// 删除词语,只能删除.用户自定义的词典.
DicLibrary.delete(DicLibrary.DEFAULT, "ansj中文分词");
terms = ToAnalysis.parse("我觉得ansj中文分词是一个不错的系统!我是王婆!");
System.out.println("删除用户自定义词典例子:" + terms);
// 歧义词
Value value = new Value("济南下车", "济南", "n", "下车", "v");
System.out.println(ToAnalysis.parse("我经济南下车到广州.中国经济南下势头迅猛!"));
AmbiguityLibrary.insert(AmbiguityLibrary.DEFAULT, value);
System.out.println(ToAnalysis.parse("我经济南下车到广州.中国经济南下势头迅猛!"));
// 多用户词典
String str = "神探夏洛克这部电影作者.是一个dota迷";
System.out.println(ToAnalysis.parse(str));
// 两个词汇 神探夏洛克 douta迷
Forest dic1 = new Forest();
Library.insertWord(dic1, new Value("神探夏洛克", "define", "1000"));
Forest dic2 = new Forest();
Library.insertWord(dic2, new Value("dota迷", "define", "1000"));
System.out.println(ToAnalysis.parse(str, dic1, dic2));
}
use of org.ansj.domain.Result in project ansj_seg by NLPchina.
the class NatureRecognition method guessNature.
/**
* 通过规则 猜测词性
*
* @param word
* @return
*/
public static TermNatures guessNature(String word) {
String nature = null;
SmartForest<String[]> smartForest = SUFFIX_FOREST;
int len = 0;
for (int i = word.length() - 1; i >= 0; i--) {
smartForest = smartForest.get(word.charAt(i));
if (smartForest == null) {
break;
}
len++;
if (smartForest.getStatus() == 2) {
nature = smartForest.getParam()[0];
} else if (smartForest.getStatus() == 3) {
nature = smartForest.getParam()[0];
break;
}
}
if ("nt".equals(nature) && (len > 1 || word.length() > 3)) {
return TermNatures.NT;
} else if ("ns".equals(nature)) {
return TermNatures.NS;
} else if (word.length() < 5) {
Result parse = ToAnalysis.parse(word);
for (Term term : parse.getTerms()) {
if ("nr".equals(term.getNatureStr())) {
return TermNatures.NR;
}
}
} else if (ForeignPersonRecognition.isFName(word)) {
return TermNatures.NRF;
}
return TermNatures.NW;
}
Aggregations