【发布时间】:2019-06-04 07:40:11
【问题描述】:
当RRB 后面的单词没有用空格隔开时,会被识别为单词的一部分。
In [34]: nlp("Indonesia (CNN)AirAsia ")
Out[34]: Indonesia (CNN)AirAsia
In [35]: d=nlp("Indonesia (CNN)AirAsia ")
In [36]: [(t.text, t.lemma_, t.pos_, t.tag_) for t in d]
Out[36]:
[('Indonesia', 'Indonesia', 'PROPN', 'NNP'),
('(', '(', 'PUNCT', '-LRB-'),
('CNN)AirAsia', 'CNN)AirAsia', 'PROPN', 'NNP')]
In [39]: d=nlp("(CNN)Police")
In [40]: [(t.text, t.lemma_, t.pos_, t.tag_) for t in d]
Out[40]: [('(', '(', 'PUNCT', '-LRB-'), ('CNN)Police', 'cnn)police', 'VERB', 'VB')]
预期结果是
In [37]: d=nlp("(CNN) Police")
In [38]: [(t.text, t.lemma_, t.pos_, t.tag_) for t in d]
Out[38]:
[('(', '(', 'PUNCT', '-LRB-'),
('CNN', 'CNN', 'PROPN', 'NNP'),
(')', ')', 'PUNCT', '-RRB-'),
('Police', 'Police', 'NOUN', 'NNS')]
这是一个错误吗? 有解决此问题的建议吗?
【问题讨论】:
-
作为一种解决方法,您可以预先使用像
re.sub(r'\b\)\b', r'\g<0> ', txt)这样的正则表达式对语料库进行预处理 -
@WiktorStribiżew 很高兴知道这一点!感谢您的详细回答。你认为这是一个需要我们解决问题的错误吗?
-
我不确定这是否是一个错误,因为您始终可以扩展基本功能,可能有一些原因不将此规则添加到中缀。