您可以使用NLTK 词性标注器来标注每个单词,然后只保留名词。这是 NLTK 标记器的示例,取自 NLTK 主页:
>>> import nltk
>>> sentence = """At eight o'clock on Thursday morning
... Arthur didn't feel very good."""
>>> tokens = nltk.word_tokenize(sentence)
>>> tokens
['At', 'eight', "o'clock", 'on', 'Thursday', 'morning',
'Arthur', 'did', "n't", 'feel', 'very', 'good', '.']
>>> tagged = nltk.pos_tag(tokens)
>>> tagged[0:6]
[('At', 'IN'), ('eight', 'CD'), ("o'clock", 'JJ'), ('on', 'IN'),
('Thursday', 'NNP'), ('morning', 'NN')]
在您的情况下,您将保留 tagged 列表中具有以 N 开头的标签的每个元素,即所有名词,并将其余部分丢弃。查看complete list of tags;例如,您可能还想包含外来词 (FW)。
NLTK 可以免费使用,它自带的数据集也是免费的。您不必自己构建介词列表等。