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

如何使用NLTK分词时排除介词与连词?

过滤NLTK分词结果保留核心词汇

看起来你已经走对路了——分词和词性标注是筛选核心词汇的关键步骤!接下来只需要根据词性过滤掉那些“辅助性虚词”,就能得到你想要的核心词汇列表。

具体步骤和代码实现

先把你已经完成的步骤整合,加上过滤逻辑:

import nltk
# 第一次使用NLTK需要下载必要语料,取消注释运行即可
# nltk.download('punkt')
# nltk.download('averaged_perceptron_tagger')

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

sentence = "The other day I met with Juan and Mary"
tokens = word_tokenize(sentence)
tagged_tokens = pos_tag(tokens)

# 定义要保留的核心词性集合
# 涵盖代词、形容词、各类名词、各类动词
core_pos_tags = {'PRP', 'JJ', 'NN', 'NNS', 'NNP', 'NNPS', 'VBD', 'VB', 'VBG', 'VBN', 'VBP', 'VBZ'}

# 过滤出核心词汇
core_tokens = [token for token, tag in tagged_tokens if tag in core_pos_tags]
print(core_tokens)

运行这段代码后,输出正好是你想要的:

['other', 'day', 'I', 'met', 'Juan', 'Mary']

为什么这样过滤?

简单解释下这些词性对应的核心成分:

  • PRP:人称代词(比如"I"),是句子的主语核心
  • JJ:形容词(比如"other"),用来修饰核心名词
  • NN/NNS/NNP/NNPS:各类名词(普通名词、专有名词,比如"day"、"Juan"、"Mary"),是句子的实体核心
  • VBD/VB/VBG/VBN/VBP/VBZ:各类动词(过去式、原形、现在分词等,比如"met"),是句子的动作核心

而你要去掉的The(DT,限定词)、with(IN,介词)、and(CC,连词)都属于虚词,主要起语法连接作用,不承载核心语义,所以可以直接排除。

如果之后你需要调整核心词汇的范围,只要修改core_pos_tags集合就行——比如不想保留形容词,就去掉'JJ';想加入副词,就加上'RB'这类副词词性标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:08:15