Skip to contents

Main purpose for this package is to:
* Share text mining data sets easily.
* Provide a few simple pre processing functions. Nothing special only wrappers around dplyr and other tidyverse functions.
* Document all the steps for reproducible data analysis.

NOTE! It is strongly recommended to use functions directly from other packages since all the helper functions provided here are highly likely to change many times before I decide how they should look like and function.

This package contains following data sets:
- aspol: Finnish housing policy documents.
- strategia: Strategy documents of Finnish municipalities.
Other data sets might be added later. Currently all the functionalities are tested on aspol data set only.

Installation

You can install the development version of rfintext like so:

# install.packages("devtools")
devtools::install_github("StranMax/rfintext")

Data

Number of documents in aspol data set 68

Sentence nro 43 from Espoo document:

aspol |> filter(kunta == "Espoo", sent == 43)
#> # A tibble: 26 × 13
#>    kunta  sent ID    FORM                  LEMMA                 UPOSTAG XPOSTAG FEATS                                                                  HEAD  DEPREL    DEPS  MISC                 doc              
#>    <chr> <int> <chr> <chr>                 <chr>                 <chr>   <chr>   <chr>                                                                  <chr> <chr>     <chr> <chr>                <chr>            
#>  1 Espoo    43 1     Asumisen              asuminen              NOUN    _       Case=Gen|Derivation=Minen|Number=Sing                                  4     nmod:poss _     "_"                  espoo_2023.conllu
#>  2 Espoo    43 2     ja                    ja                    CCONJ   _       _                                                                      3     cc        _     "_"                  espoo_2023.conllu
#>  3 Espoo    43 3     maankäytön            maan#käyttö           NOUN    _       Case=Gen|Number=Sing                                                   1     conj      _     "_"                  espoo_2023.conllu
#>  4 Espoo    43 4     periaatteiden         periaate              NOUN    _       Case=Gen|Number=Plur                                                   5     nmod:gobj _     "_"                  espoo_2023.conllu
#>  5 Espoo    43 5     laadinnassa           laadinta              NOUN    _       Case=Ine|Number=Sing                                                   6     nmod      _     "_"                  espoo_2023.conllu
#>  6 Espoo    43 6     tärkeimpiä            tärkeä                ADJ     _       Case=Par|Degree=Sup|Number=Plur                                        8     amod      _     "SpacesAfter=\\r\\n" espoo_2023.conllu
#>  7 Espoo    43 7     ratkaistavia          ratkaista             VERB    _       Case=Par|Degree=Pos|Number=Plur|PartForm=Pres|VerbForm=Part|Voice=Pass 8     acl       _     "_"                  espoo_2023.conllu
#>  8 Espoo    43 8     asioita               asia                  NOUN    _       Case=Par|Number=Plur                                                   12    nsubj:cop _     "_"                  espoo_2023.conllu
#>  9 Espoo    43 9     ovat                  olla                  AUX     _       Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act        12    aux       _     "_"                  espoo_2023.conllu
#> 10 Espoo    43 10    olleet                olla                  AUX     _       Case=Nom|Degree=Pos|Number=Plur|PartForm=Past|VerbForm=Part|Voice=Act  12    cop       _     "_"                  espoo_2023.conllu
#> 11 Espoo    43 11    asuntotuotannon       asunto#tuotanto       NOUN    _       Case=Gen|Number=Sing                                                   12    nmod:poss _     "_"                  espoo_2023.conllu
#> 12 Espoo    43 12    monipuolisuuteen      monipuolisuus         NOUN    _       Case=Ill|Derivation=Inen,Vs|Number=Sing                                0     root      _     "SpaceAfter=No"      espoo_2023.conllu
#> 13 Espoo    43 13    ,                     ,                     PUNCT   _       _                                                                      14    punct     _     "SpacesAfter=\\r\\n" espoo_2023.conllu
#> 14 Espoo    43 14    maanhankintaan        maan#hankinta         NOUN    _       Case=Ill|Number=Sing                                                   12    conj      _     "SpaceAfter=No"      espoo_2023.conllu
#> 15 Espoo    43 15    ,                     ,                     PUNCT   _       _                                                                      17    punct     _     "_"                  espoo_2023.conllu
#> 16 Espoo    43 16    tasaiseen             tasainen              ADJ     _       Case=Ill|Degree=Pos|Derivation=Inen|Number=Sing                        17    amod      _     "_"                  espoo_2023.conllu
#> 17 Espoo    43 17    vuokratulovirtaan     vuokra#tulo#virta     NOUN    _       Case=Ill|Number=Sing                                                   12    conj      _     "_"                  espoo_2023.conllu
#> 18 Espoo    43 18    sekä                  sekä                  CCONJ   _       _                                                                      20    cc        _     "_"                  espoo_2023.conllu
#> 19 Espoo    43 19    riittävään            riittävä              ADJ     _       Case=Ill|Degree=Pos|Number=Sing                                        20    amod      _     "_"                  espoo_2023.conllu
#> 20 Espoo    43 20    yritystonttivarantoon yritys#tontti#varanto NOUN    _       Case=Ill|Number=Sing                                                   12    conj      _     "_"                  espoo_2023.conllu
#> 21 Espoo    43 21    ja                    ja                    CCONJ   _       _                                                                      23    cc        _     "_"                  espoo_2023.conllu
#> 22 Espoo    43 22    yritystonttien        yritys#tontti         NOUN    _       Case=Gen|Number=Plur                                                   23    nmod:gobj _     "_"                  espoo_2023.conllu
#> 23 Espoo    43 23    luovutukseen          luovutus              NOUN    _       Case=Ill|Number=Sing                                                   12    conj      _     "_"                  espoo_2023.conllu
#> 24 Espoo    43 24    liittyvät             liittyä               VERB    _       Case=Nom|Degree=Pos|Number=Plur|PartForm=Pres|VerbForm=Part|Voice=Act  25    acl       _     "_"                  espoo_2023.conllu
#> 25 Espoo    43 25    kysymykset            kysymys               NOUN    _       Case=Nom|Number=Plur                                                   12    conj      _     "SpaceAfter=No"      espoo_2023.conllu
#> 26 Espoo    43 26    .                     .                     PUNCT   _       _                                                                      12    punct     _     "SpacesAfter=\\r\\n" espoo_2023.conllu

Top 20 words:

aspol |>
  dplyr::filter(UPOSTAG %in% c("NOUN", "VERB", "ADJ", "ADV")) |>
  dplyr::count(LEMMA, UPOSTAG, sort = TRUE)
#> # A tibble: 20,180 × 3
#>    LEMMA           UPOSTAG     n
#>    <chr>           <chr>   <int>
#>  1 kaupunki        NOUN     4081
#>  2 asunto          NOUN     3954
#>  3 vuosi           NOUN     3683
#>  4 asuminen        NOUN     3080
#>  5 alue            NOUN     2888
#>  6 kunta           NOUN     2601
#>  7 myös            ADV      1945
#>  8 tavoite         NOUN     1911
#>  9 uusi            ADJ      1504
#> 10 olla            VERB     1491
#> 11 osa             NOUN     1406
#> 12 tulla           VERB     1306
#> 13 ohjelma         NOUN     1258
#> 14 asukas          NOUN     1252
#> 15 palvelu         NOUN     1236
#> 16 tontti          NOUN     1214
#> 17 rakentaminen    NOUN     1103
#> 18 noin            ADV      1101
#> 19 määrä           NOUN     1092
#> 20 asunto#tuotanto NOUN      921
#> # ℹ 20,160 more rows

Power of lemmatization, number of different word forms with same lemma:

aspol |>
  group_by(LEMMA) |>
  summarise(taivutusmuodot = length(unique(FORM))) |>
  arrange(desc(taivutusmuodot))
#> # A tibble: 34,935 × 2
#>    LEMMA    taivutusmuodot
#>    <chr>             <int>
#>  1 olla                 85
#>  2 suuri                78
#>  3 asunto               74
#>  4 tehdä                72
#>  5 saada                70
#>  6 hyvä                 68
#>  7 rakentaa             65
#>  8 tämä                 64
#>  9 se                   63
#> 10 tavoite              61
#> # ℹ 34,925 more rows

10 most common word forms with lemma “asunto”:

aspol |>
  filter(LEMMA == "asunto") |>
  count(FORM, FEATS, sort = TRUE)
#> # A tibble: 81 × 3
#>    FORM       FEATS                    n
#>    <chr>      <chr>                <int>
#>  1 asuntojen  Case=Gen|Number=Plur   880
#>  2 asuntoa    Case=Par|Number=Sing   516
#>  3 asuntoja   Case=Par|Number=Plur   472
#>  4 asunnot    Case=Nom|Number=Plur   317
#>  5 asunnon    Case=Gen|Number=Sing   306
#>  6 Asuntojen  Case=Gen|Number=Plur   240
#>  7 asunto-    Case=Nom|Number=Sing   190
#>  8 asunnoista Case=Ela|Number=Plur   171
#>  9 asunto     Case=Nom|Number=Sing   123
#> 10 Asunnot    Case=Nom|Number=Plur    98
#> # ℹ 71 more rows

Word forms with most different classes:

aspol |>
  group_by(FORM) |>
  summarise(unique_sanaluokat = length(unique(UPOSTAG))) |>
  arrange(desc(unique_sanaluokat))
#> # A tibble: 69,686 × 2
#>    FORM  unique_sanaluokat
#>    <chr>             <int>
#>  1 .                     9
#>  2 /                     9
#>  3 o                     9
#>  4 -                     6
#>  5 @                     6
#>  6 Yli                   6
#>  7 –                     6
#>  8 !                     5
#>  9 %                     5
#> 10 )                     5
#> # ℹ 69,676 more rows

Different word forms, word classes and inflections for single lemma “olla”:

aspol |>
  filter(LEMMA == "olla") |>
  count(FORM, LEMMA, UPOSTAG, FEATS, sort = TRUE)
#> # A tibble: 130 × 5
#>    FORM     LEMMA UPOSTAG FEATS                                                                     n
#>    <chr>    <chr> <chr>   <chr>                                                                 <int>
#>  1 on       olla  AUX     Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act        9847
#>  2 ovat     olla  AUX     Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act        1653
#>  3 oli      olla  AUX     Mood=Ind|Number=Sing|Person=3|Tense=Past|VerbForm=Fin|Voice=Act         762
#>  4 ole      olla  AUX     Connegative=Yes|Mood=Ind|Tense=Pres|VerbForm=Fin                        487
#>  5 ollut    olla  AUX     Case=Nom|Degree=Pos|Number=Sing|PartForm=Past|VerbForm=Part|Voice=Act   450
#>  6 olla     olla  AUX     InfForm=1|Number=Sing|VerbForm=Inf|Voice=Act                            447
#>  7 on       olla  AUX     Mood=Ind|Number=Sing|Person=0|Tense=Pres|VerbForm=Fin|Voice=Act         255
#>  8 olemassa olla  VERB    Case=Ine|InfForm=3|Number=Sing|VerbForm=Inf|Voice=Act                   229
#>  9 olevien  olla  VERB    Case=Gen|Degree=Pos|Number=Plur|PartForm=Pres|VerbForm=Part|Voice=Act   172
#> 10 olisi    olla  AUX     Mood=Cnd|Number=Sing|Person=3|VerbForm=Fin|Voice=Act                    148
#> 11 olevat   olla  VERB    Case=Nom|Degree=Pos|Number=Plur|PartForm=Pres|VerbForm=Part|Voice=Act   134
#> 12 olevan   olla  VERB    Case=Gen|Degree=Pos|Number=Sing|PartForm=Pres|VerbForm=Part|Voice=Act   122
#> 13 ole      olla  VERB    Connegative=Yes|Mood=Ind|Tense=Pres|VerbForm=Fin                        119
#> 14 olevia   olla  VERB    Case=Par|Degree=Pos|Number=Plur|PartForm=Pres|VerbForm=Part|Voice=Act   108
#> 15 oleva    olla  VERB    Case=Nom|Degree=Pos|Number=Sing|PartForm=Pres|VerbForm=Part|Voice=Act   100
#> 16 olevaa   olla  VERB    Case=Par|Degree=Pos|Number=Sing|PartForm=Pres|VerbForm=Part|Voice=Act    77
#> 17 olevan   olla  AUX     Case=Gen|Degree=Pos|Number=Sing|PartForm=Pres|VerbForm=Part|Voice=Act    71
#> 18 olivat   olla  AUX     Mood=Ind|Number=Plur|Person=3|Tense=Past|VerbForm=Fin|Voice=Act          71
#> 19 olleet   olla  AUX     Case=Nom|Degree=Pos|Number=Plur|PartForm=Past|VerbForm=Part|Voice=Act    66
#> 20 on       olla  VERB    Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act          58
#> # ℹ 110 more rows