微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Python 中从字符串中提取抽象名词和形容词

如何解决在 Python 中从字符串中提取抽象名词和形容词

我正在处理一个数据框,其中一列包含反馈文本。它已被清理干净。 我只需要知道如何从字符串中提取抽象名词和形容词。

这是我拥有的清理文本示例:

enter image description here

输出必须仅包含来自每个反馈的抽象名词和形容词。

例如,反馈是:

"smells good also nice taste in love with it"

输出应该是:

good nice love

我尝试使用 nltk pos 标记器和 textblob 词典。我可以使用 textblob 提取所有形容词,但在名词的情况下,它标记所有名词。我无法仅将抽象名词分开,例如上述示例中的“爱”。

解决方法

这句话在语法上不正确(漏掉了第一个主语“it”)。 NLP 工具通常不适合解析不正确的句子。然而,NLTK 甚至几乎正确地解析了原始句子:

s = "smells good also nice taste in love with it"
nltk.pos_tag(nltk.word_tokenize(s))
#[('smells','NNS'),('good','JJ'),('also','RB'),('nice',# ('taste','NN'),('in','IN'),('love',('with',('it','PRP')]

如果您更正语法,则结果 100% 正确:

s = "it smells good also nice taste in love with it"
nltk.pos_tag(nltk.word_tokenize(s))
#[('it','PRP'),('smells','VBZ'),# ('nice',('taste',# ('with','PRP')]

以及你想要的输出:

[word for word,tag in nltk.pos_tag(nltk.word_tokenize(s)) if tag[0] in "NJ"]
#['good','nice','taste','love']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。