NLP之Stanford Parser using NLTK

简介: 因为官网的使用的很不方便,各个参数没有详细的说明,也查不到很好的资料了。所以决定使用python配合NLTK来获取Constituency Parser和Denpendency Parser。

因为官网的使用的很不方便,各个参数没有详细的说明,也查不到很好的资料了。所以决定使用python配合NLTK来获取Constituency Parser和Denpendency Parser。

一、安装python

操作系统win10
jdk(版本1.8.0_151)
anaconda(版本4.4.0),python(版本3.6.1)

二、安装NLTK

pip install nltk

安装完成之后进入python命令中,输入

import nltk
nltk.download()

如图所示:
这里写图片描述
然后就会弹出一个框,具体我目前也不是很懂,大概就是提供的一些资源包,所以我就全部先download
如图所示:
这里写图片描述
这样就完成了。

三、stanford parser与NLTK

在不设置classpath的情况下,简单实用stanford parser的几个简单的demo

1.Constituency Parser

# -*- coding: utf-8 -*-
import os
from nltk.parse.stanford import StanfordParser

os.environ['STANFORD_PARSER'] = './model/stanford-parser.jar'
os.environ['STANFORD_MODELS'] = './model/stanford-parser-3.8.0-models.jar'

parser = StanfordParser(model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz")
sentences = parser.raw_parse("the quick brown fox jumps over the \" lazy \" dog .")
# for line in sentences:
#     for t in line:
#         print(t)

# GUI
for line in sentences:
    for sentence in line:
        sentence.draw()

2.Denpendency Parser

# -*- coding: utf-8 -*-
import os
from nltk.parse.stanford import StanfordDependencyParser

os.environ['STANFORD_PARSER'] = './model/stanford-parser.jar'
os.environ['STANFORD_MODELS'] = './model/stanford-parser-3.8.0-models.jar'

parser = StanfordDependencyParser(model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz")
sentences = parser.raw_parse("the quick brown fox jumps over the lazy dog")
# 返回的是tree
# for line in sentences:
#     print(line)

res = list(parser.parse("the quick brown fox jumps over the lazy dog .".split()))
for row in res[0].triples():
    print(row)

这是分割线


最终版的:

# -*- coding: utf-8 -*-

import os
from nltk.parse.stanford import StanfordDependencyParser

os.environ['STANFORD_PARSER'] = './model/stanford-parser.jar'
os.environ['STANFORD_MODELS'] = './model/stanford-parser-3.8.0-models.jar'

parser = StanfordDependencyParser(model_path="edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz")

fin = open("./data/raw.clean.test", encoding="utf-8")
fout = open("./result/test.txt", "w+", encoding="utf-8")

i = 0
for line in fin.readlines():
    if line is None or line == "":
        pass
    else:
        sentences, = parser.parse(line.split("|||")[0].split(" "))
        # print(sentences.to_conll(4))
        fout.write(sentences.to_conll(4))
        fout.write('\n')
        fout.flush()
    i += 1
    print(i)

fin.close()
fout.close()

最终的样子非常符合我的需求
这里写图片描述

over

相关文章
|
6月前
|
自然语言处理 数据可视化 Java
NLP6:stanford Parser中文分词
NLP6:stanford Parser中文分词
98 0
|
13天前
|
缓存 自然语言处理 数据处理
Python自然语言处理面试:NLTK、SpaCy与Hugging Face库详解
【4月更文挑战第16天】本文介绍了Python NLP面试中NLTK、SpaCy和Hugging Face库的常见问题和易错点。通过示例代码展示了如何进行分词、词性标注、命名实体识别、相似度计算、依存关系分析、文本分类及预训练模型调用等任务。重点强调了理解库功能、预处理、模型选择、性能优化和模型解释性的重要性,帮助面试者提升NLP技术展示。
31 5
|
9月前
|
机器学习/深度学习 自然语言处理 算法
深入NLTK:Python自然语言处理库高级教程
在前面的初级和中级教程中,我们了解了NLTK库中的基本和进阶功能,如词干提取、词形还原、n-gram模型和词云的绘制等。在本篇高级教程中,我们将深入探索NLTK的更多高级功能,包括句法解析、命名实体识别、情感分析以及文本分类。
|
9月前
|
机器学习/深度学习 数据采集 自然语言处理
nlp入门之nltk工具的使用
本文作为nlp入门开山第三篇,简要的介绍了nltk工具的使用
|
9月前
|
自然语言处理 数据可视化 Python
掌握NLTK:Python自然语言处理库中级教程
在之前的初级教程中,我们已经了解了NLTK(Natural Language Toolkit)的基本用法,如进行文本分词、词性标注和停用词移除等。在本篇中级教程中,我们将进一步探索NLTK的更多功能,包括词干提取、词形还原、n-gram模型以及词云的绘制。
|
9月前
|
自然语言处理 Python
入门NLTK:Python自然语言处理库初级教程
NLTK(Natural Language Toolkit)是一个Python库,用于实现自然语言处理(NLP)的许多任务。NLTK包括一些有用的工具和资源,如文本语料库、词性标注器、语法分析器等。在这篇初级教程中,我们将了解NLTK的基础功能。
|
11月前
|
自然语言处理 Python
【NLP Tool -- NLTK】NLTK进行英文情感分析、分词、分句、词性标注(附代码)
NLP自然语言处理之NLTK工具的使用,进行英文情感分析、分词、分句、词性标注(附代码)
494 0
BXA
|
12月前
|
机器学习/深度学习 数据采集 人工智能
Python自然语言处理:NLTK入门指南
自然语言处理(Natural Language Processing,NLP)是指计算机处理人类语言的领域。它是一门多学科交叉的学科,将计算机科学、人工智能、语言学等诸多学科的理论和方法融合在一起,将人类语言转化为计算机所能理解的形式,实现对人类语言的自动处理、理解和生成。NLP可以应用到很多方面,比如语音识别、机器翻译、情感分析、智能客服等
BXA
538 1
|
机器学习/深度学习 人工智能 自然语言处理
机器学习自然语言处理之英文NLTK(代码+原理)
机器学习自然语言处理之英文NLTK(代码+原理)
457 0
机器学习自然语言处理之英文NLTK(代码+原理)
|
自然语言处理 算法 搜索推荐
Python自然语言处理 NLTK 库用法入门教程
Python自然语言处理 NLTK 库用法入门教程
393 0
Python自然语言处理 NLTK 库用法入门教程