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
上找到概述谢谢。
答案 0 :(得分:0)
有两个选项:
您在nltk
标记程序周围编写了一个包装程序,并使用它将文本转换为spaCy的Doc
格式。然后用该新的自定义函数覆盖nlp.tokenizer
。这里的更多信息:https://spacy.io/usage/linguistic-features#custom-tokenizer。
直接从字符串列表中生成Doc
,如下所示:
doc = Doc(nlp.vocab,单词= [u“ I”,u“ am”,u“饮食”,u“。”], 空格= [真,真,假,假])
定义spaces
是可选的-如果省略它,则默认情况下每个单词后面都会有一个空格。当使用例如之后doc.text
。这里的更多信息:https://spacy.io/usage/linguistic-features#own-annotations
[edit]:请注意,nlp
和doc
是spaCy中的“标准”变量名称,它们分别对应于您的变量sp
和sen
代码