Я использую модель spaCys NLP для обработки POS входных данных, чтобы мои цепочки Маркова могли быть немного более грамматически правильными, как в примере с библиотекой python markovify, найденной здесь . Однако то, как spaCy разделяет токены, затрудняет их реконструкцию, поскольку некоторые грамматические элементы также разделяются, например, "don't"
становится ["do", "n't"]
. Это означает, что вы не можете больше присоединяться к сгенерированным цепям Маркова просто через пробел, но вам нужно знать, составляют ли токены одно слово.
Я предположил, что свойства токенов is_left_punct
и is_right_punct
могут быть связаны с этим, но, похоже, это не связано. Мой текущий код просто учитывает PUNCT
токенов, но проблема do n't
сохраняется.
Есть ли свойство токенов, которое я могу использовать, чтобы указать методу, объединяющему предложения, когда пропускать пробелы или каким-либо другим способом узнать это?