gpt4 book ai didi

python - 如何使用 NLTK pos_tag() 提取名词?

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:56 27 4
gpt4 key购买 nike

我是 python 的新手。我无法找出错误。我想使用 NLTK 提取名词。

我写了下面的代码:

import nltk

sentence = "At eight o'clock on Thursday film morning word line test best beautiful Ram Aaron design"

tokens = nltk.word_tokenize(sentence)

tagged = nltk.pos_tag(tokens)


length = len(tagged) - 1

a = list()

for i in (0,length):
log = (tagged[i][1][0] == 'N')
if log == True:
a.append(tagged[i][0])

当我运行它时,'a' 只有一个元素

a
['detail']

我不明白为什么?

当我在没有 for 循环的情况下执行它时,它正在运行

log = (tagged[i][1][0] == 'N')
if log == True:
a.append(tagged[i][0])

通过手动将“i”的值从 0 更改为“length”,我得到了完美的输出,但是使用 for 循环它只返回结束元素。谁能告诉我 for 循环出了什么问题。

'a'应该在代码后面如下

['Thursday', 'film', 'morning', 'word', 'line', 'test', 'Ram' 'Aaron', 'design']

最佳答案

>>> from nltk import word_tokenize, pos_tag
>>> sentence = "At eight o'clock on Thursday film morning word line test best beautiful Ram Aaron design"
>>> nouns = [token for token, pos in pos_tag(word_tokenize(sentence)) if pos.startswith('N')]
>>> nouns
['Thursday', 'film', 'morning', 'word', 'line', 'test', 'Ram', 'Aaron', 'design']

关于python - 如何使用 NLTK pos_tag() 提取名词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24409642/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com