Stanford Parser 使用方法
来源:互联网 发布:网络电影《罪》在哪看 编辑:程序博客网 时间:2024/05/17 08:53
一、stanford parser是什么?
stanford parser是stanford nlp小组提供的一系列工具之一,能够用来完成语法分析任务。支持英文、中文、德文、法文、阿拉伯文等多种语言。
可以从这里(http://nlp.stanford.edu/software/lex-parser.shtml#Download)下载编译好的jar包、源码、javadoc等等。
http://nlp.stanford.edu/software/parser-faq.shtml是FAQ,看一下FAQ基本就能明白很多东西。当然,你得懂英文是吧?哈哈。
二、 stanford parser怎么用?
首先 登录 http://nlp.stanford.edu/software/lex-parser.shtml#Download 下载
这里我选择下载 3.31 最新的版本
解压后文件如下
可以看到有两个Demo,这是stanfrord 大学帮助使用者理解的,那么怎么把它们导入到 exclipse 中运行呢?
首先建立文件parser ,然后右击 属性,Build path,把两个jar文件加入,就可以直接调用其中的类了。
然后把代码直接贴入
import java.io.IOException;import java.io.StringReader;import java.util.*;import edu.stanford.nlp.ling.CoreLabel;import edu.stanford.nlp.ling.HasWord;import edu.stanford.nlp.ling.Label;import edu.stanford.nlp.ling.Word;import edu.stanford.nlp.process.DocumentPreprocessor;import edu.stanford.nlp.process.Tokenizer;import edu.stanford.nlp.trees.*;import edu.stanford.nlp.parser.lexparser.LexicalizedParser;class ParserDemo2 { /** This example shows a few more ways of providing input to a parser. * * Usage: ParserDemo2 [grammar [textFile]] */ public static void main(String[] args) throws IOException { String grammar = args.length > 0 ? args[0] : "edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"; String[] options = { "-maxLength", "80", "-retainTmpSubcategories" }; LexicalizedParser lp = LexicalizedParser.loadModel(grammar, options); TreebankLanguagePack tlp = lp.getOp().langpack(); GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory(); Iterable<List<? extends HasWord>> sentences; if (args.length > 1) { DocumentPreprocessor dp = new DocumentPreprocessor(args[1]); List<List<? extends HasWord>> tmp = new ArrayList<List<? extends HasWord>>(); for (List<HasWord> sentence : dp) { tmp.add(sentence); } sentences = tmp; } else { // Showing tokenization and parsing in code a couple of different ways. String[] sent = { "This", "is", "an", "easy", "sentence", "." }; List<HasWord> sentence = new ArrayList<HasWord>(); for (String word : sent) { sentence.add(new Word(word)); } String sent2 = ("It has long been known that the rate of oxidative metabolism (the process that uses oxygen to convert food into energy) in any animal has a profound effect on its living patterns. The high metabolic rate of small animals, for example, gives them sustained power and activity per unit of weight, but at the cost of requiring constant consumption of food and water. Very large animals, with their relatively low metabolic rates, can survive well on a sporadic food supply, but can generate little metabolic energy per gram of body weight. If only oxidative metabolic rate is considered, therefore, one might assume that smaller, more active, animals could prey on larger ones, at least if they attacked in groups. Perhaps they could if it were not for anaerobic glycolysis, the great equalizer."); // Use the default tokenizer for this TreebankLanguagePack Tokenizer<? extends HasWord> toke = tlp.getTokenizerFactory().getTokenizer(new StringReader(sent2)); List<? extends HasWord> sentence2 = toke.tokenize(); List<List<? extends HasWord>> tmp = new ArrayList<List<? extends HasWord>>(); tmp.add(sentence); tmp.add(sentence2); sentences = tmp; } for (List<? extends HasWord> sentence : sentences) { Tree parse = lp.parse(sentence); parse.pennPrint(); // // // System.out.println(); GrammaticalStructure gs = gsf.newGrammaticalStructure(parse); List<TypedDependency> tdl = gs.typedDependenciesCCprocessed(); System.out.println(tdl); System.out.println(); System.out.println("The words of the sentence:"); for (Label lab : parse.yield()) { if (lab instanceof CoreLabel) { System.out.println(((CoreLabel) lab).toString("{map}")); } else { System.out.println(lab); } } System.out.println(); System.out.println(parse.taggedYield()); System.out.println(); } // This method turns the String into a single sentence using the // default tokenizer for the TreebankLanguagePack. String sent3 = "This is one last test!"; lp.parse(sent3).pennPrint(); } private ParserDemo2() {} // static methods only}
下面是运行结果:
0 0
- Stanford Parser 使用方法
- Stanford Parser (1)
- Stanford Parser (2)
- stanford parser 使用
- Stanford Dependency-Parser 分享
- stanford parser使用
- stanford parser使用参数
- stanford parser 使用教程
- stanford parser 使用
- stanford parser使用工具
- stanford parser 使用说明
- stanford-parser for C#
- NLTK+stanford parser
- Stanford Parser常见问题
- Stanford Parser使用
- Stanford Parser 下载使用
- NLP之Stanford Parser
- Stanford Parser 详细使用参考
- python模块及包的导入
- Session与进程组
- C++学习笔记 1
- SAS 汇总SQL查询宏变量的值(Sum Values Stored in Macro Variables )
- .net301跳转出现eurl.axd
- Stanford Parser 使用方法
- 李祎进
- Nginx 做负载均衡的几种轮询策略
- Android截屏源码分析
- winform下word文件与byte[]互转
- Oracle中的双引号与单引号
- HDU 4000 Fruit Ninja && HLG 1625 ikki的数字 (树状数组)
- 美俄外长举行4小时会谈 未就乌克兰问题达成任何协
- MySQL执行外部sql脚本文件的命令