Spacy管道?

Sil*_*las 6 python nlp spacy

最近我一直在玩一个WikiDump.我对它进行了预处理并在Word2Vec + Gensim上进行了训练

有没有人知道Spacy中是否只有一个脚本可以同时生成标记化,句子识别,词性标注,词形还原,依赖性解析和命名实体识别

我一直无法找到明确的文档谢谢

Cen*_*tAu 12

Spacy只需使用即可为您提供所有这些功能en_nlp = spacy.load('en'); doc=en_nlp(sentence).该文档为您提供有关如何访问每个元素的详细信息.

下面给出一个例子:

In [1]: import spacy
   ...: en_nlp = spacy.load('en')

In [2]: en_doc = en_nlp(u'Hello, world. Here are two sentences.')
Run Code Online (Sandbox Code Playgroud)

可以通过以下方式获得句子doc.sents:

In [4]: list(en_doc.sents)
Out[4]: [Hello, world., Here are two sentences.]
Run Code Online (Sandbox Code Playgroud)

名词块由下式给出doc.noun_chunks:

In [6]: list(en_doc.noun_chunks)
Out[6]: [two sentences]
Run Code Online (Sandbox Code Playgroud)

命名实体由下式给出doc.ents:

In [11]: [(ent, ent.label_) for ent in en_doc.ents]
Out[11]: [(two, u'CARDINAL')]
Run Code Online (Sandbox Code Playgroud)

标记化:您可以遍历文档以获取标记.token.orth_给出令牌的str.

In [12]: [tok.orth_ for tok in en_doc]
Out[12]: [u'Hello', u',', u'world', u'.', u'Here', u'are', u'two', u'sentences', u'.']
Run Code Online (Sandbox Code Playgroud)

POS由token.tag_下列人员给出:

In [13]: [tok.tag_ for tok in en_doc]
Out[13]: [u'UH', u',', u'NN', u'.', u'RB', u'VBP', u'CD', u'NNS', u'.']
Run Code Online (Sandbox Code Playgroud)

词形还原:

In [15]: [tok.lemma_ for tok in en_doc]
Out[15]: [u'hello', u',', u'world', u'.', u'here', u'be', u'two', u'sentence', u'.']
Run Code Online (Sandbox Code Playgroud)

依赖解析.您可以使用token.dep_ token.rights或遍历解析树token.lefts.您可以编写一个函数来打印依赖项:

In [19]: for token in en_doc:
    ...:     print(token.orth_, token.dep_, token.head.orth_, [t.orth_ for t in token.lefts], [t.orth_ for t in token.rights])
    ...:     
(u'Hello', u'ROOT', u'Hello', [], [u',', u'world', u'.'])
(u',', u'punct', u'Hello', [], [])
(u'world', u'npadvmod', u'Hello', [], [])
...
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅spacy文档.