手法 | Rパッケージ | |
---|---|---|
ICU | ルールベース | stringi (audubon, tokenizers, quanteda) |
MeCab | 形態素解析 | RMeCab, RcppMeCab, gibasa |
Sudachi | 形態素解析 | sudachir |
Sentencepiece | 機械学習 | sentencepiece |
Byte Pair Encoding | 機械学習 | tokenizers.bpe |
Universal Dependencies | 訓練済みモデル | spacyr, udpipe (cleanNLP) |
データフレーム中の日本語テキスト列についてtidy text(data frame of tokens)に整形する
audubon::polano[5]
#> [1] "そのころわたくしは、モリーオ市の博物局に勤めて居りました。"
res <-
data.frame(
doc_id = seq_len(length(audubon::polano[5:800])),
text = audubon::polano[5:800]
) |>
gibasa::tokenize(text, doc_id) |>
gibasa::prettify(into = gibasa::get_dict_features("ipa"))
dplyr::slice_head(res, n = 5L)
#> doc_id sentence_id token_id token POS1 POS2 POS3 POS4 X5StageUse1 X5StageUse2 Original Yomi1 Yomi2
#> 1 1 1 1 その 連体詞 <NA> <NA> <NA> <NA> <NA> その ソノ ソノ
#> 2 1 1 2 ころ 名詞 非自立 副詞可能 <NA> <NA> <NA> ころ コロ コロ
#> 3 1 1 3 わたくし 名詞 代名詞 一般 <NA> <NA> <NA> わたくし ワタクシ ワタクシ
#> 4 1 1 4 は 助詞 係助詞 <NA> <NA> <NA> <NA> は ハ ワ
#> 5 1 1 5 、 記号 読点 <NA> <NA> <NA> <NA> 、 、 、
tidy text(data frame of tokens)を分かち書きされたコーパス(data frame of corpus)に整形する
res |>
gibasa::pack() |>
dplyr::slice_head()
#> doc_id text
#> 1 1 その ころ わたくし は 、 モリーオ 市 の 博物 局 に 勤め て 居り まし た 。
rmecab <- \() { ## RMeCab v1.0.7
purrr::imap_dfr(
audubon::polano[5:800],
~ data.frame(
doc_id = .y,
tibble::enframe(unlist(RMeCab::RMeCabC(.x)), "POS1", "token")
)
)
}
rcppmecab1 <- \() { ## junhewk/RcppMeCab v0.0.1.3-2
purrr::imap_dfr(
RcppMeCab::posParallel(audubon::polano[5:800], join = FALSE),
~ data.frame(doc_id = .y, token = unname(.x), POS1 = names(.x))
)
}
rcppmecab2 <- \() { RcppMeCab::posParallel(audubon::polano[5:800], format = "data.frame") }
gibasa <- \() { ## paithiov909/gibasa v0.3.0
gibasa::gbs_tokenize(audubon::polano[5:800]) |> gibasa::prettify(col_select = "POS1")
}
tidy text(data frame of tokens)のかたちのデータフレームがほしくて、次にあてはまるとき
試してみてね!