我想从使用 NLTK 的解析文本中提取名词短语,但我不知道该怎么做。我仍在寻找它,但还没有运气。所以我不得不在这里问。解析的文本在列表中,它们是这样的:(S the/DT (NP phone/NN) has/VBZ a/DT (NP good/JJ screen/NN) ./.)(S (NP ipod/NN) is/VBZ the/DT best/JJS (NP mp3/NN player/NN) ./.)(S does/VBZ the/DT (NP player/NN play/NN dvd/NN) with/IN audio/JJ and/CC (NP video/NN) ?/.)之前,我使用TextBlob提取名词短语,但由于某种原因,第一句没有提取“电话”,只有“好屏幕”。这就是为什么我要回去使用 NLTK。
1 回答

牧羊人nacy
TA贡献1862条经验 获得超7个赞
我想这就是你要找的:
import re
s = """(S the/DT (NP phone/NN) has/VBZ a/DT (NP good/JJ screen/NN) ./.)
(S (NP ipod/NN) is/VBZ the/DT best/JJS (NP mp3/NN player/NN) ./.)
(S
does/VBZ
the/DT
(NP player/NN play/NN dvd/NN)
with/IN
audio/JJ
and/CC
(NP video/NN)
?/.)"""
print(re.findall("(\w+)/NN", s))
re.findall()将搜索整个字符串以查找匹配项。以上尝试查找并返回括号中的(\w+)内容,这意味着作品,然后是/NN
添加回答
举报
0/150
提交
取消