Skip to contents

Creates a table of the most frequently-occurring n-grams within the data. Optionally, weights can be provided either through a `weight` column in the formatted data, or from a `svydesign` object with the raw (preformatted) data. Equivalent to `fst_get_top_ngrams` but doesn't print message about ties.

Usage

fst_ngrams_table2(
  data,
  number = 10,
  ngrams = 1,
  norm = NULL,
  pos_filter = NULL,
  strict = TRUE,
  use_svydesign_weights = FALSE,
  id = "",
  svydesign = NULL,
  use_column_weights = FALSE
)

Arguments

data

A dataframe of text in CoNLL-U format, with optional additional columns.

number

The number of n-grams to return, default is `10`.

ngrams

The type of n-grams to return, default is `1`.

norm

The method for normalising the data. Valid settings are `"number_words"` (the number of words in the responses, default), `"number_resp"` (the number of responses), or `NULL` (raw count returned).

pos_filter

List of UPOS tags for inclusion, default is `NULL` which means all word types included.

strict

Whether to strictly cut-off at `number` (ties are alphabetically ordered), default is `TRUE`.

use_svydesign_weights

Option to weight words in the table using weights from a `svydesign` containing the raw data, default is `FALSE`

id

ID column from raw data, required if `use_svydesign_weights = TRUE` and must match the `docid` in formatted `data`.

svydesign

A `svydesign` which contains the raw data and weights, required if `use_svydesign_weights = TRUE`.

use_column_weights

Option to weight words in the table using weights from formatted data which includes addition `weight` column, default is `FALSE`

Value

A table of the most frequently occurring n-grams in the data.

Examples

fst_ngrams_table2(fst_child, norm = NULL)
#>       words occurrence
#> 1    toinen        118
#> 2     lyödä         71
#> 3  lyöminen         53
#> 4      joku         46
#> 5      paha         43
#> 6     tehdä         34
#> 7     sanoa         33
#> 8    tietää         32
#> 9     jokin         30
#> 10    tulla         30
fst_ngrams_table2(fst_child, ngrams = 2, norm = "number_resp")
#>                  words occurrence
#> 1  lyöminen potkiminen      0.041
#> 2           joku lyödä      0.027
#> 3         lyödä potkia      0.027
#> 4          osata sanoa      0.022
#> 5       haukkua toinen      0.019
#> 6          sanoa jokin      0.017
#> 7          tulla mieli      0.017
#> 8          joku toinen      0.015
#> 9         ottaa toinen      0.015
#> 10          paha mieli      0.015
c <- fst_child_2
s <- survey::svydesign(id=~1, weights= ~paino, data = child)
i <- 'fsd_id'
T <- TRUE
fst_ngrams_table2(c, 10, 2, use_svydesign_weights = T, svydesign = s, id = i)
#>                  words occurrence
#> 1  lyöminen potkiminen   2526.929
#> 2           joku lyödä   1638.069
#> 3         lyödä potkia   1635.803
#> 4          osata sanoa   1312.750
#> 5       haukkua toinen   1172.935
#> 6          sanoa jokin   1046.724
#> 7          tulla mieli   1028.394
#> 8         toinen tulla    914.070
#> 9          tehdä jokin    903.588
#> 10  töniminen lyöminen    898.814