Как определить (предложение) единиц как строки в квантовой? - PullRequest
0 голосов
/ 04 марта 2020

Интересно, можете ли вы изменить формирование предложений. Вместо пунктуации для формирования предложения я бы хотел новую строку / новую строку, формирующие предложение.

1 Ответ

1 голос
/ 05 марта 2020

Это очень минимальный вопрос, поэтому мне придется угадать здесь, что вы намереваетесь, но я предполагаю, что вы хотите разбить ваши документы на строки, а не на предложения. Есть два способа сделать это: создать новый корпус, где каждое предложение является документом, или новый объект токенов, где каждый «токен» - это строка.

Получение обоих - это вопрос использования *_segment() функции. Вот два способа, с помощью некоторого примера текста, который я создам, где каждая строка является «предложением».

library("quanteda")
## Package version: 2.0.0

txt <- c(
  d1 = "Sentence one.\nSentence two is on this line.\nLine three",
  d2 = "This is a single sentence."
)
cat(txt)
## Sentence one.
## Sentence two is on this line.
## Line three This is a single sentence.

Чтобы превратить это в токены, мы используем char_segment() с новой строкой, являющейся шаблоном сегментации, а затем приведите это в список, а затем в токены:

# as tokens
char_segment(txt, pattern = "\n", remove_pattern = FALSE) %>%
  as.list() %>%
  as.tokens()
## Tokens consisting of 4 documents.
## d1.1 :
## [1] "Sentence one."
## 
## d1.2 :
## [1] "Sentence two is on this line."
## 
## d1.3 :
## [1] "Line three"
## 
## d2.1 :
## [1] "This is a single sentence."

Если вы хотите превратить каждую из строк в «документ», который можно сегментировать дальше, используйте corpus_segment() после построения корпуса из txt объект:

# as documents
corpus(txt) %>%
  corpus_segment(pattern = "\n", extract_pattern = FALSE)
## Corpus consisting of 4 documents.
## d1.1 :
## "Sentence one."
## 
## d1.2 :
## "Sentence two is on this line."
## 
## d1.3 :
## "Line three"
## 
## d2.1 :
## "This is a single sentence."
...