# Push!() tokendocument into corpus

**URL:** https://discourse.julialang.org/t/push-tokendocument-into-corpus/71981
**Category:** New to Julia
**Tags:** question
**Created:** [November 23, 2021, 10:06pm UTC](https://discourse.julialang.org/t/push-tokendocument-into-corpus/71981 "2021-11-23T22:06:49Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![korilium](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/korilium/32/48714_2.png) [@korilium](https://discourse.julialang.org/u/korilium)
#### Post date: [November 23, 2021, 10:06pm UTC](https://discourse.julialang.org/t/push-tokendocument-into-corpus/71981/1 "2021-11-23T22:06:49Z")

</div>

Hello everybody,

I am trying to push Tokendocument into a corpus from the [textanlysis.jl](https://docs.juliahub.com/TextAnalysis/5Mwet/0.7.3/corpus/) package.

Here is the code

```julia
y = Corpus([])
for i in data.row
 x = TokenDocument([m.match for m = eachmatch(r"\\[rnt](*SKIP)(*F)|\w+(?:['-,-:\/.(X X)]\w+)*",data.Omschrijving[i] )])
 push!(y, x)
end 

```

the result is still an empty corpus but with X amount of documents like this:

```julia
A Corpus with 1730 documents:
 * 0 StringDocument's
 * 0 FileDocument's
 * 0 TokenDocument's
 * 0 NGramDocument's

Corpus's lexicon contains 0 tokens
Corpus's index contains 0 tokens

```

As you can see, I cannot enter all my documents into the corpus with push!() or by writing it out.  
Does anyone have some ideas about resolving this?

Kind regards,

Korilium

---

<div class="post-metadata">

### Author: ![goerch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goerch/32/29122_2.png) [@goerch](https://discourse.julialang.org/u/goerch)
#### Post date: [November 23, 2021, 10:10pm UTC](https://discourse.julialang.org/t/push-tokendocument-into-corpus/71981/2 "2021-11-23T22:10:15Z")

</div>

I’m not sure I’m able to reproduce this with the MWE. Could you simplify it, for example with some constant input from global variables?

---

<div class="post-metadata">

### Author: ![korilium](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/korilium/32/48714_2.png) [@korilium](https://discourse.julialang.org/u/korilium)
#### Post date: [November 23, 2021, 10:37pm UTC](https://discourse.julialang.org/t/push-tokendocument-into-corpus/71981/3 "2021-11-23T22:37:42Z")

</div>

Hey georch,

Already found the issue.  
Apparently, TokenDocument cannot process SubString{String} type which I got from the iteration on eachmatch. instead, it gives an empty TokenDocument and thereby an empty corpus.

Here is some code for reproducibility:

```julia
using TextAnalysis

a = "Vader: hahahahahaha, ja genoeg gelachen maar was wel lachen"
b = "Luke: Was helemaal niet grappig " 
c = "Vader: hou je klep!"
d = "Luke: Je ben niet grappig! "
e = "Vader: Ik ben niet alleen een komiek, maar ik ben ook je oma. je oma ja... hehe"
f = "Luke: Nee dat is niet waar. Ik heb geen OMA! "
g = "Vader: Toch waar he. Ja hoor spring maar hoor"
h = "Luke: Ik hoop dat je zal branden in de hel"

vector = [a,b,c,d,e,f,g,h]

y = Corpus([])
for i in 1:length(vector)
 x = TokenDocument([m.match for m = eachmatch(r"\\[rnt](*SKIP)(*F)|\w+(?:['-,-:\/.(X X)]\w+)*",vector[i])])
 push!(y, x)
end 

```

Solution:

```julia
y = Corpus([])
for i in 1:length(vector)
 x = StringDocument(vector[i])
 push!(y, x)
end 

```

---

<div class="post-metadata">

### Author: ![goerch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goerch/32/29122_2.png) [@goerch](https://discourse.julialang.org/u/goerch)
#### Post date: [November 23, 2021, 10:43pm UTC](https://discourse.julialang.org/t/push-tokendocument-into-corpus/71981/4 "2021-11-23T22:43:21Z")

</div>

Good to know! Thank you for the feedback.
