【segmentation & parsing & dependency parsing】nltk调用stanford NLP工具包
来源:互联网 发布:铁路抢票软件 编辑:程序博客网 时间:2024/06/18 10:03
环境:win 7 + python 3.5.2 + nltk 3.2.1
中文分词
前期准备
下载stanford-segmenter-2015-12-09(2016版的stanford segmenter与nltk接口不兼容),解压,将根目录下的stanford-segmenter-3.6.0.jar,slf4j-api.jar,data文件夹拷贝到某个文件夹下,我将它们放在了E:/stanford_jar下。
windows环境下需要修改nltk接口
将YOUR_PYTHON_PATH\Lib\site-packages\nltk\tokenize\stanford_segmenter.py第63行的 self._stanford_jar = ":".join(
修改为 self._stanford_jar = os.pathsep.join(
测试代码
from nltk.tokenize import StanfordSegmenterif __name__ == "__main__": segmenter = StanfordSegmenter(path_to_jar="E:/stanford_jar/stanford-segmenter-3.6.0.jar", path_to_slf4j="E:/stanford_jar/slf4j-api.jar", path_to_sihan_corpora_dict="E:/stanford_jar/data", path_to_model="E:/stanford_jar/data/pku.gz", path_to_dict="E:/stanford_jar/data/dict-chris6.ser.gz") result = segmenter.segment("你叫什么名字") print(result)#result是一个str,以空格分隔词
运行结果
你 叫 什么 名字
stanford segmentation运行起来很慢,个人觉得使用jieba会更好。
句法分析在分析单个词的词性的基础上,尝试分析词与词之间的关系,并用这种关系来表示句子的结构。实际上,句法结构可以分为两种,一种是短语结构,另一种是依存结构。前者按句子顺序来提取句法结构,后者则按词与词之间的句法关系来提取句子结构。
基于短语结构的剖析
前期准备
下载stanford-parser-full-2016-10-31,解压,对根目录下的stanford-parser-3.7.0-models.jar解压得到stanford-parser-3.7.0-models,进入stanford-parser-3.7.0-models\edu\stanford\nlp\models\lexparser,将chinesePCFG.ser.gz拷贝到某个文件夹下,我将它放在了E:/stanford_jar。同时,我将根目录下的stanford-parser.jar和stanford-parser-3.7.0-models.jar也放在了E:/stanford_jar
测试代码
import osfrom nltk.parse import stanfordif __name__ == "__main__": os.environ['STANFORD_PARSER'] = 'E:/stanford_jar/stanford-parser.jar' os.environ['STANFORD_MODELS'] = 'E:/stanford_jar/stanford-parser-3.7.0-models.jar' parser = stanford.StanfordParser(model_path="E:/stanford_jar/chinesePCFG.ser.gz", encoding="gb2312") result = parser.parse("你 叫 什么 名字".split())#parsing的句子需要先分好词 print(list(result ))
运行结果
[Tree('ROOT', [Tree('IP', [Tree('NP', [Tree('PN', ['你'])]), Tree('VP', [Tree('VV', ['叫']), Tree('NP', [Tree('DP', [Tree('DT', ['什么'])]), Tree('NP', [Tree('NN', ['名字'])])])])])])]
基于依存关系的剖析
测试代码
from nltk.parse.stanford import StanfordDependencyParserif __name__ == "__main__": os.environ['STANFORD_PARSER'] = 'E:/stanford_jar/stanford-parser.jar' os.environ['STANFORD_MODELS'] = 'E:/stanford_jar/stanford-parser-3.7.0-models.jar' eng_parser = StanfordDependencyParser(model_path="E:/stanford_jar/chinesePCFG.ser.gz",encoding="gb2312") res = list(eng_parser.parse("你 叫 什么 名字".split())) for row in res[0].triples(): print(row)
结果
(('叫', 'VV'), 'nsubj', ('你', 'PN'))(('叫', 'VV'), 'dobj', ('名字', 'NN'))(('名字', 'NN'), 'det', ('什么', 'DT'))
- 【segmentation & parsing & dependency parsing】nltk调用stanford NLP工具包
- 干货!详述Python NLTK下如何使用stanford NLP工具包
- Python NLTK结合stanford NLP工具包进行文本处理
- Week5-7Dependency parsing
- constituency parsing and dependency parsing 的区别
- Constituent Parsing & Dependency Parsing 句法分析简介
- NLP之Stanford Parser using NLTK
- CoNLL Multi-lingual Dependency Parsing 格式
- [Python开发] python使用nltk进行Chart Parsing
- [ICLR2017]Deep Biaffine Attention for Neural Dependency Parsing
- Ubuntu apt 出错解决办法: Problem parsing dependency Depends
- Stanford NLP自然语序处理demo,附maven dependency
- parsing sql
- Parsing Html
- Parsing error...
- String Parsing
- Parsing error
- Parsing error
- Ubuntu16.04中文字符乱码问题的解决方法
- FL2440——RT3070 STA模式 实现无线上网功能
- 模拟在单处理器多进程操作系统的CPU调度
- 解除流氓主页绑定
- Ajax案例
- 【segmentation & parsing & dependency parsing】nltk调用stanford NLP工具包
- 事务
- GPS信号测试的基本要求
- Java 输入输出
- 抽象类与接口
- 模仿微信九宫格图片展示控件
- leetcode-21-合并两个排好序的链表
- 折腾黑苹果走过的坑及一些解决方案
- DNS服务器1