如何使用' \ n'影响spaCy的CNN?

时间:2018-05-12 16:25:33

标签: spacy

当有空格标记带有换行符时,spaCy的POS标记符会产生不同的标记' \ n' (但不包含仅包含空格的空格标记):

>>> import spacy
>>> nlp = spacy.load('en')    
>>> text = 'The library respects your time, and tries to avoid wasting it.'
>>> text_with_ws = '   '.join(text.split())
>>> text_with_lb = '\n'.join(text.split())
>>> doc = nlp(text)
>>> print([t.pos_ for t in doc])
['DET', 'NOUN', 'VERB', 'ADJ', 'NOUN', 'PUNCT', 'CCONJ', 'VERB', 'PART', 'VERB', 'VERB', 'PRON', 'PUNCT']
>>> doc = nlp(text_with_ws)
>>> print([t.pos_ for t in doc if t.pos_ is not 'SPACE'])
['DET', 'NOUN', 'VERB', 'ADJ', 'NOUN', 'PUNCT', 'CCONJ', 'VERB', 'PART', 'VERB', 'VERB', 'PRON', 'PUNCT']
>>> doc = nlp(text_with_lb)
>>> print([t.pos_ for t in doc if t.pos_ is not 'SPACE'])
['DET', 'NOUN', 'NOUN', 'ADJ', 'NOUN', 'PUNCT', 'CCONJ', 'NOUN', 'PART', 'NOUN', 'NOUN', 'PRON', 'PUNCT']

现在,我不明白spacy的卷积神经网络是如何工作的,但预期会有不同的结果吗?

1 个答案:

答案 0 :(得分:0)

这是因为换行导致句子分段,而空格不会,空格或制表符不作为句子分隔符。 这种置换输出将显示两种解析之间的差异: 1.在text_with_ws示例中,整个文本被视为一个句子,因此依赖性解析& POS标签就是这样运作的。 enter image description here

  1. text_with_lb示例中,每个令牌都是独立处理的。 (添加了period (.)而不是换行,因为替换不支持换行,句点也像换行一样充当句子分隔符) enter image description here