Как использовать токенизированное предложение в качестве входных данных для PoS-тега Spacy? - PullRequest
1 голос
/ 04 июня 2019

Pos-тег Spacy очень удобен, он может напрямую помечать необработанное предложение.

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

Но я использую токенизатор из nltk.Так как использовать тегированное предложение типа ['I', 'am', 'eating'] вместо «Я ем» для тегера Spacy?

Кстати, где я могу найти подробную документацию Spacy?Я могу найти обзор только на официальном сайте

Спасибо.

1 Ответ

0 голосов
/ 06 июня 2019

Существует два варианта:

  1. Вы пишете обертку вокруг токенизатора nltk и используете ее для преобразования текста в формат Doc spaCy.Затем перезапишите nlp.tokenizer этой новой пользовательской функцией.Более подробная информация здесь: https://spacy.io/usage/linguistic-features#custom-tokenizer.

  2. Генерация Doc непосредственно из списка строк, например:

    doc = Doc (nlp.vocab, words =[u "I", u "am", u "есть", u "."], пробелы = [True, True, False, False])

    Определение spaces необязательно- если вы пропустите это, каждое слово будет сопровождаться пробелом по умолчанию.Это важно при использовании, например, doc.text впоследствии.Более подробная информация здесь: https://spacy.io/usage/linguistic-features#own-annotations

[править]: обратите внимание, что nlp и doc являются своего рода «стандартными» именами переменных в spaCy, они соответствуют переменным sp и sen соответственно в вашем коде

...