在Python上使用NLTK创建自己的命名实体



我正在使用一本名为《Python自然语言处理食谱》的书学习NLTK。

这是代码,但没有任何解释。

grammar = r"NAMED-ENTITY: {<NNP>+}"
cp = nltk.RegexpParser(grammar)
samplestrings = [
"Microsoft Azure is a cloud service",
"Bill Gates announces Satya Nadella as new CEO of Microsoft"
]
def demo(samplestrings):
for s in samplestrings:
words = nltk.word_tokenize(s)
tagged = nltk.pos_tag(words)
# chunks = nltk.ne_chunk(tagged)
chunks = cp.parse(tagged)
print(nltk.tree2conllstr(chunks))
print(chunks)
demo(samplestrings)

所以我被困在了第一行。

grammar = r"NAMED-ENTITY: {<NNP>+}"这个代码做什么?

这是否意味着,如果有一个以上的NNP(至少一个NNP(,那么标记词就是一个命名实体?

感谢回答

在本例中,它们使用名为named-ENTITY的正则表达式解析器对专有名词的序列进行分块。

cp = nltk.RegexpParser(r"NAMED-ENTITY: {<NNP>+}")

NNP是专有名词的词性标签。

最新更新