从字符串中提取所有名词

3

可能重复:
从自然语言处理中的名词短语中提取名词

请问有没有关于如何使用Python的NLTK从字符串中提取所有名词的示例?

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

如果不是在Python中,是否有其他解决方案?


1
为什么会排除"I"、"Like"和"and"?它们也包含名词啊。 - Josh M.
抱歉,我和Like也应该被提取。 - Mateus Pinheiro
@Matt Ball:不是重复问题。另一个问题询问如何从解析树中提取名词,而此处的 OP 希望从字符串中提取。 - Fred Foo
2个回答

1

获取NLTK包,然后使用其内置解析器和此方法;或者更快地,对字符串进行词性标注,并提取所有具有标签NN的单词;这些是名词。阅读其他词性标记以了解如何正确提取Ilike

两种方法都不完美,但这是你能做到的最好的。良好的词性标注器在干净的输入上的准确率将超过95%。我认为,如果没有大量额外的工作,您无法通过基于WordNet的方法达到这样的准确性。


词性标记链接被密码保护。您是否有其他类似资源的链接? - Cecilia
@2cents 更新了链接。 - Fred Foo

0
Dave Taylor使用Bash编写了一个广告生成器,该生成器查询普林斯顿的WordNet来完成此操作。当然,您也可以在Python中使用WordNet的帮助来做类似的事情。
这是链接: Linux Journal - Dave Taylor adlib generator.

这对于那篇文章中的简单示例有效,但不适用于实际的NLP任务。有更好的方法可以在Python中轻松完成此操作。 - Fred Foo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接