Stanford parser入门2:中文句法路径提取
2017-10-09 09:44
183 查看
1.代码
//调用stanford parser进行句法分析,提取节点间路径
import java.io.IOException;
import java.util.List;
import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
import edu.stanford.nlp.trees.Tree;
public class ParserTest2 {
public static void main(String[] args) throws IOException {
String grammar = "edu/stanford/nlp/models/lexparser/chineseFactored.ser.gz";
// String grammar = "edu/stanford/nlp/models/lexparser/chinesePCFG.ser.gz";
String[] options = {};
LexicalizedParser lp = LexicalizedParser.loadModel(grammar, options);
String line = "质量 太 差 了";
String word1 = "质量";
String word2 = "差";
Tree parse = lp.parse(line);
parse.pennPrint();
List<Tree> nodelist = parse.preOrderNodeList();
Tree node1=parse,node2=parse;
for(Tree nodet:nodelist)
{
if(nodet.label().toString().equals(word1)){
node1 = nodet;
//System.out.println(nodet.label().toString());
}
if(nodet.label().toString().equals(word2)){
node2 = nodet;
//System.out.println(nodet.label().toString());
}
}
List<Tree> nodepath = parse.pathNodeToNode(node1, node2);
String nodepathstr="";
for(Tree nodet:nodepath)
{
if(nodet!=null)
nodepathstr += nodet.label().toString() + ",";
}
System.out.println(nodepathstr);
System.out.println("---end---");
}
}
2.结果
(ROOT
(IP
(IP
(NP (NN 质量))
(VP
(ADVP (AD 太))
(VP (VA 差) (AS 了))))
(PU ,)
(CP
(IP
(VP (VV 用)
(VP
(ADVP (AD 不))
(PP (P 到)
(NP (NN 半天)))
(ADVP (AD 就))
(VP (VE 没)
(NP (NN 电))))))
(SP 了))))
质量,NN,NP,IP,VP,VP,VA,差,
---end---
3.参考资料
https://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/trees/Tree.html https://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/ling/Label.html
//调用stanford parser进行句法分析,提取节点间路径
import java.io.IOException;
import java.util.List;
import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
import edu.stanford.nlp.trees.Tree;
public class ParserTest2 {
public static void main(String[] args) throws IOException {
String grammar = "edu/stanford/nlp/models/lexparser/chineseFactored.ser.gz";
// String grammar = "edu/stanford/nlp/models/lexparser/chinesePCFG.ser.gz";
String[] options = {};
LexicalizedParser lp = LexicalizedParser.loadModel(grammar, options);
String line = "质量 太 差 了";
String word1 = "质量";
String word2 = "差";
Tree parse = lp.parse(line);
parse.pennPrint();
List<Tree> nodelist = parse.preOrderNodeList();
Tree node1=parse,node2=parse;
for(Tree nodet:nodelist)
{
if(nodet.label().toString().equals(word1)){
node1 = nodet;
//System.out.println(nodet.label().toString());
}
if(nodet.label().toString().equals(word2)){
node2 = nodet;
//System.out.println(nodet.label().toString());
}
}
List<Tree> nodepath = parse.pathNodeToNode(node1, node2);
String nodepathstr="";
for(Tree nodet:nodepath)
{
if(nodet!=null)
nodepathstr += nodet.label().toString() + ",";
}
System.out.println(nodepathstr);
System.out.println("---end---");
}
}
2.结果
(ROOT
(IP
(IP
(NP (NN 质量))
(VP
(ADVP (AD 太))
(VP (VA 差) (AS 了))))
(PU ,)
(CP
(IP
(VP (VV 用)
(VP
(ADVP (AD 不))
(PP (P 到)
(NP (NN 半天)))
(ADVP (AD 就))
(VP (VE 没)
(NP (NN 电))))))
(SP 了))))
质量,NN,NP,IP,VP,VP,VA,差,
---end---
3.参考资料
https://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/trees/Tree.html https://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/ling/Label.html
相关文章推荐
- Stanford parser入门1:单句中文句法分析
- stanford parser中文句法分析时注意的问题
- TensorFlow 中文资源全集,官方网站,安装教程,入门教程,实战项目,学习路径。
- TensorFlow 中文资源精选,官方网站,安装教程,入门教程,实战项目,学习路径。
- stanford parser 中文句法分析
- stanford parser 中文句法分析
- TensorFlow 中文资源精选,官方网站,安装教程,入门教程,实战项目,学习路径
- TensorFlow 中文资源精选,官方网站,安装教程,入门教程,实战项目,学习路径。
- (C#)常用类(文件名提取、文件路径提取、后缀名提取、数字转中文、数字转
- 解决OpenCV的imread函数无法读取中文路径和中文命名的文件的问题。
- HttpClient4入门应用----抓取网站内容(解决中文乱码)
- 值得收藏 | 关于机器学习,这可能是目前最全面最无痛的入门路径和资源!
- jQuery中文入门指南,翻译加实例,jQuery的起点教程
- 入门经典-习题7-1,109-uva208消防车-DFS,并查集,打印路径,利用set保存边,字典序,STL⭐⭐⭐⭐⭐复杂度:3
- linux kali 入门0x00--中文输入法
- Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN
- 从SAPI 5.1中提取中文发音引擎
- MC新手入门(二)------路径
- ASP.NET Core 中文文档 第二章 指南(4.1)ASP.NET Core MVC 与 Visual Studio 入门
- JSP页面显示含有中文名称(中文路径)出错?