如何使用标记化语句作为Spacy PoS标记器的输入?

时间:2019-06-04 05:44:57

标签: nlp nltk spacy

Spacy的pos标记器非常方便,它可以直接在原始句子上标记。

import spacy  
sp = spacy.load('en_core_web_sm')  
sen = sp(u"I am eating")  

但是我正在使用nltk中的令牌生成器。那么如何使用像 ['I', 'am', 'eating']而不是Spacy的标记器是“我在吃东西”?

顺便说一句,在哪里可以找到详细的Spacy文档? 我只能在official website

上找到概述

谢谢。

1 个答案:

答案 0 :(得分:0)

有两个选项:

  1. 您在nltk标记程序周围编写了一个包装程序,并使用它将文本转换为spaCy的Doc格式。然后用该新的自定义函数覆盖nlp.tokenizer。这里的更多信息:https://spacy.io/usage/linguistic-features#custom-tokenizer

  2. 直接从字符串列表中生成Doc,如下所示:

      

    doc = Doc(nlp.vocab,单词= [u“ I”,u“ am”,u“饮食”,u“。”],   空格= [真,真,假,假])

    定义spaces是可选的-如果省略它,则默认情况下每个单词后面都会有一个空格。当使用例如之后doc.text。这里的更多信息:https://spacy.io/usage/linguistic-features#own-annotations

[edit]:请注意,nlpdoc是spaCy中的“标准”变量名称,它们分别对应于您的变量spsen代码