Как создать спа-документ, если у меня есть необработанный текст и слова, но нет пробелов - PullRequest
0 голосов
/ 06 мая 2019

Я хочу создать spaCy doc, учитывая, что у меня есть необработанный текст и words, но отсутствуют пробельные данные.

from spacy.tokens import Doc
doc = Doc(nlp.vocab, words=words, spaces=spaces)

Как это сделать правильно, чтобы информация о пробелах не была потеряна? Пример данных, которые у меня есть:

data= {'text': 'This is just a test sample.', 'words': ['This', 'is', 'just', 'a', 'test', 'sample', '.']}

1 Ответ

0 голосов
/ 06 мая 2019

Исходя из нашего обсуждения в комментариях, я бы предложил сделать одно из следующих действий:

Предпочитаемый маршрут:

Замените в конвейере Spacy те элементы, которые вы хотите улучшить. Если вы не доверяете тегу POS по какой-либо причине, замените его в пользовательском парсере более подходящим для этой цели. Опционально, вы можете обучить существующую модель POS-тегировщика своим собственным аннотированным данным, используя такой инструмент, как Prodigy.

Быстрый и грязный маршрут:

  1. Загрузка документа в виде обычного текста в документ Spacy
  2. Зацикливайте токены, когда Spacy проанализировал их, и сопоставьте их с собственным списком токенов, проверив совпадение всех символов.
  3. Если вы не получаете совпадений, обработайте исключения как входные данные для лучшего токенизатора / проверьте, почему ваш токенизатор работает по-другому
  4. если вы получили совпадение, загрузите дополнительную информацию в качестве атрибутов расширения (https://spacy.io/usage/processing-pipelines#custom-components-attributes)
    1. Используйте эти дополнительные атрибуты в последующих циклах, чтобы проверить, соответствуют ли эти дополнительные атрибуты Spacy Parser, и выведите конечный набор обучающих данных.
...