from nltk.chunk.util import tagstr2tree
from nltk import word_tokenize, pos_tag
text = "John Rose Center is very beautiful place and i want to go there with Barbara Palvin. Also there are stores like Adidas ,Nike ,Reebok Center."
tagged_text = pos_tag(text.split())
grammar = "NP:{<NNP>+}"
cp = nltk.RegexpParser(grammar)
result = cp.parse(tagged_text)
print(result)
输出:
(S
(NP John/NNP Rose/NNP Center/NNP)
is/VBZ
very/RB
beautiful/JJ
place/NN
and/CC
i/NN
want/VBP
to/TO
go/VB
there/RB
with/IN
(NP Barbara/NNP Palvin./NNP)
Also/RB
there/EX
are/VBP
stores/NNS
like/IN
(NP Adidas/NNP ,Nike/NNP ,Reebok/NNP Center./NNP))
我用于分块的语法仅适用于nnp标记,但是如果单词与逗号连续,它们仍将在同一行上。
(S
(NP John/NNP Rose/NNP Center/NNP)
is/VBZ
very/RB
beautiful/JJ
place/NN
and/CC
i/NN
want/VBP
to/TO
go/VB
there/RB
with/IN
(NP Barbara/NNP Palvin./NNP)
Also/RB
there/EX
are/VBP
stores/NNS
like/IN
(NP Adidas,/NNP)
(NP Nike,/NNP)
(NP Reebok/NNP Center./NNP))
我应该在“ grammar =“中写什么,还是可以像上面写的那样编辑输出?如您所见,我只为我的命名实体项目解析专有名词,请帮助我。
使用word_tokenize(string)
代替string.split()
:
>>> import nltk
>>> from nltk.chunk.util import tagstr2tree
>>> from nltk import word_tokenize, pos_tag
>>> text = "John Rose Center is very beautiful place and i want to go there with Barbara Palvin. Also there are stores like Adidas ,Nike ,Reebok Center."
>>> tagged_text = pos_tag(word_tokenize(text))
>>>
>>> grammar = "NP:{<NNP>+}"
>>>
>>> cp = nltk.RegexpParser(grammar)
>>> result = cp.parse(tagged_text)
>>>
>>> print(result)
(S
(NP John/NNP Rose/NNP Center/NNP)
is/VBZ
very/RB
beautiful/JJ
place/NN
and/CC
i/NN
want/VBP
to/TO
go/VB
there/RB
with/IN
(NP Barbara/NNP Palvin/NNP)
./.
Also/RB
there/EX
are/VBP
stores/NNS
like/IN
(NP Adidas/NNP)
,/,
(NP Nike/NNP)
,/,
(NP Reebok/NNP Center/NNP)
./.)
问题内容: NLTK单词语料库没有短语“好”,“好”,“好”吗? 有什么想法吗? 问题答案: 在长 在文档中,单词是“ http://en.wikipedia.org/wiki/Words_(Unix) 在Unix中,您可以执行以下操作: 并阅读自述文件: 由于它是 234,936 的固定列表,因此该列表中 肯定 有不存在的单词。 如果需要扩展单词列表,则可以使用WordNet中的单词将单词添加到
问题内容: 如何检测使用NLTK编写的文字是哪种语言? 我看到的示例使用,但是在Mac上安装后,找不到该软件包。 问题答案: 您是否遇到了以下代码片段? 来自http://groups.google.com/group/nltk- users/browse_thread/thread/a5f52af2cbc4cfeb?pli=1&safe=active 还是以下演示文件? https://web.
本文向大家介绍Fortran 模块语法,包括了Fortran 模块语法的使用技巧和注意事项,需要的朋友参考一下 示例 模块是类型声明,数据声明和过程的集合。基本语法为:
以下内容旨在对ES2015规范中定义的模块行为做一个轻量级的参考,因为对导入和导出语句的正确理解对于成功使用Rollup是至关重要的。 导入(Importing) 导入的值不能重新分配,尽管导入的对象和数组可以被修改(导出模块,以及任何其他的导入,都将受到该修改的影响)。在这种情况下,它们的行为与const声明类似。 命名导入(Named Imports) 从源模块导入其原始名称的特定项目。 im
NLTK 会被自然地看作是具有栈结构的一系列层,这些层构建于彼此基础之上。那些熟悉人工语言(比如 Python)的文法和解析的读者来说,理解自然语言模型中类似的 —— 但更深奥的 —— 层不会有太大困难。 尽管 NLTK 附带了很多已经预处理(通常是手工地)到不同程度的全集,但是概念上每一层都是依赖于相邻的更低层次的处理。首先是断词;然后是为单词加上 标签;然后将成组的单词解析为语法元素,比如名词
从以前的帖子中,我找到了一种方法来解析这种类型::结构: 这是一个具有键值对的简单 JSON。现在我想解析这个结构,而不管变量顺序如何。即,我想解析到同一个对象中,也是这个结构: 我知道我可以使用操作符来以任何顺序解析数据,但是我不知道如何处理行尾的逗号。我如何解析这两种结构? 这是上一篇文章中@sehe代码。语法在这里定义。