从字符串中提取所有名词

3 投票
2 回答
9101 浏览
提问于 2025-04-16 16:59

可能重复的问题:
从名词短语中提取名词

有没有人能给我一些例子,教我怎么用Python的NLTK来从一个字符串中提取所有的名词?

比如,我有这个字符串:“我喜欢西红柿和生菜”。我想写一个方法,能返回“西红柿”和“生菜”。

如果在Python中做不到,有人知道其他的解决办法吗?

2 个回答

0

Dave Taylor 用 Bash 写了一个即兴生成器,这个生成器会查询普林斯顿大学的词网(wordnet)来完成这个任务。当然,你也可以用 Python 和词网的帮助做类似的事情。

这里是链接

Linux Journal - Dave Taylor 的即兴生成器。

1

首先,你需要获取NLTK这个包。然后,你可以使用它自带的解析器,接着用这个方法;或者,你也可以选择更快的方法,给字符串加上词性标签,然后找出所有标记为NN的单词,这些就是名词。你还可以了解其他的词性标签,看看怎么才能正确提取出Ilike

这两种方法都不是完美的,但算是比较好的选择。一个好的词性标注器在处理干净的数据时,准确率可以超过95%。我觉得如果不做很多额外的工作,使用基于WordNet的方法是很难达到这样的准确率的。

撰写回答