需要用处理英文文本,于是用到python中nltk这个包

 f = open(r"D:\Postgraduate\Python\Python爬取美国商标局专利\s_exp.txt")
text = f.read()
sentences = nltk.sent_tokenize(text)
tokenized_sentences = [nltk.word_tokenize(sentence) for sentence in sentences]
tagged_sentences = [nltk.pos_tag(sentence) for sentence in tokenized_sentences]

依次过程是:

1、分句;2、分词;3、词性标注

然后4、命名实体识别

for sent in tagged_sentences:
print(nltk.ne_chunk(sent))

当然,词性标注和命名实体识别这两部可以使用Standford的词性标注和命名实体识别库

>>> stan_tagger = StanfordPOSTagger(r'D:\Postgraduate\Python\Python自然语言处理\stanford-postagger-full-2018-02-27\stanford-postagger-full-2018-02-27\models\english-bidirectional-distsim.tagger','D:\Postgraduate\Python\Python自然语言处理\stanford-postagger-full-2018-02-27\stanford-postagger-full-2018-02-27\stanford-postagger.jar')

Warning (from warnings module):
File "C:\Program Files\Python36\lib\site-packages\nltk\tag\stanford.py", line 149
super(StanfordPOSTagger, self).__init__(*args, **kwargs)
DeprecationWarning:
The StanfordTokenizer will be deprecated in version 3.2.5.
Please use [91mnltk.tag.corenlp.CoreNLPPOSTagger[0m or [91mnltk.tag.corenlp.CoreNLPNERTagger[0m instead.
>>> s = "I was watching TV"
>>> tokens = nltk.word_tokenize(s)
>>> stan_tagger.tag(tokens)
[('I', 'PRP'), ('was', 'VBD'), ('watching', 'VBG'), ('TV', 'NN')]

接着是命名实体识别:

from nltk.tag.stanford import StanfordNERTagger
# https://nlp.stanford.edu/software/stanford-ner-2018-02-27.zip
st = StanfordNERTagger(r'D:\Postgraduate\Python\Python自然语言处理\stanford-ner-2017-06-09\stanford-ner-2017-06-09\classifiers\english.all.3class.distsim.crf.ser.gz','D:\Postgraduate\Python\Python自然语言处理\stanford-ner-2017-06-09\stanford-ner-2017-06-09\stanford-ner.jar')
st.tag('Rami Eid is studying at Stony Brook University in NY'.split())
>>[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'), ('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'), ('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'O')]

但是效果似乎不好。。

初识NLTK的更多相关文章

  1. Python自然语言处理(1):初识NLP

    由于我们从美国回来就是想把医学数据和医学人工智能的事认真做起来,所以我们选择了比较扎实的解决方法,想快速出成果的请绕道.我们的一些解决方法是:1.整合公开的所有医学词典,尽可能包含更多的标准医学词汇: ...

  2. Lucene学习入门——下载初识

    本文从官网下载Lucene开始,一步一步进行Lucene的应用学习研究.下载初识Snowball Stemmer 1.下载 (1)首先,去Lucne的Apache官网主页 http://lucene. ...

  3. 【NLP】干货!Python NLTK结合stanford NLP工具包进行文本处理

    干货!详述Python NLTK下如何使用stanford NLP工具包 作者:白宁超 2016年11月6日19:28:43 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的 ...

  4. 【NLP】Python NLTK处理原始文本

    Python NLTK 处理原始文本 作者:白宁超 2016年11月8日22:45:44 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公开 ...

  5. 【NLP】Python NLTK获取文本语料和词汇资源

    Python NLTK 获取文本语料和词汇资源 作者:白宁超 2016年11月7日13:15:24 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集 ...

  6. Android动画效果之初识Property Animation(属性动画)

    前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...

  7. 【NLP】Python NLTK 走进大秦帝国

    Python NLTK 走进大秦帝国 作者:白宁超 2016年10月17日18:54:10 摘要:NLTK是由宾夕法尼亚大学计算机和信息科学使用python语言实现的一种自然语言工具包,其收集的大量公 ...

  8. 初识Hadoop

    第一部分:              初识Hadoop 一.             谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...

  9. python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

随机推荐

  1. linux下安装EJBCA 搭建私有CA服务器

    linux下安装EJBCA 搭建私有CA服务器 EJBCA是一个全功能的JAVA的CA系统软件,我们可以用此搭建私有CA服务器: 一:首先我的测试环境: 1.  linux mint18.3 62位: ...

  2. go在ubuntu下安装

    http://blog.csdn.net/Ceciiiilia/article/details/71483221 综合目前网站上的各种安装方法,找到如下简单配置(不会报错或者少报错…) (一)从官网安 ...

  3. 对Faster R-CNN的理解(2)

    2. 区域建议网络 区域建议网络(Regional Proposal Network, RPN),根据特征图上每一个点的向量,为这个点生成k个矩形建议框.每一个点输出的内容包括:reg层4个输出x.y ...

  4. mysql时间日期操作

    SELECT uid, SUBSTR(addtime,1,10) as 创建日期, endtime, TIMESTAMPDIFF(MINUTE, addtime, endtime) as 直播时长 f ...

  5. Docker入门 - 003 Docker 实例

    Docker Hello World Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序. 输出Hello world runoob@runoob: ...

  6. 城市经纬度 json 理解SignalR Main(string[] args)之args传递的几种方式 串口编程之端口 多线程详细介绍 递归一个List<T>,可自己根据需要改造为通用型。 Sql 优化解决方案

    城市经纬度 json https://www.cnblogs.com/innershare/p/10723968.html 理解SignalR ASP .NET SignalR 是一个ASP .NET ...

  7. Unity应用架构设计(5)——ViewModel之间如何共享数据

    对于客户端应用程序而言,单页应用程序(Single Page Application)是最常见的表现形式.有经验的开发人员往往会把一个View分解多个SubView.那么,如何在多个SubView之间 ...

  8. Nodejs 使用 es module (import/export)

  9. Fluent动网格【9】:区域运动

    本文所述的区域运动并非动网格中的运动域,而是指在多参考系(MRF)或滑移网格中所涉及到的区域的运动. 在滑移网格中指定区域运动时,除了能够指定绝对运动外,还能指定某一区域与其他区域间的相对运动,如图所 ...

  10. C#中准确跟踪错误异常所在的文件位置方法

    准确跟踪错误异常所在的文件位置方法是在发布改文件所在的DLL时候,把对应的pdb文件也一同发布. pdb文件是:PDB全称Program Database,不知道中文翻译叫什么.相信使用过VS的人对于 ...