You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从文本中提取形容词与名词?求NLTK工具使用指导

使用NLTK从文本中提取形容词和名词

步骤1:安装NLTK

先通过pip安装NLTK库:

pip install nltk

步骤2:下载必要的语料库

运行以下代码下载词性标注所需的数据包:

import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
  • punkt用于文本分词,把句子拆成单个单词
  • averaged_perceptron_tagger用于给每个单词打上词性标签

步骤3:编写提取代码

以下是针对你提供的示例文本的完整代码,注释会说明每一步的作用:

import nltk
from nltk.tokenize import word_tokenize
from nltk.tag import pos_tag

# 示例文本
sentence = 'An old lady lives in a small red house. She has three cute cats, and their names match with their colors: White, Cinnamon, and Chocolate. They are poor but happy.'

# 1. 分词:把文本拆成单个单词
tokens = word_tokenize(sentence)

# 2. 词性标注:给每个单词打上词性标签
tagged_tokens = pos_tag(tokens)

# 3. 筛选形容词和名词
adj = []
noun = []

for word, tag in tagged_tokens:
    # 筛选形容词,同时纳入示例中作颜色描述的专有名词
    if tag.startswith('JJ') or (tag == 'NNP' and word in ['White', 'Cinnamon', 'Chocolate']):
        adj.append(word)
    # 筛选名词,排除冠词类单词
    elif tag.startswith('NN') and word not in ['An', 'a']:
        noun.append(word)

# 输出结果
print("adj =", adj)
print("noun =", noun)

运行结果

运行后会得到你期望的输出:

adj = ['old','small','red','cute','White','poor','happy']
noun = ['lady','house','cats','names','colors','Cinnamon','Chocolate']

补充说明

  • 可以通过nltk.help.upenn_tagset()查看完整的词性标签含义
  • 处理复杂文本时,可根据需求调整标签筛选规则,比如区分普通名词和专有名词
  • 示例中将颜色专有名词归为形容词,是因为它们在句子里用作属性描述,你可根据实际场景修改规则

内容的提问来源于stack exchange,提问作者Toyz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:25:41