python nlp 句子提取_python – 从NLP中的Noun Phase中提取名词

谁能告诉我如何从以下输出中仅提取名词:

我已经使用以下程序基于给定的语法对字符串“给我电影评论”进行了标记化和解析: –

sent=nltk.word_tokenize(msg)

parser=nltk.ChartParser(grammar)

trees=parser.nbest_parse(sent)

for tree in trees:

print tree

tokens=find_all_NP(tree)

tokens1=nltk.word_tokenize(tokens[0])

print tokens1

并获得以下输出:

>>>

(S

(VP (V Give) (Det me))

(NP (Det the) (N review) (PP (P of) (N movie))))

(S

(VP (V Give) (Det me))

(NP (Det the) (N review) (NP (PP (P of) (N movie)))))

['the', 'review', 'of', 'movie']

>>>

现在我只想获得名词.我怎么做?

为了在Python提取文本名词,我们可以使用自然语言处理(NLP)库NLTK(Natural Language Toolkit)。引用的代码展示了一个名词短语提取器的实现。该提取器通过查找词性标注后的文本名词单词,并向前、向后扩展,直到遇到非名词单词为止。具体的代码如下: ```python import nltk def extract_np(tagged_sent): grammar = r'NP: {<DT>?<JJ>*<NN>}' # 定义名词短语的语法规则 cp = nltk.RegexpParser(grammar) result = cp.parse(tagged_sent) return result nps = [] tagged_tokens = nltk.pos_tag(tokens) # 对文本进行词性标注 for tagged_sent in tagged_tokens: tree = extract_np(tagged_sent) # 提取名词短语 for subtree in tree.subtrees(): if subtree.label() == 'NP': t = subtree t = ' '.join(word for word, tag in t.leaves()) # 将名词短语拼接成字符串 nps.append(t) ``` 以上代码首先使用`nltk.pos_tag()`函数对文本进行词性标注,然后将标注结果传递给`extract_np()`函数进行名词短语提取。最后,将提取得到的名词短语存储在列表`nps`。请注意,这只是提取名词的一种方法,还可以根据实际需求进行调整和改进。引用和提供了关于NLP名词短语提取的更详细的信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [chatgpt赋能pythonPython提取名词:利用NLP技术进行文本分析的高效方法](https://blog.csdn.net/laingziwei/article/details/131319121)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python实现基于自然语言处理工具NLTK的名词短语提取器](https://blog.csdn.net/Jack_user/article/details/130976216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值