在 R 中对日文文本进行分词:仅对指定列的第一行进行分词
Tokenizing Japanese text in R: Only first line of the specified column is tokenized
我正在尝试使用日语分词器 RMeCab
对一组推文进行分词,特别是函数 RMeCabDF
(用于数据帧)。
文档说明了以下用法:
RMeCabDF
Description
RMeCabDF takes data frames as the first argument, and analyzes the
columns specified by the second argument. Blank data should be
replaced with NA. If 1 is designated as the third argument, it returns
each morpheme in its basic form.
Usage
RMeCabDF(dataf, coln, mypref, dic = "", mecabrc = "", etc = "")
Arguments
dataf data.frame
coln Column number or name which include Japanese sentences
mypref Default being 0, the same morphemic forms that appear on the text are returned. If 1 is designated, the basic forms of them are instead.
dic to specify user dictionary, e.x. ishida.dic
mecabrc not implemented (to specify mecab resource file)
etc other options to mecab
因此,在此之后,我使用以下代码对数据帧 trump_ja
中的列号 89
进行标记:
trump_ja_tokens <- RMeCabDF(trump_ja, coln = 89)
这会导致 List of 1
- 但如您所见,数据框有 989 行。
我的其他行去哪儿了?
我必须逐行分词吗?如果是这样,是否有任何方法可以自动执行此过程以避免键入 1000 行代码(或使用 Excel 生成 1000 行代码)?
您可以使用带有 tidytext 的 RMeCab
分词器,就像 this user 那样。您可以这样设置:
df %>%
unnest_tokens(word, text, token = RMeCab::RMeCabC)
其中 df
是您的数据框,word
是您要创建的新列,text
是您已有的包含文本的旧列想要标记化。 unnest_tokens()
中的 token
参数可以将函数作为参数,对于这些情况。
我正在尝试使用日语分词器 RMeCab
对一组推文进行分词,特别是函数 RMeCabDF
(用于数据帧)。
文档说明了以下用法:
RMeCabDF
Description
RMeCabDF takes data frames as the first argument, and analyzes the columns specified by the second argument. Blank data should be replaced with NA. If 1 is designated as the third argument, it returns each morpheme in its basic form.
Usage
RMeCabDF(dataf, coln, mypref, dic = "", mecabrc = "", etc = "")
Arguments
dataf data.frame
coln Column number or name which include Japanese sentences
mypref Default being 0, the same morphemic forms that appear on the text are returned. If 1 is designated, the basic forms of them are instead.
dic to specify user dictionary, e.x. ishida.dic
mecabrc not implemented (to specify mecab resource file)
etc other options to mecab
因此,在此之后,我使用以下代码对数据帧 trump_ja
中的列号 89
进行标记:
trump_ja_tokens <- RMeCabDF(trump_ja, coln = 89)
这会导致 List of 1
- 但如您所见,数据框有 989 行。
我的其他行去哪儿了?
我必须逐行分词吗?如果是这样,是否有任何方法可以自动执行此过程以避免键入 1000 行代码(或使用 Excel 生成 1000 行代码)?
您可以使用带有 tidytext 的 RMeCab
分词器,就像 this user 那样。您可以这样设置:
df %>%
unnest_tokens(word, text, token = RMeCab::RMeCabC)
其中 df
是您的数据框,word
是您要创建的新列,text
是您已有的包含文本的旧列想要标记化。 unnest_tokens()
中的 token
参数可以将函数作为参数,对于这些情况。