我正在使用Python3-NLTK进行文本挖掘。在预处理步骤中,我想实现名词短语分块,这需要POS-tagging and selection according to a regexp (grammar)。我的结果并不令人满意,例如我使用了短语of
,因为pos_tag已将其标识为import nltk
nltk.help.upenn_tagset()
(地球from nltk import pos_tag
t1 = 'it happened in the mid-1890s'
pos_tag(t1.split())[-1] # gives:('mid-1890s', 'NNS')
t2 = 'it happened in the mid-1890'
pos_tag(t2.split())[-1] # gives:('mid-1890', 'NN')
t3 = 'mid-1890'
pos_tag(t3.split())[-1] # gives:('mid-1890', 'NN')
t4 = 'mid-1890s'
pos_tag(t4.split())[-1] # gives:('mid-1890s', 'NNS')
如何成为专有名词!)
所以我深入研究了NLTK pos_tag,并找到了这个奇特的结果:
使用
{{1}}
您将获得NLTK pos_tag中可用标签的完整列表。这是其中之一:
CD:数字,基数: 1890年中期九点三十二分......
如上所述, 1980年中期这个词是一张CD。现在这就是我所拥有的:
{{1}}
这种情况不是很奇怪吗?!
是否有任何(可能是监督的)POS标记改进方法?我正在研究超过11,000个文档(每个文档最多500个单词)